Files
Birthday-Pool-Bot/birthday_pool_bot/telegram_bot/base.py

33 lines
992 B
Python

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