fix: подключены все роутеры, исправлена ошибка callback обработчиков
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
- Подключены роутеры: admin_panel, registration, admin_account, admin_chat, redraw, account, chat - Исправлен back_to_main_handler: использует callback.message вместо fake_message - Роутеры подключены в правильном порядке (от специфичных к общим) - Все кнопки админ-панели теперь работают корректно
This commit is contained in:
29
main.py
29
main.py
@@ -15,6 +15,13 @@ from src.core.config import BOT_TOKEN
|
|||||||
from src.core.database import async_session_maker
|
from src.core.database import async_session_maker
|
||||||
from src.container import container
|
from src.container import container
|
||||||
from src.interfaces.base import IBotController
|
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(
|
logging.basicConfig(
|
||||||
@@ -114,16 +121,8 @@ async def conduct_specific_lottery_handler(callback: CallbackQuery):
|
|||||||
@router.callback_query(F.data == "back_to_main")
|
@router.callback_query(F.data == "back_to_main")
|
||||||
async def back_to_main_handler(callback: CallbackQuery):
|
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:
|
async with get_controller() as controller:
|
||||||
await controller.handle_start(fake_message)
|
await controller.handle_start(callback.message)
|
||||||
|
|
||||||
|
|
||||||
# === ЗАГЛУШКИ ДЛЯ ОСТАЛЬНЫХ CALLBACKS ===
|
# === ЗАГЛУШКИ ДЛЯ ОСТАЛЬНЫХ CALLBACKS ===
|
||||||
@@ -145,7 +144,17 @@ async def main():
|
|||||||
"""Главная функция запуска бота"""
|
"""Главная функция запуска бота"""
|
||||||
logger.info("Запуск бота...")
|
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)
|
dp.include_router(router)
|
||||||
|
|
||||||
# Запускаем polling
|
# Запускаем polling
|
||||||
|
|||||||
Reference in New Issue
Block a user