Исправление обработки прав администратора

Изменение сообщений о банах
This commit is contained in:
2025-10-18 13:21:47 +03:00
parent 295866ed2d
commit 383abb0235
3 changed files with 25 additions and 33 deletions

View File

@@ -131,12 +131,15 @@ async def apply_mute(bot: AsyncTeleBot, message: Message, user_id: int, duration
message_thread_id=message.message_thread_id, message_thread_id=message.message_thread_id,
) )
# Формируем причину с полным текстом сообщения
reason_text = f"{words_info} (нарушение #{violations_count})\n\n📝 <b>Текст сообщения:</b>\n<code>{message.text}</code>"
# Отправляем сообщение-лог в админ-чат # Отправляем сообщение-лог в админ-чат
await action_reporter.log_action( await action_reporter.log_action(
action="АВТОМУТ", action="АВТОМУТ",
user_id=user_id, user_id=user_id,
admin_id=None, # Автоматическое действие admin_id=None, # Автоматическое действие
reason=f"{words_info} (нарушение #{violations_count})", reason=reason_text,
duration=time_display, duration=time_display,
) )

View File

@@ -22,8 +22,8 @@ def register_handlers(bot: AsyncTeleBot):
logger.info(f"Команда /badwords получена от пользователя {message.from_user.id}") logger.info(f"Команда /badwords получена от пользователя {message.from_user.id}")
# Проверяем права администратора # Проверяем права администратора (без проверки прав на ограничение участников)
admin_check = await check_admin_status(bot, message) admin_check = await check_admin_status(bot, message, check_restrict_rights=False)
if admin_check == 1: if admin_check == 1:
logger.info(f"Пользователь {message.from_user.id} не является администратором") logger.info(f"Пользователь {message.from_user.id} не является администратором")
return return

View File

@@ -4,16 +4,13 @@ import asyncio
import logging import logging
import os import os
from utils import delete_messages from utils import delete_messages, check_admin_status
from config import COMMAND_MESSAGES, DATABASE_NAME, LOG_FILE_NAME from config import COMMAND_MESSAGES, DATABASE_NAME, LOG_FILE_NAME
# Получаем логгер для текущего модуля # Получаем логгер для текущего модуля
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# Загружаем id администраторов из .env
ADMIN_IDS = [int(id_str.strip()) for id_str in os.getenv('ADMIN_IDS').split(',')]
# Регистрирует все обработчики команд # Регистрирует все обработчики команд
def register_handlers(bot: AsyncTeleBot): def register_handlers(bot: AsyncTeleBot):
@@ -23,36 +20,28 @@ def register_handlers(bot: AsyncTeleBot):
try: try:
# Если id администратора совпадает # Проверяем права администратора (без проверки прав на ограничение участников)
if message.from_user.id in ADMIN_IDS: admin_check = await check_admin_status(bot, message, check_restrict_rights=False)
if admin_check == 1:
logger.info(f"Пользователь {message.from_user.id} не является администратором")
return
# Отправляем базу данных # Если проверка пройдена
await bot.send_document(
chat_id=message.chat.id,
document=open(DATABASE_NAME, 'rb')
)
# Отправляем файл с логами # Отправляем базу данных
await bot.send_document( await bot.send_document(
chat_id=message.chat.id, chat_id=message.chat.id,
document=open(LOG_FILE_NAME, 'rb') document=open(DATABASE_NAME, 'rb')
) )
# Записываем действие в логи # Отправляем файл с логами
logger.info(f"Администратор {message.from_user.id} запустил /botdata.") await bot.send_document(
chat_id=message.chat.id,
document=open(LOG_FILE_NAME, 'rb')
)
# Если id администратора не совпадает # Записываем действие в логи
else: logger.info(f"Администратор {message.from_user.id} запустил /botdata.")
# Отправляем предупреждение
await bot.send_message(
chat_id=message.chat.id,
text=COMMAND_MESSAGES['no_admin_rights'],
message_thread_id=message.message_thread_id,
)
# Записываем действие в логи
logger.info(f"Пользователь {message.from_user.id} запустил /botdata.")
except Exception as e: except Exception as e: