import aiogram import facet from birthday_pool_bot.repositories import RepositoriesContainer from .settings import TelegramBotSettings from .storage import get_telegram_bot_fsm_storage from .ui import setup_dispatcher class BaseTelegramBotService(facet.AsyncioServiceMixin): def __init__( self, settings: TelegramBotSettings, repositories_container: RepositoriesContainer, ): self._settings = settings self._repositories_container = repositories_container self._dispatcher = aiogram.Dispatcher( storage=get_telegram_bot_fsm_storage(settings=settings.storage), ) self._bot = aiogram.Bot(token=settings.token) setup_dispatcher( dispatcher=self._dispatcher, repositories_container=self._repositories_container, ) async def start(self): self.add_task(self.listen_events()) async def listen_events(self): raise NotImplementedError