fix: улучшенная обработка ошибок при удалении сообщений

- Каждое удаление теперь в отдельном try-except
- Если сообщение не найдено - продолжаем удаление остальных
- Не показываем пользователю ошибки 'message not found'
- Всегда удаляем команду админа даже при ошибках
This commit is contained in:
2025-11-17 14:59:41 +09:00
parent 035ad464f7
commit 6edcebe51f
2 changed files with 20 additions and 16 deletions

View File

@@ -1 +1 @@
1052888 1055128

View File

@@ -144,31 +144,35 @@ async def quick_delete_replied_message(message: Message):
) )
# Удаляем исходное сообщение (на которое ответили) # Удаляем исходное сообщение (на которое ответили)
await replied_msg.delete() try:
await replied_msg.delete()
except Exception as e:
logger.warning(f"Не удалось удалить исходное сообщение: {e}")
# Удаляем команду админа # Удаляем команду админа
await message.delete() try:
await message.delete()
except Exception as e:
logger.warning(f"Не удалось удалить команду админа: {e}")
# Если было broadcast удаление - показываем статистику # Если было broadcast удаление - показываем статистику
if deleted_count > 0: if deleted_count > 0:
status_msg = await message.answer(
f"✅ Сообщение удалено у {deleted_count} получателей",
reply_to_message_id=None
)
# Удаляем статус через 3 секунды
import asyncio
await asyncio.sleep(3)
try: try:
status_msg = await message.answer(
f"✅ Сообщение удалено у {deleted_count} получателей",
reply_to_message_id=None
)
# Удаляем статус через 3 секунды
import asyncio
await asyncio.sleep(3)
await status_msg.delete() await status_msg.delete()
except: except Exception as e:
pass logger.warning(f"Не удалось показать/удалить статус: {e}")
except Exception as e: except Exception as e:
logger.error(f"Ошибка при быстром удалении сообщения: {e}") logger.error(f"Ошибка при быстром удалении сообщения: {e}")
try: try:
await message.answer( # Пытаемся удалить хотя бы команду админа
f"Не удалось удалить: {str(e)}", await message.delete()
reply_to_message_id=message.message_id
)
except: except:
pass pass