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,
|
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,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user