fix: динамическая кнопка чата с ИИ

Изменения:
- Разные callback_data для вкл/выкл (toggle_ai_chat_on/off)
- Разный текст кнопки в зависимости от статуса
- Telegram теперь правильно обновляет кнопку

Теперь кнопка показывает правильное действие

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-02-24 04:40:29 +08:00
parent a41556a2d6
commit 00e7c1a1e5
1 changed files with 25 additions and 3 deletions

28
bot.py
View File

@ -785,9 +785,14 @@ class MenuBuilder:
for item in items:
if item.callback == "toggle_ai_chat":
# Меняем текст кнопки
label = f"{ai_status} Чат с ИИ агентом"
button = InlineKeyboardButton(label, callback_data=item.callback)
# Меняем текст кнопки и callback_data в зависимости от статуса
if state.ai_chat_mode:
label = f"{ai_status} Выключить чат с ИИ"
callback = "toggle_ai_chat_off"
else:
label = f"{ai_status} Включить чат с ИИ"
callback = "toggle_ai_chat_on"
button = InlineKeyboardButton(label, callback_data=callback)
else:
button = InlineKeyboardButton(item.label, callback_data=item.callback)
keyboard.append([button])
@ -1458,6 +1463,23 @@ async def menu_callback(update: Update, context: ContextTypes.DEFAULT_TYPE):
)
state.current_menu = "main"
elif callback in ["toggle_ai_chat_on", "toggle_ai_chat_off"]:
# Переключаем режим (новые callback_data для правильной работы кнопки)
state.ai_chat_mode = not state.ai_chat_mode
ai_status = "✅ ВКЛЮЧЕН" if state.ai_chat_mode else "❌ ВЫКЛЮЧЕН"
action = "включён" if state.ai_chat_mode else "выключен"
await query.edit_message_text(
f"🏠 *Главное меню*\n\n"
f"💬 *Чат с ИИ:* {ai_status}\n\n"
f"Режим чата с агентом {action}.\n"
f"Теперь все сообщения будут отправляться в Qwen Code.",
parse_mode="Markdown",
reply_markup=menu_builder.get_keyboard("main", user_id=query.from_user.id)
)
state.current_menu = "main"
async def execute_cli_command(query, command: str):
"""Выполнение CLI команды из кнопки меню."""