|
|
@@ -7,8 +7,8 @@ import sys |
|
|
|
import wave |
|
|
|
from datetime import datetime, timedelta |
|
|
|
from enum import Enum, auto |
|
|
|
from typing import Callable, TypedDict |
|
|
|
from io import BytesIO |
|
|
|
from typing import Callable, TypedDict |
|
|
|
|
|
|
|
import cv2 |
|
|
|
import emoji |
|
|
@@ -20,7 +20,6 @@ import pytchat |
|
|
|
import requests |
|
|
|
from cv2 import VideoCapture |
|
|
|
from ephem import Moon, Observer, Sun |
|
|
|
from pydub import AudioSegment |
|
|
|
from pygame import Rect, Surface |
|
|
|
from pygame.font import Font |
|
|
|
from pygame.mixer import Sound |
|
|
@@ -53,7 +52,6 @@ def main ( |
|
|
|
x = CWindow.WIDTH * 3 / 4, |
|
|
|
y = CWindow.HEIGHT - 120, |
|
|
|
balloon = balloon) |
|
|
|
Video (game, 'snack_time.mp4').play () |
|
|
|
CurrentTime (game, SYSTEM_FONT) |
|
|
|
try: |
|
|
|
broadcast = Broadcast (os.environ['BROADCAST_CODE']) |
|
|
@@ -752,14 +750,10 @@ class Broadcast: |
|
|
|
return random.choice (chats) |
|
|
|
|
|
|
|
|
|
|
|
class NicoVideo (Video): |
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
class Video (GameObject): |
|
|
|
fps: int |
|
|
|
pausing: bool = False |
|
|
|
sound: Sound |
|
|
|
sound: Sound | None |
|
|
|
surfaces: list[Surface] |
|
|
|
|
|
|
|
def __init__ ( |
|
|
@@ -776,9 +770,13 @@ class Video (GameObject): |
|
|
|
def _create_sound ( |
|
|
|
self, |
|
|
|
path: str, |
|
|
|
) -> Sound: |
|
|
|
) -> Sound | None: |
|
|
|
bytes_io = BytesIO () |
|
|
|
audio = AudioSegment.from_file (path, format = path.split ('.')[-1]) |
|
|
|
try: |
|
|
|
from pydub import AudioSegment |
|
|
|
audio = AudioSegment.from_file (path, format = path.split ('.')[-1]) |
|
|
|
except ModuleNotFoundError: |
|
|
|
return None |
|
|
|
audio.export (bytes_io, format = 'wav') |
|
|
|
bytes_io.seek (0) |
|
|
|
return pygame.mixer.Sound (bytes_io) |
|
|
@@ -843,7 +841,8 @@ class Video (GameObject): |
|
|
|
) -> None: |
|
|
|
self.enabled = True |
|
|
|
self.pausing = False |
|
|
|
self.sound.play () |
|
|
|
if self.sound is not None: |
|
|
|
self.sound.play () |
|
|
|
|
|
|
|
def stop ( |
|
|
|
self, |
|
|
@@ -872,6 +871,10 @@ class Video (GameObject): |
|
|
|
super ().update () |
|
|
|
|
|
|
|
|
|
|
|
class NicoVideo (Video): |
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
def fetch_bytes_from_url ( |
|
|
|
url: str, |
|
|
|
) -> bytes | None: |
|
|
|