big dik update: prompts and notify mode
This commit is contained in:
1 parent
4c8e21fd42
commit
92a83cf810
6 files changed
+255
-49
No files matched your search
+56
-6
@@ -29,7 +29,7 @@ from supergenerator import *
|
||||
|
||||
router = Router()
|
||||
|
||||
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear"]
|
||||
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear", "/stop"]
|
||||
|
||||
@router.message(Command("stats"))
|
||||
async def stats_handler(message: Message):
|
||||
@@ -40,15 +40,18 @@ async def stats_handler(message: Message):
|
||||
models = Counter()
|
||||
streams = Counter()
|
||||
calls = Counter()
|
||||
prompts = Counter()
|
||||
|
||||
for data in users.values():
|
||||
if isinstance(data, dict):
|
||||
models[data.get("model")] += 1
|
||||
streams[data.get("stream")] += 1
|
||||
calls[data.get("call")] += 1
|
||||
prompts[data.get("prompt")] += 1
|
||||
|
||||
top_models = models.most_common(3)
|
||||
top_streams = streams.most_common(3)
|
||||
top_models = models.most_common(5)
|
||||
top_streams = streams.most_common(2)
|
||||
top_prompts = prompts.most_common(5)
|
||||
|
||||
text = [
|
||||
"✅ *общая статистика*",
|
||||
@@ -58,12 +61,14 @@ async def stats_handler(message: Message):
|
||||
f"🙏ген в инлайне: {get_stats('stats/inline')}",
|
||||
f"🤝ben: {get_stats('stats/ben')}",
|
||||
f"🤝reporn: {get_stats('stats/reporn')}",
|
||||
"🥺топ моделей:",
|
||||
"🥺топ 5 моделей:",
|
||||
*(f"- `{m}`: {c}" for m, c in top_models),
|
||||
"✍️топ режимов стрима:",
|
||||
*(f"- `{s}`: {c}" for s, c in top_streams),
|
||||
"👀топ режимов вызова:",
|
||||
*(f"- `{c}`: {n}" for c, n in calls.most_common()),
|
||||
"📝топ 5 промптов:",
|
||||
*(f"- `{c}`: {n}" for c, n in prompts.most_common()),
|
||||
]
|
||||
|
||||
await message.reply("\n".join(text))
|
||||
@@ -79,7 +84,7 @@ async def broadcast_handler(message: Message):
|
||||
if not text:
|
||||
return await message.reply("🚫 напиши текст после команды ало.")
|
||||
|
||||
users = get_all_user_ids()
|
||||
users = get_all_user_ids(only_notify=True)
|
||||
|
||||
success = 0
|
||||
failed = 0
|
||||
@@ -100,6 +105,17 @@ async def broadcast_handler(message: Message):
|
||||
)
|
||||
|
||||
|
||||
@router.message(Command("stop"))
|
||||
async def stop_handler(message: Message):
|
||||
if message.sender_chat:
|
||||
user_id = message.sender_chat.id
|
||||
else:
|
||||
user_id = message.from_user.id
|
||||
|
||||
config = get_user_config(user_id)
|
||||
set_user_config(user_id, config.get("model"), config.get("stream"), config.get("call"), config.get("prompt"), "net")
|
||||
await message.reply("✅ *рассылка успешно отключена!* чтобы включить её обратно:\n/settings --> рассылка")
|
||||
|
||||
@router.message(Command("ben"))
|
||||
async def start_handler(message: Message):
|
||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||
@@ -179,15 +195,30 @@ async def start_handler(message: Message):
|
||||
|
||||
@router.message(Command("prompt"))
|
||||
async def prompt_handler(message: Message):
|
||||
if message.sender_chat:
|
||||
user_id = message.sender_chat.id
|
||||
else:
|
||||
user_id = message.from_user.id
|
||||
config = get_user_config(user_id)
|
||||
system_prompt_name = config["prompt"]
|
||||
if system_prompt_name in SYSTEM_PROMPTS:
|
||||
system_prompt = SYSTEM_PROMPTS[system_prompt_name]
|
||||
else:
|
||||
await message.reply(
|
||||
f"🤝 произошла ошибка при отображении промпта `{system_prompt_name}`\n*для фото*: ```prompt\n{IMAGE_PROMPT}```изменить системный промпт узбекгпт пока что нельзя."
|
||||
)
|
||||
return
|
||||
|
||||
if PROMPT_COMMAND:
|
||||
await message.reply(
|
||||
f"🤝 *текущий системный промпт узбекГПТ*: ```prompt\n{SYSTEM_PROMPT}```*для фото*: ```prompt\n{IMAGE_PROMPT}```изменить системный промпт узбекгпт пока что нельзя."
|
||||
f"🤝 *ваш выбранный промпт* `{system_prompt_name}`: ```prompt\n{system_prompt}```\n*для фото*: ```prompt\n{IMAGE_PROMPT}```\nизменить системный промпт узбекгпт пока что нельзя."
|
||||
)
|
||||
else:
|
||||
if SHOW_ACC_MSG:
|
||||
await message.reply(
|
||||
"🚫 *данный команда отключен в этом боте.* попросите владельца включить🤝"
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
@router.message(Command("config"))
|
||||
@@ -215,6 +246,7 @@ async def settings_handler(event: Union[Message, CallbackQuery]):
|
||||
|
||||
config = get_user_config(user_id)
|
||||
models_count = sum(len(models) for models in MODELS.values())
|
||||
prompts_count = len(SYSTEM_PROMPTS)
|
||||
|
||||
if config["stream"] == "native":
|
||||
stream_status = "натив"
|
||||
@@ -233,6 +265,13 @@ async def settings_handler(event: Union[Message, CallbackQuery]):
|
||||
call_status = "net"
|
||||
call_cb = "da"
|
||||
|
||||
if config["notify"] == "da":
|
||||
notify_status = "da"
|
||||
notify_cb = "net"
|
||||
else:
|
||||
notify_status = "net"
|
||||
notify_cb = "da"
|
||||
|
||||
keyboard = InlineKeyboardMarkup(
|
||||
inline_keyboard=[
|
||||
[
|
||||
@@ -240,6 +279,11 @@ async def settings_handler(event: Union[Message, CallbackQuery]):
|
||||
text=f"модели ({models_count})", callback_data=f"models%{user_id}"
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=f"промпты ({prompts_count})", callback_data=f"prompts%{user_id}"
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=f"стрим: {stream_status}",
|
||||
@@ -252,6 +296,12 @@ async def settings_handler(event: Union[Message, CallbackQuery]):
|
||||
callback_data=f"set_call%{user_id}%{call_cb}",
|
||||
)
|
||||
],
|
||||
[
|
||||
InlineKeyboardButton(
|
||||
text=f"рассылка: {notify_status}",
|
||||
callback_data=f"set_notify%{user_id}%{notify_cb}",
|
||||
)
|
||||
],
|
||||
[InlineKeyboardButton(text="донат", callback_data=f"donate%{user_id}")],
|
||||
[InlineKeyboardButton(text="о боте", callback_data=f"about%{user_id}")],
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user