fix: используем state.output_wait_message вместо wait_msg

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-02-27 20:11:57 +08:00
parent d20092730e
commit 577bfce85e
1 changed files with 14 additions and 8 deletions

View File

@ -55,28 +55,34 @@ async def menu_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):
remaining = int(callback.replace("continue_output_", ""))
state = state_manager.get(user_id)
logger.info(f"callback continue_output_{remaining}: user_id={user_id}")
# Сначала отвечаем на callback (обязательно!)
await query.answer()
# Потом обновляем состояние
state.waiting_for_output_control = False
state.continue_output = True
# Удаляем сообщение с кнопками
try:
await query.delete_message()
except Exception as e:
logger.warning(f"Не удалось удалить сообщение с кнопками: {e}")
await query.answer()
if state.output_wait_message:
await state.output_wait_message.delete()
except:
pass
return
elif callback == "cancel_output":
# Пользователь нажал "Отменить"
logger.info(f"callback cancel_output: user_id={user_id}")
state = state_manager.get(user_id)
# Сначала отвечаем на callback (обязательно!)
await query.answer()
# Потом обновляем состояние
state.waiting_for_output_control = False
state.continue_output = False
# Удаляем сообщение с кнопками
try:
await query.delete_message()
except Exception as e:
logger.warning(f"Не удалось удалить сообщение с кнопками: {e}")
await query.answer()
if state.output_wait_message:
await state.output_wait_message.delete()
except:
pass
return
elif callback == "preset_menu":