пиздец обнова конечно

This commit is contained in:
huker667 committed 2026-08-03 09:37:10 +03:00
1 parent e3116d490e
commit a14713a286
7 files changed
+962 -65

No files matched your search

+205 -16
View File
@@ -4,6 +4,7 @@ import base64
import io
import sys
import time
import string
import gconfig
@@ -28,6 +29,7 @@ from aiogram.types import (
InputTextMessageContent,
InputRichMessageContent,
InputRichMessage,
BufferedInputFile,
Message,
)
from callbacks import *
@@ -36,7 +38,7 @@ from colors import *
from helpers import *
from commands import *
from dotenv import load_dotenv
from random import uniform, shuffle
from random import uniform, shuffle, choices
try:
from config import *
@@ -82,15 +84,164 @@ async def guest_middleware(handler, event, data):
else:
return await handler(event, data)
bot = data.get("bot")
chat_type = message.sender_chat.type if message.sender_chat else ""
user_id = message.sender_chat.id if message.sender_chat else message.from_user.id
config = get_user_config(user_id)
prompts = SYSTEM_PROMPTS | config["prompts"]
p = prompts[config["prompt"]]
# внимание внизу самая умная система осторожнеее!!1!1
if user_id in alo_command:
if message.chat.id == alo_command[user_id]["chat_id"]:
if alo_command[user_id]["action"] == "p_name":
alo_command[user_id]["action"] = "p_prompt"
alo_command[user_id]["name"] = message.text[:16]
return await bot.edit_message_text(
text=f"установи промпт для `{alo_command[user_id]['name']}`:",
chat_id=alo_command[user_id]["chat_id"],
message_id=alo_command[user_id]["message_id"],
reply_markup=InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(
text=f"❌ отменить", callback_data=f"p_cancel%{user_id}"
),
],
]
)
)
elif alo_command[user_id]["action"] == "p_prompt":
alo_command[user_id]["action"] = None
alo_command[user_id]["prompt"] = message.text
while 1:
alo_command[user_id]["id"] = ''.join(choices(string.ascii_letters, k=10))
if alo_command[user_id]["id"] not in config["prompts"]:
break
config["prompts"] = config["prompts"] | {
alo_command[user_id]["id"]: {
"name": alo_command[user_id]["name"],
"text": alo_command[user_id]["prompt"],
"filer": False,
"public": False
}
}
set_user_config(
user_id,
config.get("model"),
config.get("stream", True),
config.get("call"),
config.get("prompt"),
config.get("notify"),
config.get("markdown"),
config["prompts"]
)
return await bot.edit_message_text(
text=f"промпт `{alo_command[user_id]['name']}` создан!",
chat_id=alo_command[user_id]["chat_id"],
message_id=alo_command[user_id]["message_id"],
reply_markup=InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(
text=f"✅ посмотреть", callback_data=f"vp%{user_id}%{alo_command[user_id]['id']}"
),
],
]
)
)
elif alo_command[user_id]["action"] == "p_e_name":
alo_command[user_id]["action"] = None
alo_command[user_id]["name"] = message.text[:16]
config["prompts"] = config["prompts"] | {
alo_command[user_id]["prompt_id"]: {
"name": alo_command[user_id]["name"],
"text": config["prompts"][alo_command[user_id]["prompt_id"]]["text"],
"filer": config["prompts"][alo_command[user_id]["prompt_id"]]["filer"],
"public": config["prompts"][alo_command[user_id]["prompt_id"]]["public"],
}
}
set_user_config(
user_id,
config.get("model"),
config.get("stream", True),
config.get("call"),
config.get("prompt"),
config.get("notify"),
config.get("markdown"),
config["prompts"]
)
return await bot.edit_message_text(
text=f"имя промпта было изменено на `{alo_command[user_id]['name']}`.",
chat_id=alo_command[user_id]["chat_id"],
message_id=alo_command[user_id]["message_id"],
reply_markup=InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(
text=f"✅ посмотреть", callback_data=f"vp%{user_id}%{alo_command[user_id]['prompt_id']}"
),
],
]
)
)
elif alo_command[user_id]["action"] == "p_e_prompt":
alo_command[user_id]["action"] = None
alo_command[user_id]["prompt"] = message.text
config["prompts"] = config["prompts"] | {
alo_command[user_id]["prompt_id"]: {
"name": config["prompts"][alo_command[user_id]["prompt_id"]]["name"],
"text": alo_command[user_id]["prompt"],
"filer": config["prompts"][alo_command[user_id]["prompt_id"]]["filer"],
"public": config["prompts"][alo_command[user_id]["prompt_id"]]["public"],
}
}
set_user_config(
user_id,
config.get("model"),
config.get("stream", True),
config.get("call"),
config.get("prompt"),
config.get("notify"),
config.get("markdown"),
config["prompts"]
)
return await bot.edit_message_text(
text=f"текст промпта был изменён.",
chat_id=alo_command[user_id]["chat_id"],
message_id=alo_command[user_id]["message_id"],
reply_markup=InlineKeyboardMarkup(
inline_keyboard=[
[
InlineKeyboardButton(
text=f"✅ посмотреть", callback_data=f"vp%{user_id}%{alo_command[user_id]['prompt_id']}"
),
],
]
)
)
if p["filer"]:
if event.guest_message:
return await g_answer("сорри, выбранный промпт с ответом как файл не поддерживает гостевой режим.✅🤝", title="ошибка врат")
is_channel = (
ChatType.CHANNEL == chat_type
and message.from_user
and message.from_user.id == 777000
)
current_time = time.time()
config = get_user_config(user_id)
stream = config.get("stream")
user_text = message.text or message.caption or ""
@@ -374,6 +525,19 @@ async def guest_middleware(handler, event, data):
last_command_time[user_id][1] = False
last_command_time[user_id][2] = []
if p["filer"]:
if msg:
await msg.delete()
if result == "":
result = " "
file = BufferedInputFile(
file=result.encode("utf-8"),
filename=result.replace("\n", "").replace(" ", "_")[:5] + ".txt"
)
return await message.reply_document(
document=file
)
try:
if ":" in result and ("poll" in result or "quiz" in result):
pw = ["[poll]", "poll", "quiz"]
@@ -414,7 +578,8 @@ async def guest_middleware(handler, event, data):
else:
poll_type = "regular"
if msg:
await msg.delete()
try:
result = await answer_poll(
@@ -449,7 +614,7 @@ async def guest_middleware(handler, event, data):
if config["markdown"] == "new"
else {"text": result}
)
try:
if event.guest_message:
await g_answer(message, result, user_id=user_id)
@@ -499,6 +664,11 @@ async def guest_middleware(handler, event, data):
async def inline_handler(inline_query: InlineQuery):
user_id = inline_query.from_user.id
ensure_user(user_id)
config = get_user_config(user_id)
prompts = SYSTEM_PROMPTS | config["prompts"]
p = prompts[config["prompt"]]
button = InlineKeyboardButton(text="ало жди 📞", callback_data="pasholnaxxuy")
@@ -514,17 +684,29 @@ async def inline_handler(inline_query: InlineQuery):
)
]
else:
result = [
InlineQueryResultArticle(
id="1",
title="генерация думат",
description=f'думать "{inline_query.query}" ',
input_message_content=InputTextMessageContent(
message_text="я думаю врат... как дела✅"
),
reply_markup=InlineKeyboardMarkup(inline_keyboard=[[button]]),
)
]
if p["filer"]:
result = [
InlineQueryResultArticle(
id="1",
title="🚫🚫🚫",
description=f'отправка как файл в инлайне не поддерживается',
input_message_content=InputTextMessageContent(
message_text="🚫отправка как файл в инлайне не поддерживается"
),
)
]
else:
result = [
InlineQueryResultArticle(
id="1",
title="генерация думат",
description=f'думать "{inline_query.query}" ',
input_message_content=InputTextMessageContent(
message_text="я думаю врат... как дела✅"
),
reply_markup=InlineKeyboardMarkup(inline_keyboard=[[button]]),
)
]
await inline_query.answer(results=result, cache_time=0)
@@ -534,10 +716,15 @@ async def chosen_inline_result_handler(chosen_result: ChosenInlineResult):
inline_message_id = chosen_result.inline_message_id
user_id = chosen_result.from_user.id
add_one_to("stats/inline")
config = get_user_config(user_id)
prompts = SYSTEM_PROMPTS | config["prompts"]
p = prompts[config["prompt"]]
if chosen_result.query == "clear":
user_contexts[user_id] = []
elif p["filer"]:
pass
else:
current_time = time.time()
alo, blocked = is_blocked(user_id)
@@ -549,6 +736,8 @@ async def chosen_inline_result_handler(chosen_result: ChosenInlineResult):
inline_message_id=inline_message_id
)
return
add_one_to("stats/inline")
if not user_id in last_command_time:
last_command_time[user_id] = [current_time, True, [inline_message_id]]