from aiogram import Bot, Dispatcher from aiogram.client.default import DefaultBotProperties from aiogram.fsm.storage.memory import MemoryStorage from aiogram.fsm.strategy import FSMStrategy from helper_bot.handlers.admin import admin_router from helper_bot.handlers.callback import callback_router from helper_bot.handlers.group import group_router from helper_bot.handlers.private import private_router from helper_bot.middlewares.dependencies_middleware import DependenciesMiddleware from helper_bot.middlewares.blacklist_middleware import BlacklistMiddleware from helper_bot.middlewares.metrics_middleware import MetricsMiddleware, ErrorMetricsMiddleware async def start_bot(bdf): token = bdf.settings['Telegram']['bot_token'] bot = Bot(token=token, default=DefaultBotProperties( parse_mode='HTML', link_preview_is_disabled=bdf.settings['Telegram']['preview_link'] ), timeout=30.0) dp = Dispatcher(storage=MemoryStorage(), fsm_strategy=FSMStrategy.GLOBAL_USER) # ✅ Оптимизированная регистрация middleware dp.update.outer_middleware(DependenciesMiddleware()) dp.update.outer_middleware(MetricsMiddleware()) dp.update.outer_middleware(BlacklistMiddleware()) # Добавляем middleware напрямую к роутерам для тестирования admin_router.message.middleware(MetricsMiddleware()) private_router.message.middleware(MetricsMiddleware()) callback_router.callback_query.middleware(MetricsMiddleware()) group_router.message.middleware(MetricsMiddleware()) dp.include_routers(admin_router, private_router, callback_router, group_router) await bot.delete_webhook(drop_pending_updates=True) await dp.start_polling(bot, skip_updates=True)