from utils.texts import UNKNOWN_MAIN_CMD_TEXT import logging import asyncio from trueconf import Router, Message from utils.states import get_state, set_state, clear_state # 🔌 Импортируем централизованную функцию сбора статистики из main from utils.stats_logger import log_menu_stats logger = logging.getLogger(__name__) EMOJI_DIGITS = { "0": "0\u20e3", "1": "1\u20e3", "2": "2\u20e3", "3": "3\u20e3", "4": "4\u20e3", "5": "5\u20e3", "6": "6\u20e3", "7": "7\u20e3", "8": "8\u20e3", "9": "9\u20e3", "10": "🔟" } INSTRUCT_MAIN_MENU_TEXT = ( "📋 Выберите инструкцию:\n\n" f"{EMOJI_DIGITS['1']} — 🖥 Trueconf\n" f"{EMOJI_DIGITS['2']} — 📧 Почта\n\n" f"{EMOJI_DIGITS['0']} — В главное меню" ) INSTRUCT_TRUECONF_TEXT = ( "🖥 Инструкция по Trueconf\n\n" "Данная функция находится в разработке.\n\n" f"{EMOJI_DIGITS['9']} — Назад\n{EMOJI_DIGITS['0']} — В главное меню" ) INSTRUCT_EMAIL_TEXT = ( "📧 Инструкция по Почте\n\n" "Данная функция находится в разработке.\n\n" f"{EMOJI_DIGITS['9']} — Назад\n{EMOJI_DIGITS['0']} — В главное меню" ) # INSTRUCT_UNKNOWN_CMD_TEXT imported from utils.texts router = Router() @router.message() async def instruct_router_handler(msg: Message): user_id = msg.from_user.id current_state = get_state(user_id) if not msg.text: return cmd = msg.text.strip().lower() for raw_num, emoji_num in EMOJI_DIGITS.items(): if cmd == emoji_num: cmd = raw_num break if current_state is None: from utils.menu import MENU_MAP if MENU_MAP.get(cmd) == "INSTRUCT": msg.handled = True set_state(user_id, "INSTRUCT_MODE") await msg.answer(INSTRUCT_MAIN_MENU_TEXT, parse_mode="html") return return if current_state == "INSTRUCT_MODE": msg.handled = True if cmd == "0": log_menu_stats(user_id, "Инструкции", "Выход в главное меню") clear_state(user_id) from utils.menu import MENU_TEXT await msg.answer(MENU_TEXT, parse_mode="html") elif cmd == "1": log_menu_stats(user_id, "Инструкции", "Trueconf") await msg.answer(INSTRUCT_TRUECONF_TEXT, parse_mode="html") elif cmd == "2": log_menu_stats(user_id, "Инструкции", "Почта") await msg.answer(INSTRUCT_EMAIL_TEXT, parse_mode="html") else: await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html") elif current_state in ["INSTRUCT_TRUECONF_VIEW", "INSTRUCT_EMAIL_VIEW"]: msg.handled = True if cmd == "0": clear_state(user_id) from utils.menu import MENU_TEXT await msg.answer(MENU_TEXT, parse_mode="html") elif cmd == "9": set_state(user_id, "INSTRUCT_MODE") await msg.answer(INSTRUCT_MAIN_MENU_TEXT, parse_mode="html") else: await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")