DispelEvilBot/bot/bot_factory.py

42 lines
1.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Создание объектов Bot и Dispatcher, регистрация роутеров."""
from __future__ import annotations
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.fsm.storage.memory import MemoryStorage
from common.config import get_settings
def create_bot() -> Bot:
"""Создать объект бота с HTML-разметкой по умолчанию."""
settings = get_settings()
return Bot(
token=settings.bot_token,
default=DefaultBotProperties(parse_mode=ParseMode.HTML),
)
def create_dispatcher() -> Dispatcher:
"""Собрать Dispatcher и подключить все роутеры.
Порядок важен: сначала события участников и команды, затем магазин,
и в конце — экономика (в ней есть catch-all обработчик сообщений).
"""
from bot.handlers import commands, economy, login, member_events, shop
from bot.handlers.errors import register_errors
from bot.middlewares import AnalyticsMiddleware
dp = Dispatcher(storage=MemoryStorage())
# Внешний middleware: ловит все сообщения до фильтров (события `message`/`command`).
dp.message.outer_middleware(AnalyticsMiddleware())
dp.include_router(member_events.router)
dp.include_router(login.router)
dp.include_router(commands.router)
dp.include_router(shop.router)
dp.include_router(economy.router)
register_errors(dp)
return dp