fix(tg): /archive tries delete_forum_topic, falls back with explanation if API rejects

This commit is contained in:
Mikhail Putilovskij 2026-04-02 15:16:39 +03:00
parent dd5745bf51
commit 8a00d5ac54
2 changed files with 32 additions and 7 deletions

View file

@ -50,10 +50,20 @@ async def cmd_archive(message: Message) -> None:
await message.answer("Этот чат не найден или уже архивирован.")
return
db.archive_chat(user_id=user_id, thread_id=thread_id)
await message.answer(
"Чат архивирован — бот больше не будет отвечать здесь.\n\n"
"Чтобы удалить топик из списка: удержи его в списке чатов → «Удалить тему»."
)
try:
await message.bot.delete_forum_topic(
chat_id=message.chat.id, message_thread_id=thread_id
)
logger.info("cmd_archive_deleted", user_id=user_id, thread_id=thread_id)
except TelegramBadRequest as e:
logger.warning("cmd_archive_delete_failed", error=str(e))
await message.answer(
"Чат архивирован — бот больше не будет отвечать здесь.\n\n"
"Удалить топик из списка не получится: он создан ботом, "
"а Telegram не позволяет пользователям удалять чужие топики."
)
logger.info("cmd_archive", user_id=user_id, thread_id=thread_id)