fix: исправлена блокировка broadcast и отключена статистика для обычных пользователей

- Исправлен порядок роутеров: account_router перемещён после chat_router
- Добавлен фильтр is_delete_trigger для quick_delete (перехватывал все сообщения)
- Статистика доставки теперь показывается только админам
- Обычные пользователи больше не видят 'Сообщение разослано' после отправки
This commit is contained in:
2025-11-17 11:44:12 +09:00
parent 09bef4e1b9
commit fe2ac75aa8
5 changed files with 53 additions and 30 deletions

View File

@@ -65,7 +65,18 @@ async def delete_message_callback(callback: CallbackQuery):
await callback.answer(f"❌ Ошибка: {str(e)}", show_alert=True)
@message_admin_router.message(F.reply_to_message)
# Функция-фильтр для проверки триггерных слов
def is_delete_trigger(message: Message) -> bool:
"""Проверяет, является ли сообщение триггером для удаления"""
if not message.text:
return False
text_lower = message.text.lower().strip()
triggers = ["удалить", "delete", "del", "🗑️", "🗑", ""]
return any(trigger in text_lower for trigger in triggers)
@message_admin_router.message(F.reply_to_message, is_delete_trigger)
async def quick_delete_replied_message(message: Message):
"""
Быстрое удаление сообщения по reply с триггерными словами или emoji
@@ -79,18 +90,6 @@ async def quick_delete_replied_message(message: Message):
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()