86 lines
3.7 KiB
Python
86 lines
3.7 KiB
Python
# /opt/trueconf_bot/utils/menu.py
|
|
import config.config as config
|
|
|
|
MENU_MAP = {}
|
|
MENU_TEXT = ""
|
|
WELCOME_TEXT = "" # 💡 Добавили шаблон для развернутого приветствия
|
|
|
|
def build_dynamic_menu():
|
|
global MENU_MAP, MENU_TEXT, WELCOME_TEXT
|
|
MENU_MAP.clear()
|
|
|
|
# Старый формат keycap-цифр (как в VK)
|
|
emoji_digits = {
|
|
1: "1⃣",
|
|
2: "2⃣",
|
|
3: "3⃣",
|
|
4: "4⃣",
|
|
5: "5⃣",
|
|
6: "6⃣",
|
|
7: "7⃣",
|
|
8: "8⃣",
|
|
9: "9⃣",
|
|
10: "🔟",
|
|
}
|
|
|
|
dynamic_items = []
|
|
counter = 1
|
|
|
|
# Безопасно проверяем флаги из конфига и наполняем массив пунктов
|
|
if getattr(config, 'ENABLE_LK', True):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "LK"
|
|
MENU_MAP[num_char] = "LK"
|
|
dynamic_items.append(f"{num_char} — 👤 Личный кабинет")
|
|
counter += 1
|
|
|
|
if getattr(config, 'ENABLE_TRANSCRIPTION', True):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "TRANSCRIPTION"
|
|
MENU_MAP[num_char] = "TRANSCRIPTION"
|
|
dynamic_items.append(f"{num_char} — 🎙 Расшифровка совещаний")
|
|
counter += 1
|
|
|
|
if getattr(config, 'ENABLE_SERVICE_DESK', True):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "SD"
|
|
MENU_MAP[num_char] = "SD"
|
|
dynamic_items.append(f"{num_char} — 🎫 Создать заявку в Service Desk")
|
|
counter += 1
|
|
|
|
if getattr(config, 'ENABLE_PHOTO_BOT', True):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "PHOTO"
|
|
MENU_MAP[num_char] = "PHOTO"
|
|
dynamic_items.append(f"{num_char} — Изменить фото профиля")
|
|
counter += 1
|
|
|
|
if getattr(config, 'ENABLE_SEARCH_BOT', True):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "SEARCH"
|
|
MENU_MAP[num_char] = "SEARCH"
|
|
dynamic_items.append(f"{num_char} — Поиск по регламентам")
|
|
counter += 1
|
|
|
|
if getattr(config, 'ENABLE_INSTRUCT', False):
|
|
num_char = emoji_digits.get(counter, str(counter))
|
|
MENU_MAP[str(counter)] = "INSTRUCT"
|
|
MENU_MAP[num_char] = "INSTRUCT"
|
|
dynamic_items.append(f"{num_char} — 📋 Инструкции")
|
|
counter += 1
|
|
|
|
if counter == 1:
|
|
dynamic_items.append("<i>В данный момент бот находится на техническом обслуживании.</i>")
|
|
|
|
# 1️⃣ Сценарий Б: Короткий шаблон для возврата из подмодулей
|
|
MENU_TEXT = "🍀 <b>Главное меню:</b>\n\n" + "\n".join(dynamic_items)
|
|
|
|
# 2️⃣ Сценарий А: Длинный приветственный шаблон для старта/таймаута (с исправленной грамматикой)
|
|
WELCOME_TEXT = (
|
|
"🍀 <b>Здравствуйте! Я КЛЕВЕР — ваш персональный цифровой ассистент.</b>\n\n"
|
|
"С моей помощью вы можете быстро получить доступ к нижеперечисленным корпоративным сервисам.\n\n"
|
|
"👇 Пожалуйста, отправьте мне в чат цифру, соответствующую нужному пункту меню:\n\n"
|
|
) + "\n".join(dynamic_items)
|
|
|
|
# Gенерируем меню один раз при импорте файла
|
|
build_dynamic_menu() |