25 lines
929 B
Python
25 lines
929 B
Python
import logging
|
|
|
|
from ielts_be.controllers import ISpeakingController
|
|
from ielts_be.services 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 poll_video(self, vid_id: str):
|
|
return await self._vid_gen.poll_status(vid_id)
|