33 lines
992 B
Python
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
|