forked from Muzifs/LGBot
Исправление обработки прав администратора
Изменение сообщений о банах
This commit is contained in:
@@ -131,12 +131,15 @@ async def apply_mute(bot: AsyncTeleBot, message: Message, user_id: int, duration
|
||||
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(
|
||||
action="АВТОМУТ",
|
||||
user_id=user_id,
|
||||
admin_id=None, # Автоматическое действие
|
||||
reason=f"{words_info} (нарушение #{violations_count})",
|
||||
reason=reason_text,
|
||||
duration=time_display,
|
||||
)
|
||||
|
||||
|
@@ -22,8 +22,8 @@ def register_handlers(bot: AsyncTeleBot):
|
||||
|
||||
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:
|
||||
logger.info(f"Пользователь {message.from_user.id} не является администратором")
|
||||
return
|
||||
|
@@ -4,16 +4,13 @@ import asyncio
|
||||
import logging
|
||||
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
|
||||
|
||||
# Получаем логгер для текущего модуля
|
||||
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):
|
||||
|
||||
@@ -23,36 +20,28 @@ def register_handlers(bot: AsyncTeleBot):
|
||||
|
||||
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(
|
||||
chat_id=message.chat.id,
|
||||
document=open(LOG_FILE_NAME, 'rb')
|
||||
)
|
||||
# Отправляем базу данных
|
||||
await bot.send_document(
|
||||
chat_id=message.chat.id,
|
||||
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:
|
||||
|
||||
# Отправляем предупреждение
|
||||
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.")
|
||||
# Записываем действие в логи
|
||||
logger.info(f"Администратор {message.from_user.id} запустил /botdata.")
|
||||
|
||||
except Exception as e:
|
||||
|
||||
|
Reference in New Issue
Block a user