From 3d7338b3ed5c54600a05b1fe98952289b8339dc8 Mon Sep 17 00:00:00 2001 From: "Andrew K. Choi" Date: Mon, 17 Nov 2025 06:03:08 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D1=8B=20=D0=B2=D1=81=D0=B5=20=D1=80=D0=BE?= =?UTF-8?q?=D1=83=D1=82=D0=B5=D1=80=D1=8B,=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B0=20callback=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Подключены роутеры: admin_panel, registration, admin_account, admin_chat, redraw, account, chat - Исправлен back_to_main_handler: использует callback.message вместо fake_message - Роутеры подключены в правильном порядке (от специфичных к общим) - Все кнопки админ-панели теперь работают корректно --- main.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 25e74e5..d7727f4 100644 --- a/main.py +++ b/main.py @@ -15,6 +15,13 @@ from src.core.config import BOT_TOKEN from src.core.database import async_session_maker from src.container import container from src.interfaces.base import IBotController +from src.handlers.admin_panel import admin_router +from src.handlers.registration_handlers import router as registration_router +from src.handlers.admin_account_handlers import router as admin_account_router +from src.handlers.redraw_handlers import router as redraw_router +from src.handlers.chat_handlers import router as chat_router +from src.handlers.admin_chat_handlers import router as admin_chat_router +from src.handlers.account_handlers import account_router # Настройка логирования logging.basicConfig( @@ -114,16 +121,8 @@ async def conduct_specific_lottery_handler(callback: CallbackQuery): @router.callback_query(F.data == "back_to_main") async def back_to_main_handler(callback: CallbackQuery): """Обработчик возврата в главное меню""" - # Имитируем команду /start - fake_message = Message( - message_id=callback.message.message_id, - date=callback.message.date, - chat=callback.message.chat, - from_user=callback.from_user - ) - async with get_controller() as controller: - await controller.handle_start(fake_message) + await controller.handle_start(callback.message) # === ЗАГЛУШКИ ДЛЯ ОСТАЛЬНЫХ CALLBACKS === @@ -145,7 +144,17 @@ async def main(): """Главная функция запуска бота""" logger.info("Запуск бота...") - # Подключаем роутер + # Подключаем роутеры в правильном порядке + # 1. Сначала специфичные роутеры + dp.include_router(admin_router) # Админ панель - самая высокая специфичность + dp.include_router(registration_router) # Регистрация + dp.include_router(admin_account_router) # Админские команды счетов + dp.include_router(admin_chat_router) # Админские команды чата + dp.include_router(redraw_router) # Повторные розыгрыши + dp.include_router(account_router) # Пользовательские счета + dp.include_router(chat_router) # Пользовательский чат (последним - ловит все сообщения) + + # 2. Основной роутер main.py dp.include_router(router) # Запускаем polling