first commit
This commit is contained in:
commit
b027361586
11 files changed
+1335
No files matched your search
+198
@@ -0,0 +1,198 @@
|
||||
# from aiogram.methods import SendMessageDraft
|
||||
from aiogram import F
|
||||
from aiogram.types import (
|
||||
CallbackQuery,
|
||||
InlineKeyboardButton,
|
||||
InlineKeyboardMarkup,
|
||||
)
|
||||
|
||||
from commands import *
|
||||
from config import *
|
||||
from supergenerator import *
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("prov%"))
|
||||
async def select_provider_callback(callback: CallbackQuery):
|
||||
current_user_id = str(callback.from_user.id)
|
||||
data = callback.data.split("%", 3)
|
||||
user_id, user_model, provider = data[1], data[2], data[3]
|
||||
|
||||
if user_id != current_user_id:
|
||||
await callback.answer("не для тебя.")
|
||||
return
|
||||
|
||||
buttons = []
|
||||
|
||||
for model in MODELS.get(provider):
|
||||
if f"{provider}*{model}" == user_model:
|
||||
text = f"{model} ✅"
|
||||
else:
|
||||
text = model
|
||||
buttons.append(
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=text, callback_data=f"set_model%{user_id}%{provider}*{model}"
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
if not buttons:
|
||||
buttons = [
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text="🚫 нет моделей", callback_data=f"models%{user_id}"
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
buttons.append(
|
||||
[InlineKeyboardButton(text="назад", callback_data=f"models%{user_id}")]
|
||||
)
|
||||
|
||||
await callback.message.edit_text(
|
||||
f"выбран провайдер: {PROVIDERS.get(provider).get('name')}\nвыбери модель:",
|
||||
reply_markup=InlineKeyboardMarkup(inline_keyboard=buttons),
|
||||
)
|
||||
await callback.answer()
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("models%"))
|
||||
async def models_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)
|
||||
model = config.get("model")
|
||||
|
||||
buttons = []
|
||||
|
||||
for provider in MODELS:
|
||||
buttons.append(
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=PROVIDERS.get(provider).get("name"),
|
||||
callback_data=f"prov%{user_id}%{model}%{provider}",
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
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_model%"))
|
||||
async def set_model_callback(callback: CallbackQuery):
|
||||
current_user_id = str(callback.from_user.id)
|
||||
data = callback.data.split("%", 2)
|
||||
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))
|
||||
await callback.message.edit_text(f"выбрана модель: `{new_model}`")
|
||||
await callback.answer(f"выбрано: {new_model}")
|
||||
else:
|
||||
await callback.answer("нет, не трогай")
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("settings%"))
|
||||
async def settings_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:
|
||||
await callback.answer("нет, не трогай")
|
||||
return
|
||||
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("set_stream%"))
|
||||
async def set_stream_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)
|
||||
if new_status == "native":
|
||||
set_user_config(user_id, config.get("model"), "native", config.get("call"))
|
||||
elif new_status == "edit":
|
||||
set_user_config(user_id, config.get("model"), "edit", config.get("call"))
|
||||
else:
|
||||
set_user_config(user_id, config.get("model"), "none", config.get("call"))
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("set_call%"))
|
||||
async def set_call_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"), new_status)
|
||||
await settings_handler(callback)
|
||||
|
||||
|
||||
@router.callback_query(F.data == "start")
|
||||
async def start_callback(callback: CallbackQuery):
|
||||
await callback.message.edit_text(
|
||||
"✅ я рад что вас заинтересовать✅✅ а теперь напише любое сообщение и свободный узбек вам ответит✅\n\n"
|
||||
"/start - ага старт\n"
|
||||
"/clear - очистить контекст✅\n"
|
||||
"/settings - настройки✅\n"
|
||||
"/prompt - системный промпт узбека"
|
||||
)
|
||||
await callback.answer()
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("about%"))
|
||||
async def about_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:
|
||||
await callback.answer("нет, не трогай")
|
||||
return
|
||||
|
||||
buttons = [
|
||||
[InlineKeyboardButton(text="назад", callback_data=f"settings%{user_id}")]
|
||||
]
|
||||
|
||||
await callback.message.edit_text(
|
||||
"✅ *об узбекгпт* ✅\n"
|
||||
"- создал @huker667\n"
|
||||
"- репозиторий бота: https://codeberg.org/huker667/UzbekGPT\n"
|
||||
"- подпешис: t.me/hukerass",
|
||||
reply_markup=InlineKeyboardMarkup(inline_keyboard=buttons),
|
||||
)
|
||||
|
||||
await callback.answer()
|
||||
Reference in new issue
Block a user