import logging import random from typing import Optional from app.controllers.abc import ISpeakingController from app.services.abc import ISpeakingService, IVideoGeneratorService class SpeakingController(ISpeakingController): def __init__(self, speaking_service: ISpeakingService, vid_gen: IVideoGeneratorService): self._service = speaking_service self._vid_gen = vid_gen self._logger = logging.getLogger(__name__) async def get_speaking_part(self, task: int, topic: str, second_topic: str, difficulty: str): return await self._service.get_speaking_part(task, topic, second_topic, difficulty) async def get_avatars(self): return await self._vid_gen.get_avatars() async def generate_video(self, text: str, avatar: str): return await self._vid_gen.create_video(text, avatar) async def pool_video(self, vid_id: str): return await self._vid_gen.pool_status(vid_id)