More logs

parent f321e8f1
-- SQLite
DELETE FROM banned_users WHERE id = 5129976439;
DELETE FROM banned_users WHERE id = 5129976439;
\ No newline at end of file
......@@ -232,6 +232,10 @@ async def handle_message(message: Message):
if chat_member.status not in ["member"]:
# Если пользователь не обычный участник, удаляем его сообщение
logger.warning(
f"Message deleted due to non-member status: {chat_member.status}",
extra={"chat_id": chat_id}
)
await message.delete()
return
except AiogramError as e:
......@@ -257,35 +261,58 @@ async def handle_message(message: Message):
# Проверка на смешанную раскладку
if text and has_mixed_layout(text, chat_id):
logger.warning(
f"Mixed layout detected. Raw text: '{text}'",
extra={"chat_id": chat_id}
)
# --- Удаляем сообщение ---
try:
await message.delete()
logger.debug(f"Message with a mixed layout successfully deleted from group.", extra={"chat_id": chat_id})
logger.info(
"Message deleted due to mixed layout.",
extra={"chat_id": chat_id}
)
except Exception as e:
logger.error(
f"Failed to delete message with mixed layout: {e}",
extra={"chat_id": chat_id}
)
return # прекратить обработку — дальше идти опасно
# --- Блокируем пользователя ---
user_id = message.from_user.id
try:
ban_user(user_id, message.from_user.first_name, message.from_user.last_name,
message.from_user.username, "Mixed layout detected")
# Баним пользователя в чате и перемещаем в таблицу забаненных
user_id = message.from_user.id
ban_user(user_id, message.from_user.first_name, message.from_user.last_name, message.from_user.username, "Mixed layout detected")
await bot.ban_chat_member(chat_id, user_id)
# Создаем кнопку для разбанивания
keyboard = InlineKeyboardMarkup(
inline_keyboard=[
[InlineKeyboardButton(text="🔓 Разбанить", callback_data=f"unban_{user_id}")]
]
)
# Отправляем сообщение с кнопкой в группу логов
await bot.send_message(
chat_id=log_chat_id,
text=f"❌ User <b>{user_id}</b> has been banned for sending a massege with mixed layout.",
chat_id=log_chat_id,
text=f"❌ User <b>{user_id}</b> has been banned for sending a message with mixed layout.",
reply_markup=keyboard,
parse_mode="HTML"
)
#logger.info(f"User {user_id} has been banned in the chat and moved to banned_users table due to mixed layout.", extra={"chat_id": chat_id})
return
logger.info(
f"User {user_id} banned due to mixed layout.",
extra={"chat_id": chat_id}
)
except Exception as e:
logger.error(f"Error deleting a message with a mixed layout. Error: {e}", extra={"chat_id": chat_id})
logger.error(
f"Failed to ban user {user_id} after mixed layout detection: {e}",
extra={"chat_id": chat_id}
)
return
# Проверка на мультимедиа (фото/видео) и его подпись
if (message.photo or message.video or message.document) and text.strip() and is_spam(text, chat_id):
try:
......@@ -323,6 +350,7 @@ async def handle_message(message: Message):
for button in chain(*message.reply_markup.inline_keyboard):
if button.url and any(spam_word in button.url.lower() for spam_word in SPAM_KEYWORDS):
try:
logger.warning(f"Message with links/buttons detected in group.", extra={"chat_id": chat_id})
# Удаляем сообщение с кнопкой
await message.delete()
logger.info(f"Message with links/buttons with ID {message.message_id} successfully deleted from group.", extra={"chat_id": chat_id})
......@@ -599,7 +627,7 @@ async def main():
await bot.set_my_commands([
BotCommand(command="/spam", description="Оповестить о спаме уполномоченных людей"),
BotCommand(command="/unban", description="Разбанить пользователя (доступно модераторам)"),
BotCommand(command="/ban", description="Разбанить пользователя (доступно модераторам)")
BotCommand(command="/ban", description="Забанить пользователя (доступно модераторам)")
])
await dp.start_polling(bot)
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment