added utils.py

1. Добавил message_thread_id для всех команд, убрав костыль, который отвечал за корректную отправку
   сообщений в топик.
2. Функции (определение администратора, удаление сообщений) вынес в utils.py, от куда они будут вызываться в командах. Модули стали более читаемы из-за уменьшения количества строк кода в них.
3. Дописал manual_unban и добавил error в config.py
4. Оптимизация
This commit is contained in:
2025-07-28 21:03:28 +03:00
parent d73c0079f0
commit 853bfcdbb4
8 changed files with 692 additions and 492 deletions

View File

@ -3,32 +3,46 @@ from telebot.types import Message
import asyncio
import logging
from utils import delete_messages
from config import COMMAND_MESSAGES
logger = logging.getLogger(__name__) # Получаем логгер для текущего модуля
# Получаем логгер для текущего модуля
logger = logging.getLogger(__name__)
def register_handlers(bot: AsyncTeleBot): # Регистрирует все обработчики команд
# Регистрирует все обработчики команд
def register_handlers(bot: AsyncTeleBot):
@bot.message_handler(commands=['help']) # Обработчик команды /help
# Обработчик команды /help
@bot.message_handler(commands=['help'])
async def help_command(message: Message):
# Отправка сообщения в тему или обычный чат
send_message = bot.reply_to if message.is_topic_message else bot.send_message
chat_id = message if message.is_topic_message else message.chat.id
try:
# Отправляем сообщение
await send_message(chat_id, COMMAND_MESSAGES['help'])
await bot.send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['help'],
message_thread_id=message.message_thread_id,
)
# Записываем действие в логи
logger.info(f"Пользователь {message.from_user.id} запустил /help.")
# Если пользователь писал в чат
if message.chat.id != message.from_user.id:
# Удаляем сообщения через 30 секунд
await asyncio.sleep(30)
await bot.delete_message(message.chat.id, message.message_id)
await bot.delete_message(message.chat.id, message.message_id+1)
await delete_messages(bot, message, time_sleep=30, number_message=2)
except Exception as e:
logger.error(f"Пользователь {message.from_user.id} запустил /help: {str(e)}")
# Отправляем ошибку
await send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['general_error'],
message_thread_id=message.message_thread_id,
)
# Записываем ошибку в логи
logger.error(f"Общая ошибка в help_command: {str(e)}")