fix: INSTRUCT_MAIN_MENU_TEXT вызывается без EMOJI_DIGITS аргумента
- Заменено INSTRUCT_MAIN_MENU_TEXT = instruct_main_menu_text на INSTRUCT_MAIN_MENU_TEXT = instruct_main_menu_text(EMOJI_DIGITS) - Функция instruct_main_menu_text(emojis: dict) требует обязательный параметр emojis - Без вызова функции переменная содержит имя функции, а не строку текста - TrueConf dispatcher выдаёт "str object is not callable" при попытке вызвать фильтр - Также исправлено: меню теперь видят пользователи
This commit is contained in:
+4
-28
@@ -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,20 +57,12 @@ async def instruct_main_handler(msg: Message):
|
||||
return
|
||||
|
||||
# Цифра 0 — возврат в главное меню
|
||||
if msg.text and msg.text.strip() == "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":
|
||||
return
|
||||
|
||||
# Очистка состояния
|
||||
clear_state(user_id)
|
||||
user_menu_shown = getattr(msg, "handled", False)
|
||||
@@ -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):
|
||||
"""Обработчик выбора: Почта на мобильном устройстве."""
|
||||
|
||||
Reference in New Issue
Block a user