diff options
Diffstat (limited to 'callbacks.py')
| -rw-r--r-- | callbacks.py | 90 |
1 files changed, 85 insertions, 5 deletions
diff --git a/callbacks.py b/callbacks.py index 17fe34a..fc81e2b 100644 --- a/callbacks.py +++ b/callbacks.py @@ -106,13 +106,77 @@ async def set_model_callback(callback: CallbackQuery): user_id, new_model = data[1], data[2] if user_id == current_user_id: current_config = get_user_config(user_id) - set_user_config(user_id, new_model, current_config.get("stream", True)) + set_user_config(user_id, new_model, current_config.get("stream", True), current_config.get("prompt", True), current_config.get("notify", "True")) await callback.message.edit_text(f"выбрана модель: `{new_model}`") await callback.answer(f"выбрано: {new_model}") else: await callback.answer("нет, не трогай") + +@router.callback_query(F.data.startswith("prompts%")) +async def prompts_callback(callback: CallbackQuery): + current_user_id = str(callback.from_user.id) + data = callback.data.split("%", 1) + user_id = data[1] + if user_id == current_user_id: + config = get_user_config(user_id) + prompt = config.get("prompt") + + buttons = [] + + for name in SYSTEM_PROMPTS: + text = name + if prompt == name: + text += " ✅" + buttons.append( + [ + InlineKeyboardButton( + text=text, + callback_data=f"set_prompt%{user_id}%{name}", + ) + ] + ) + + if not buttons: + buttons.append( + [ + InlineKeyboardButton( + text="🚫 нет промптов!", callback_data=f"settings%{user_id}" + ) + ] + ) + + buttons.append( + [InlineKeyboardButton(text="назад", callback_data=f"settings%{user_id}")] + ) + + await callback.message.edit_text( + "выбери системный промпт:", + reply_markup=InlineKeyboardMarkup(inline_keyboard=buttons), + ) + await callback.answer() + else: + await callback.answer("не тыкай. это не для тебя.") + + + +@router.callback_query(F.data.startswith("set_prompt%")) +async def set_prompt_callback(callback: CallbackQuery): + current_user_id = str(callback.from_user.id) + data = callback.data.split("%", 2) + user_id = data[1] + if user_id != current_user_id: + await callback.answer("нет, не трогай это не твое") + return + + new_status = callback.data.split("%")[2] + + config = get_user_config(user_id) + set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), new_status, config.get("notify")) + await settings_handler(callback) + + @router.callback_query(F.data.startswith("settings%")) async def settings_callback(callback: CallbackQuery): current_user_id = str(callback.from_user.id) @@ -138,11 +202,11 @@ async def set_stream_callback(callback: CallbackQuery): config = get_user_config(user_id) if new_status == "native": - set_user_config(user_id, config.get("model"), "native", config.get("call")) + set_user_config(user_id, config.get("model"), "native", config.get("call"), config.get("prompt"), config.get("notify")) elif new_status == "edit": - set_user_config(user_id, config.get("model"), "edit", config.get("call")) + set_user_config(user_id, config.get("model"), "edit", config.get("call"), config.get("prompt"), config.get("notify")) else: - set_user_config(user_id, config.get("model"), "none", config.get("call")) + set_user_config(user_id, config.get("model"), "none", config.get("call"), config.get("prompt"), config.get("notify")) await settings_handler(callback) @@ -158,7 +222,23 @@ async def set_call_callback(callback: CallbackQuery): new_status = callback.data.split("%")[2] config = get_user_config(user_id) - set_user_config(user_id, config.get("model"), config.get("stream"), new_status) + set_user_config(user_id, config.get("model"), config.get("stream"), new_status, config.get("prompt"), config.get("notify")) + await settings_handler(callback) + + +@router.callback_query(F.data.startswith("set_notify%")) +async def set_notify_callback(callback: CallbackQuery): + current_user_id = str(callback.from_user.id) + data = callback.data.split("%", 2) + user_id = data[1] + if user_id != current_user_id: + await callback.answer("нет, не трогай это не твое") + return + + new_status = callback.data.split("%")[2] + + config = get_user_config(user_id) + set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), config.get("prompt"), new_status) await settings_handler(callback) |