diff --git a/src/handlers/message_management.py b/src/handlers/message_management.py index 3ab3cbe..495eb19 100644 --- a/src/handlers/message_management.py +++ b/src/handlers/message_management.py @@ -59,7 +59,44 @@ async def delete_message_callback(callback: CallbackQuery): try: await callback.message.delete() await callback.answer("✅ Сообщение удалено") - logger.info(f"Администратор {callback.from_user.id} удалил сообщение {callback.message.message_id} кнопкой") + logger.info(f"Администратор {callback.from_user.id} удалил сообщение через кнопку") except Exception as e: - logger.error(f"Ошибка при удалении сообщения: {e}") + logger.error(f"Ошибка при удалении сообщения через кнопку: {e}") await callback.answer(f"❌ Ошибка: {str(e)}", show_alert=True) + + +@message_admin_router.message(F.reply_to_message) +async def quick_delete_replied_message(message: Message): + """ + Быстрое удаление сообщения по reply с триггерными словами или emoji + Работает для админов при ответе на любое сообщение + + Триггеры: + - "удалить", "delete", "del" + - 🗑️ (мусорная корзина) + - ❌ (крестик) + """ + if not is_admin(message.from_user.id): + return # Не админ - пропускаем + + if not message.text: + return # Нет текста - пропускаем + + # Проверяем триггерные слова/символы + text_lower = message.text.lower().strip() + triggers = ["удалить", "delete", "del", "🗑️", "🗑", "❌"] + + is_trigger = any(trigger in text_lower for trigger in triggers) + + if not is_trigger: + return # Не триггер - пропускаем + + try: + # Удаляем сообщение на которое ответили + await message.reply_to_message.delete() + # Удаляем команду + await message.delete() + logger.info(f"Администратор {message.from_user.id} быстро удалил сообщение {message.reply_to_message.message_id}") + except Exception as e: + logger.error(f"Ошибка при быстром удалении сообщения: {e}") + await message.answer(f"❌ Не удалось удалить: {str(e)}", reply_to_message_id=message.message_id)