diff --git a/instruct/handlers.py b/instruct/handlers.py index 11db0cb..3cae6bd 100644 --- a/instruct/handlers.py +++ b/instruct/handlers.py @@ -14,7 +14,7 @@ from utils.texts import ( ) from utils.menu import MENU_TEXT -INSTRUCT_MAIN_MENU_TEXT = instruct_main_menu_text +INSTRUCT_MAIN_MENU_TEXT = instruct_main_menu_text(EMOJI_DIGITS) # ======================================== @@ -48,7 +48,7 @@ instruct_sessions = {} # ОБРАБОТЧИКИ # ======================================== -@router.message("0") +@router.message() async def instruct_main_handler(msg: Message): """Обработчик главного меню модуля Instruct.""" user_id = msg.from_user.id @@ -57,18 +57,10 @@ async def instruct_main_handler(msg: Message): return # Цифра 0 — возврат в главное меню - clear_state(user_id) - setattr(msg, "handled", True) - await msg.answer(MENU_TEXT, parse_mode="html") - instruct_logger.info(f"User {user_id} returned to main menu via 0") - return - -@router.message() -async def instruct_main_menu_handler(msg: Message): - """Обработчик открытия меню инструкций.""" - user_id = msg.from_user.id - - if get_state(user_id) != "INSTRUCT_MODE": + if msg.text and msg.text.strip() == "0": + clear_state(user_id) + await msg.answer(MENU_TEXT, parse_mode="html") + instruct_logger.info(f"User {user_id} returned to main menu via 0") return # Очистка состояния @@ -85,6 +77,7 @@ async def instruct_main_menu_handler(msg: Message): await msg.answer(instruct_main_menu_text(EMOJI_DIGITS), parse_mode="html") instruct_logger.info(f"Instruct main menu shown for user {user_id}") + @router.message() async def instruct_tc_handler(msg: Message): """Обработчик выбора: Приложение TrueConf.""" @@ -102,23 +95,6 @@ async def instruct_tc_handler(msg: Message): await msg.answer(instruct_tc_text(), parse_mode="html") instruct_logger.info(f"User {user_id} selected TrueConf instructions") -@router.message() -async def instruct_back_to_main_handler(msg: Message): - """Обработчик возврата в главное меню.""" - user_id = msg.from_user.id - - if get_state(user_id) != "INSTRUCT_MODE": - return - - # Очистка состояния - clear_state(user_id) - - # Убираем обработанность, чтобы сообщение не дублировалось - setattr(msg, "handled", True) - - await msg.answer(MENU_TEXT, parse_mode="html") - instruct_logger.info(f"User {user_id} returned to main menu") - @router.message() async def instruct_email_handler(msg: Message): """Обработчик выбора: Почта на мобильном устройстве."""