Обновить utils/texts.py
This commit is contained in:
+36
-72
@@ -2,18 +2,16 @@
|
|||||||
# Все текстовые сообщения бота, отправляемые пользователю
|
# Все текстовые сообщения бота, отправляемые пользователю
|
||||||
|
|
||||||
# =========================================================
|
# =========================================================
|
||||||
# GLOBAL CONSTANTS
|
# GLOBAL CONSTANTS & HELPERS
|
||||||
# =========================================================
|
# =========================================================
|
||||||
|
|
||||||
# --- Main Bot ---
|
# --- Main Bot ---
|
||||||
# Общее для главного бота
|
|
||||||
UNKNOWN_MAIN_CMD_TEXT = (
|
UNKNOWN_MAIN_CMD_TEXT = (
|
||||||
"⚠️ <b>Неизвестная команда.</b>\n\n"
|
"⚠️ <b>Неизвестная команда.</b>\n\n"
|
||||||
"Пожалуйста, используйте только цифры, соответствующие нужным пунктам меню, и отправьте выбранную цифру мне в сообщении."
|
"Пожалуйста, используйте только цифры, соответствующие нужным пунктам меню, и отправьте выбранную цифру мне в сообщении."
|
||||||
)
|
)
|
||||||
|
|
||||||
# --- Emoji Digits ---
|
# --- Emoji Digits ---
|
||||||
# Используются для навигации и выбора пунктов меню
|
|
||||||
EMOJI_DIGITS = {
|
EMOJI_DIGITS = {
|
||||||
"0": "0⃣",
|
"0": "0⃣",
|
||||||
"1": "1⃣",
|
"1": "1⃣",
|
||||||
@@ -29,7 +27,6 @@ EMOJI_DIGITS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# --- Footer Templates ---
|
# --- Footer Templates ---
|
||||||
# Шаблоны подвалов сообщений для навигации
|
|
||||||
|
|
||||||
def _footer(emojis: dict) -> str:
|
def _footer(emojis: dict) -> str:
|
||||||
"""Стандартный футер с кнопками Назад и Меню"""
|
"""Стандартный футер с кнопками Назад и Меню"""
|
||||||
@@ -39,6 +36,17 @@ def _footer_main_only(emojis: dict) -> str:
|
|||||||
"""Футер только с кнопкой Меню"""
|
"""Футер только с кнопкой Меню"""
|
||||||
return f"\n\n<i>{emojis['0']} — В главное меню</i>"
|
return f"\n\n<i>{emojis['0']} — В главное меню</i>"
|
||||||
|
|
||||||
|
# --- Universal System Error Stub ---
|
||||||
|
|
||||||
|
def system_error_text(emojis: dict = EMOJI_DIGITS, show_back: bool = True) -> str:
|
||||||
|
"""Универсальная системная заглушка ошибки для всех модулей бота."""
|
||||||
|
footer = _footer(emojis) if show_back else _footer_main_only(emojis)
|
||||||
|
return (
|
||||||
|
"⚠️ <i>В данный момент выполнить это действие невозможно. "
|
||||||
|
"Информация о проблеме передана ответственным.\n"
|
||||||
|
f"Приносим извинения за доставленные неудобства.</i>{footer}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# =========================================================
|
# =========================================================
|
||||||
# TRANSCRIPTION BOT
|
# TRANSCRIPTION BOT
|
||||||
@@ -209,14 +217,6 @@ def _photo_unknown(emojis: dict) -> str:
|
|||||||
f"{emojis['0']} — В главное меню"
|
f"{emojis['0']} — В главное меню"
|
||||||
)
|
)
|
||||||
|
|
||||||
def _photo_error_handling(emojis: dict) -> str:
|
|
||||||
return (
|
|
||||||
f"⚠️ <i>В данный момент выполнить это действие невозможно. "
|
|
||||||
f"Информация о проблеме передана ответственным.\n"
|
|
||||||
f"Приносим извинения за доставленные неудобства.</i>\n\n"
|
|
||||||
f"{emojis['0']} — В главное меню"
|
|
||||||
)
|
|
||||||
|
|
||||||
def _photo_uploading() -> str:
|
def _photo_uploading() -> str:
|
||||||
return "⏳ Отправка..."
|
return "⏳ Отправка..."
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@ PHOTO_MAIN_MENU_TEXT = _photo_welcome(EMOJI_DIGITS)
|
|||||||
PHOTO_UNKNOWN_CMD_TEXT = _photo_unknown(EMOJI_DIGITS)
|
PHOTO_UNKNOWN_CMD_TEXT = _photo_unknown(EMOJI_DIGITS)
|
||||||
|
|
||||||
def photo_error_handling() -> str:
|
def photo_error_handling() -> str:
|
||||||
return _photo_error_handling(EMOJI_DIGITS)
|
return system_error_text(EMOJI_DIGITS, show_back=False)
|
||||||
|
|
||||||
PHOTO_UPLOADING_TEXT = _photo_uploading()
|
PHOTO_UPLOADING_TEXT = _photo_uploading()
|
||||||
|
|
||||||
@@ -319,14 +319,6 @@ def _search_feedback_info(emojis: dict) -> str:
|
|||||||
f"{emojis['0']} — Выйти в главное меню"
|
f"{emojis['0']} — Выйти в главное меню"
|
||||||
)
|
)
|
||||||
|
|
||||||
def _search_unavailable(emojis: dict) -> str:
|
|
||||||
return (
|
|
||||||
"⚠️ <i>В данный момент выполнить это действие невозможно. "
|
|
||||||
"Информация о проблеме передана ответственным.\n"
|
|
||||||
"Приносим извинения за доставленные неудобства.</i>\n\n"
|
|
||||||
f"<i>{emojis['0']} — В главное меню</i>"
|
|
||||||
)
|
|
||||||
|
|
||||||
# --- Public constants and functions ---
|
# --- Public constants and functions ---
|
||||||
|
|
||||||
SEARCH_MAIN_MENU_TEXT = _search_welcome(EMOJI_DIGITS)
|
SEARCH_MAIN_MENU_TEXT = _search_welcome(EMOJI_DIGITS)
|
||||||
@@ -345,7 +337,7 @@ def search_feedback_info_text(emojis: dict) -> str:
|
|||||||
return _search_feedback_info(emojis)
|
return _search_feedback_info(emojis)
|
||||||
|
|
||||||
def search_unavailable_action(emojis: dict) -> str:
|
def search_unavailable_action(emojis: dict) -> str:
|
||||||
return _search_unavailable(emojis)
|
return system_error_text(emojis, show_back=False)
|
||||||
|
|
||||||
|
|
||||||
# =========================================================
|
# =========================================================
|
||||||
@@ -353,8 +345,6 @@ def search_unavailable_action(emojis: dict) -> str:
|
|||||||
# =========================================================
|
# =========================================================
|
||||||
# Модуль Личного Кабинета (финансовые документы, табель и др.)
|
# Модуль Личного Кабинета (финансовые документы, табель и др.)
|
||||||
|
|
||||||
# --- Constants ---
|
|
||||||
|
|
||||||
DOC_TYPES = {
|
DOC_TYPES = {
|
||||||
"1": "Справка о доходах физического лица (2-НДФЛ)",
|
"1": "Справка о доходах физического лица (2-НДФЛ)",
|
||||||
"2": "Справка об удержаниях за ДМС",
|
"2": "Справка об удержаниях за ДМС",
|
||||||
@@ -367,12 +357,6 @@ DOC_TYPES = {
|
|||||||
|
|
||||||
# --- Private functions (Internal logic) ---
|
# --- Private functions (Internal logic) ---
|
||||||
|
|
||||||
def _lk_error_handling(emojis: dict) -> str:
|
|
||||||
return (
|
|
||||||
"⚠️ <i>В данный момент выполнить это действие невозможно. Информация о проблеме передана ответственным. Приносим извинения за доставленные неудобства.</i>\n\n"
|
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
|
||||||
)
|
|
||||||
|
|
||||||
def _lk_auth_processing(emojis: dict) -> str:
|
def _lk_auth_processing(emojis: dict) -> str:
|
||||||
return "⏳ <i>Проверка безопасности... Запрашиваю контакты авторизации...</i>"
|
return "⏳ <i>Проверка безопасности... Запрашиваю контакты авторизации...</i>"
|
||||||
|
|
||||||
@@ -499,9 +483,8 @@ LK_UNKNOWN_CMD_TEXT = (
|
|||||||
f"<i>{EMOJI_DIGITS['9']} — Назад\n{EMOJI_DIGITS['0']} — В главное меню</i>"
|
f"<i>{EMOJI_DIGITS['9']} — Назад\n{EMOJI_DIGITS['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def lk_error_handling(emojis: dict) -> str:
|
def lk_error_handling(emojis: dict) -> str:
|
||||||
return _lk_error_handling(emojis)
|
return system_error_text(emojis, show_back=True)
|
||||||
|
|
||||||
def lk_auth_processing(emojis: dict) -> str:
|
def lk_auth_processing(emojis: dict) -> str:
|
||||||
return _lk_auth_processing(emojis)
|
return _lk_auth_processing(emojis)
|
||||||
@@ -592,72 +575,58 @@ def lk_years_menu(current_year: int, emojis: dict) -> str:
|
|||||||
def _instruct_main_menu(emojis: dict) -> str:
|
def _instruct_main_menu(emojis: dict) -> str:
|
||||||
return (
|
return (
|
||||||
f"📋 <b>Выберите инструкцию:</b>\n\n"
|
f"📋 <b>Выберите инструкцию:</b>\n\n"
|
||||||
f"{emojis['1']} — 🖥 Trueconf\n"
|
f"{emojis['1']} — 🖥 Настройка TrueConf на мобильном устройстве\n"
|
||||||
f"{emojis['2']} — 📧 Почта\n\n"
|
f"{emojis['2']} — 📧 Настройка почты на мобильном устройстве\n\n"
|
||||||
f"<i>{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
def _instruct_trueconf(emojis: dict) -> str:
|
def _instruct_trueconf(emojis: dict) -> str:
|
||||||
"""Статический текст Trueconf — без проверки группы."""
|
"""Статический текст Trueconf — без проверки группы."""
|
||||||
return (
|
return (
|
||||||
"🖥 <b>Инструкция по Trueconf</b>\n\n"
|
"🖥 <b>Инструкция по TrueConf</b>\n\n"
|
||||||
"Данная функция находится в разработке.\n\n"
|
"Данная функция находится в разработке.\n\n"
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _instruct_trueconf_pending(emojis: dict, cn: str) -> str:
|
def _instruct_trueconf_pending(emojis: dict, cn: str) -> str:
|
||||||
"""Промпт для запроса доступа к Trueconf (когда нет заявки)."""
|
"""Промпт для запроса доступа к Trueconf (когда заявка ещё не создана)."""
|
||||||
return (
|
return (
|
||||||
f"ℹ У вас отсутствует доступ к TrueConf с мобильных устройств.\n\n"
|
f"⚠ <b>У Вас отсутствует доступ к TrueConf с мобильных устройств.</b>\n\n"
|
||||||
f"Если Вам требуется доступ, то напишите цифру {emojis['1']}, либо выберите другие пункты меню.\n\n"
|
f"Если Вам требуется доступ, то напишите цифру {emojis['1']}, либо выберите другие пункты меню.\n\n"
|
||||||
f"{emojis['1']} — Запросить доступ\n"
|
f"{emojis['1']} — Запросить доступ\n"
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _instruct_trueconf_no_ticket(emojis: dict, cn: str) -> str:
|
def _instruct_trueconf_no_ticket(emojis: dict, cn: str) -> str:
|
||||||
"""Текст Trueconf когда пользователь не найден в AD."""
|
"""Текст Trueconf, когда пользователь не найден в AD."""
|
||||||
return (
|
return (
|
||||||
f"🖥 <b>Инструкция по Trueconf</b>\n\n"
|
f"🖥 <b>Инструкция по TrueConf</b>\n\n"
|
||||||
f"Пользователь {cn} не найден в Active Directory.\n\n"
|
f"Пользователь <b>{cn}</b> не найден в Active Directory.\n\n"
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _instruct_trueconf_with_ad(emojis: dict, cn: str, ticket_id: str = None) -> str:
|
def _instruct_trueconf_with_ad(emojis: dict, cn: str, ticket_id: str = None) -> str:
|
||||||
"""
|
"""
|
||||||
Текст Trueconf с проверкой группы 2FA.
|
Чистый шаблон сообщения Trueconf:
|
||||||
cn — CN пользователя из AD.
|
- Если ticket_id передан: показываем статус заявки в ServiceDesk.
|
||||||
ticket_id — номер созданной заявки в SD.
|
- Если ticket_id is None: у пользователя есть доступ, выводим подпись к файлу.
|
||||||
"""
|
"""
|
||||||
from utils.ad_checker import check_group_membership
|
if ticket_id:
|
||||||
|
return (
|
||||||
result = check_group_membership(cn, "2FA")
|
f"⚠ <b>У Вас отсутствует доступ к TrueConf с мобильных устройств.</b>\n\n"
|
||||||
|
f"🎫 Заявка #{ticket_id} для настройки создана в ServiceDesk!\n\n"
|
||||||
if not result["found"]:
|
f"После выполнения заявки воспользуйтесь приложенной к этому сообщению инструкцией.\n\n"
|
||||||
ticket_part = f"\n\n🎫 <b>Заявка #{ticket_id} создана!</b>" if ticket_id else ""
|
|
||||||
return _instruct_trueconf_no_ticket(emojis, cn)
|
|
||||||
|
|
||||||
if result["in_group"]:
|
|
||||||
body = (
|
|
||||||
f"🖥 <b>Инструкция по Trueconf</b>\n\n"
|
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
body = (
|
return (
|
||||||
f"ℹ У вас отсутствует доступ к TrueConf с мобильных устройств.\n\n"
|
f"🖥 <b>Инструкция по настройке TrueConf на мобильном устройстве</b>\n\n"
|
||||||
f"🎫 Заявка #{ticket_id} для настройки создана в ServiceDesk!\n\n"
|
|
||||||
f"🔄 После выполнения заявки запросите инструкцию ещё раз.\n\n"
|
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
|
|
||||||
return body
|
|
||||||
|
|
||||||
|
|
||||||
def _instruct_email(emojis: dict) -> str:
|
def _instruct_email(emojis: dict) -> str:
|
||||||
return (
|
return (
|
||||||
"📧 <b>Инструкция по Почте</b>\n\n"
|
"📧 <b>Инструкция по почте на мобильном устройстве</b>\n\n"
|
||||||
"Данная функция находится в разработке.\n\n"
|
"Данная функция находится в разработке.\n\n"
|
||||||
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
f"<i>{emojis['9']} — Назад\n{emojis['0']} — В главное меню</i>"
|
||||||
)
|
)
|
||||||
@@ -671,10 +640,5 @@ INSTRUCT_TRUECONF_PENDING_TEXT = _instruct_trueconf_pending
|
|||||||
INSTRUCT_TRUECONF_NO_TICKET_TEXT = _instruct_trueconf_no_ticket
|
INSTRUCT_TRUECONF_NO_TICKET_TEXT = _instruct_trueconf_no_ticket
|
||||||
INSTRUCT_EMAIL_TEXT = _instruct_email(EMOJI_DIGITS)
|
INSTRUCT_EMAIL_TEXT = _instruct_email(EMOJI_DIGITS)
|
||||||
|
|
||||||
# --- Standard error stub for all instruct failures ---
|
# Единая стандартная заглушка системной ошибки для модуля инструкций
|
||||||
INSTRUCT_ERROR_MSG = (
|
INSTRUCT_ERROR_MSG = system_error_text(EMOJI_DIGITS, show_back=True)
|
||||||
"⚠️ <i>В данный момент выполнить это действие невозможно. "
|
|
||||||
"Информация о проблеме передана ответственным.\n"
|
|
||||||
"Приносим извинения за доставленные неудобства.</i>\n\n"
|
|
||||||
f"<i>{EMOJI_DIGITS['9']} — Назад\n{EMOJI_DIGITS['0']} — В главное меню</i>"
|
|
||||||
)
|
|
||||||
Reference in New Issue
Block a user