aboutsummaryrefslogtreecommitdiff
path: root/callbacks.py
diff options
context:
space:
mode:
authorhuker667 <huker@tuta.io>2026-07-05 17:06:11 +0300
committerhuker667 <huker@tuta.io>2026-07-05 17:06:11 +0300
commit92a83cf8105daae12a8e5442d48003d40490e52e (patch)
tree3d58c887bed2705e57b7b83d2952175b10b077e8 /callbacks.py
parent4c8e21fd4287c3e26ca470c520d9d234ef2da450 (diff)
downloaduzbekgpt-92a83cf8105daae12a8e5442d48003d40490e52e.tar.gz
uzbekgpt-92a83cf8105daae12a8e5442d48003d40490e52e.tar.bz2
uzbekgpt-92a83cf8105daae12a8e5442d48003d40490e52e.zip
big dik update: prompts and notify mode
Diffstat (limited to 'callbacks.py')
-rw-r--r--callbacks.py90
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)