Добавление подсказок по командом

Добавление сообщений о создании лога
This commit is contained in:
2025-10-12 12:11:41 +03:00
parent 51e1d59b12
commit ebe2b2c0fd
4 changed files with 1361 additions and 1 deletions

87
src/modules/log.py Normal file
View File

@@ -0,0 +1,87 @@
from telebot.async_telebot import AsyncTeleBot
from telebot.types import Message
import logging
import re
from config import COMMAND_MESSAGES
# Получаем логгер для текущего модуля
logger = logging.getLogger(__name__)
# Функция для отправки сообщения с инструкцией по логам
async def send_log_instruction(bot: AsyncTeleBot, message: Message):
try:
# Отправляем сообщение со ссылкой на инструкцию
await bot.send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['log'],
message_thread_id=message.message_thread_id,
disable_web_page_preview=False,
)
except Exception as e:
# Записываем ошибку в логи
logger.error(f"Ошибка отправки инструкции по логам: {str(e)}")
# Функция проверки наличия триггерных фраз
def contains_log_trigger(text: str) -> bool:
if not text:
return False
# Список триггерных фраз (регистронезависимый поиск)
triggers = [
r'лог\?',
r'приложите\s+лог',
r'приложи\s+лог'
]
text_lower = text.lower()
for trigger in triggers:
if re.search(trigger, text_lower):
return True
return False
# Регистрирует все обработчики команд
def register_handlers(bot: AsyncTeleBot):
# Обработчик команды /log
@bot.message_handler(commands=['log'])
async def log_command(message: Message):
try:
# Отправляем инструкцию
await send_log_instruction(bot, message)
# Записываем действие в логи
logger.info(f"Пользователь {message.from_user.id} запустил /log.")
except Exception as e:
# Отправляем ошибку
await bot.send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['general_error'],
message_thread_id=message.message_thread_id,
)
# Записываем ошибку в логи
logger.error(f"Общая ошибка в log_command: {str(e)}")
# Автоматический обработчик триггерных фраз
@bot.message_handler(func=lambda message: message.content_type == 'text' and contains_log_trigger(message.text))
async def auto_log_trigger(message: Message):
try:
# Отправляем инструкцию
await send_log_instruction(bot, message)
# Записываем действие в логи
logger.info(f"Автоматически отправлена инструкция по логам в ответ на сообщение от {message.from_user.id}.")
except Exception as e:
# Записываем ошибку в логи
logger.error(f"Ошибка в auto_log_trigger: {str(e)}")