fix: улучшенная обработка ошибок при удалении сообщений
- Каждое удаление теперь в отдельном try-except - Если сообщение не найдено - продолжаем удаление остальных - Не показываем пользователю ошибки 'message not found' - Всегда удаляем команду админа даже при ошибках
This commit is contained in:
@@ -144,13 +144,20 @@ async def quick_delete_replied_message(message: Message):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Удаляем исходное сообщение (на которое ответили)
|
# Удаляем исходное сообщение (на которое ответили)
|
||||||
|
try:
|
||||||
await replied_msg.delete()
|
await replied_msg.delete()
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"Не удалось удалить исходное сообщение: {e}")
|
||||||
|
|
||||||
# Удаляем команду админа
|
# Удаляем команду админа
|
||||||
|
try:
|
||||||
await message.delete()
|
await message.delete()
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"Не удалось удалить команду админа: {e}")
|
||||||
|
|
||||||
# Если было broadcast удаление - показываем статистику
|
# Если было broadcast удаление - показываем статистику
|
||||||
if deleted_count > 0:
|
if deleted_count > 0:
|
||||||
|
try:
|
||||||
status_msg = await message.answer(
|
status_msg = await message.answer(
|
||||||
f"✅ Сообщение удалено у {deleted_count} получателей",
|
f"✅ Сообщение удалено у {deleted_count} получателей",
|
||||||
reply_to_message_id=None
|
reply_to_message_id=None
|
||||||
@@ -158,17 +165,14 @@ async def quick_delete_replied_message(message: Message):
|
|||||||
# Удаляем статус через 3 секунды
|
# Удаляем статус через 3 секунды
|
||||||
import asyncio
|
import asyncio
|
||||||
await asyncio.sleep(3)
|
await asyncio.sleep(3)
|
||||||
try:
|
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user