fix: динамическая кнопка чата с ИИ
Изменения: - Разные callback_data для вкл/выкл (toggle_ai_chat_on/off) - Разный текст кнопки в зависимости от статуса - Telegram теперь правильно обновляет кнопку Теперь кнопка показывает правильное действие Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
a41556a2d6
commit
00e7c1a1e5
28
bot.py
28
bot.py
|
|
@ -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 команды из кнопки меню."""
|
||||
|
|
|
|||
Loading…
Reference in New Issue