from utils.texts import *
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 = (
"📋 Выберите инструкцию:
"
f"{EMOJI_DIGITS['1']} — 🖥 Trueconf
"
f"{EMOJI_DIGITS['2']} — 📧 Почта
"
f"{EMOJI_DIGITS['0']} — В главное меню"
)
INSTRUCT_TRUECONF_TEXT = (
"🖥 Инструкция по Trueconf
"
"Данная функция находится в разработке.
"
f"{EMOJI_DIGITS['9']} — Назад
{EMOJI_DIGITS['0']} — В главное меню"
)
INSTRUCT_EMAIL_TEXT = (
"📧 Инструкция по Почте
"
"Данная функция находится в разработке.
"
f"{EMOJI_DIGITS['9']} — Назад
{EMOJI_DIGITS['0']} — В главное меню"
)
INSTRUCT_UNKNOWN_CMD_TEXT = (
"⚠️ Неизвестная команда.
"
"Пожалуйста, используйте цифры меню из сообщения выше.
"
f"{EMOJI_DIGITS['9']} — Назад
{EMOJI_DIGITS['0']} — В главное меню"
)
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(INSTRUCT_UNKNOWN_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(INSTRUCT_UNKNOWN_CMD_TEXT, parse_mode="html")