1. Добавил message_thread_id для всех команд, убрав костыль, который отвечал за корректную отправку сообщений в топик. 2. Функции (определение администратора, удаление сообщений) вынес в utils.py, от куда они будут вызываться в командах. Модули стали более читаемы из-за уменьшения количества строк кода в них. 3. Дописал manual_unban и добавил error в config.py 4. Оптимизация
48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
from telebot.async_telebot import AsyncTeleBot
|
|
from telebot.types import Message
|
|
import asyncio
|
|
import logging
|
|
|
|
from utils import delete_messages
|
|
|
|
from config import COMMAND_MESSAGES
|
|
|
|
# Получаем логгер для текущего модуля
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Регистрирует все обработчики команд
|
|
def register_handlers(bot: AsyncTeleBot):
|
|
|
|
# Обработчик команды /help
|
|
@bot.message_handler(commands=['help'])
|
|
async def help_command(message: Message):
|
|
|
|
try:
|
|
|
|
# Отправляем сообщение
|
|
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 delete_messages(bot, message, time_sleep=30, number_message=2)
|
|
|
|
except Exception as 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)}") |