feat: добавлено логирование для отладки кнопок

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-02-27 19:55:35 +08:00
parent d0f91d7daa
commit 42e1043f28
2 changed files with 16 additions and 4 deletions

View File

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

View File

@ -245,9 +245,13 @@ async def send_long_message(update: Update, text: str, parse_mode: str = None, p
state.output_wait_message = wait_msg state.output_wait_message = wait_msg
state.output_continue_event = continue_event state.output_continue_event = continue_event
logger.info(f"send_long_message: ждём нажатия кнопки (user_id={user_id}, remaining={remaining})")
# Ждём пока callback handler не установит event # Ждём пока callback handler не установит event
await continue_event.wait() await continue_event.wait()
logger.info(f"send_long_message: кнопка нажата, continue_output={state.continue_output}")
# Пользователь ответил # Пользователь ответил
if state.continue_output: if state.continue_output:
# Продолжаем - удаляем кнопки # Продолжаем - удаляем кнопки