Files
LGBot/src/modules/log.py
Евгений Храмов ebe2b2c0fd Добавление подсказок по командом
Добавление сообщений о создании лога
2025-10-12 12:11:41 +03:00

87 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)}")