feature/chat-system #2

Merged
trevor merged 28 commits from feature/chat-system into master 2025-11-17 06:05:49 +00:00
33 changed files with 11452 additions and 401 deletions
Showing only changes of commit c3c8f74c91 - Show all commits

View File

@@ -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)