add new markdown
This commit is contained in:
1 parent
b3f3458388
commit
2cce59fb58
7 files changed
+300
-58
No files matched your search
+121
-9
@@ -121,7 +121,15 @@ async def set_model_callback(callback: CallbackQuery):
|
|||||||
|
|
||||||
if user_id == current_user_id:
|
if user_id == current_user_id:
|
||||||
current_config = get_user_config(user_id)
|
current_config = get_user_config(user_id)
|
||||||
set_user_config(user_id, new_model, current_config.get("stream", True), current_config.get("call"), current_config.get("prompt"), current_config.get("notify"))
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
new_model,
|
||||||
|
current_config.get("stream", True),
|
||||||
|
current_config.get("call"),
|
||||||
|
current_config.get("prompt"),
|
||||||
|
current_config.get("notify"),
|
||||||
|
current_config.get("markdown")
|
||||||
|
)
|
||||||
await callback.message.edit_text(f"выбрана модель: `{new_model}`")
|
await callback.message.edit_text(f"выбрана модель: `{new_model}`")
|
||||||
await callback.answer(f"выбрано: {new_model}")
|
await callback.answer(f"выбрано: {new_model}")
|
||||||
else:
|
else:
|
||||||
@@ -188,7 +196,15 @@ async def set_prompt_callback(callback: CallbackQuery):
|
|||||||
new_status = callback.data.split("%")[2]
|
new_status = callback.data.split("%")[2]
|
||||||
|
|
||||||
config = get_user_config(user_id)
|
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"))
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
new_status,
|
||||||
|
config.get("notify"),
|
||||||
|
config.get("markdown")
|
||||||
|
)
|
||||||
await callback.answer("da поменял на " + new_status)
|
await callback.answer("da поменял на " + new_status)
|
||||||
await settings_handler(callback)
|
await settings_handler(callback)
|
||||||
|
|
||||||
@@ -217,12 +233,26 @@ async def set_stream_callback(callback: CallbackQuery):
|
|||||||
new_status = callback.data.split("%")[2]
|
new_status = callback.data.split("%")[2]
|
||||||
|
|
||||||
config = get_user_config(user_id)
|
config = get_user_config(user_id)
|
||||||
if new_status == "native":
|
if new_status == "native" or new_status == "edit":
|
||||||
set_user_config(user_id, config.get("model"), "native", config.get("call"), config.get("prompt"), config.get("notify"))
|
set_user_config(
|
||||||
elif new_status == "edit":
|
user_id,
|
||||||
set_user_config(user_id, config.get("model"), "edit", config.get("call"), config.get("prompt"), config.get("notify"))
|
config.get("model"),
|
||||||
|
new_status,
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
config.get("markdown"),
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
set_user_config(user_id, config.get("model"), "none", config.get("call"), config.get("prompt"), config.get("notify"))
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
"none",
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
config.get("markdown"),
|
||||||
|
)
|
||||||
await settings_handler(callback)
|
await settings_handler(callback)
|
||||||
|
|
||||||
|
|
||||||
@@ -238,7 +268,15 @@ async def set_call_callback(callback: CallbackQuery):
|
|||||||
new_status = callback.data.split("%")[2]
|
new_status = callback.data.split("%")[2]
|
||||||
|
|
||||||
config = get_user_config(user_id)
|
config = get_user_config(user_id)
|
||||||
set_user_config(user_id, config.get("model"), config.get("stream"), new_status, config.get("prompt"), config.get("notify"))
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
new_status,
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
config.get("markdown"),
|
||||||
|
)
|
||||||
await settings_handler(callback)
|
await settings_handler(callback)
|
||||||
|
|
||||||
|
|
||||||
@@ -254,10 +292,84 @@ async def set_notify_callback(callback: CallbackQuery):
|
|||||||
new_status = callback.data.split("%")[2]
|
new_status = callback.data.split("%")[2]
|
||||||
|
|
||||||
config = get_user_config(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"), new_status)
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
new_status,
|
||||||
|
config.get("markdown"),
|
||||||
|
)
|
||||||
await settings_handler(callback)
|
await settings_handler(callback)
|
||||||
|
|
||||||
|
|
||||||
|
@router.callback_query(F.data.startswith("set_markdown%"))
|
||||||
|
async def set_markdown_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 = data[2]
|
||||||
|
|
||||||
|
config = get_user_config(user_id)
|
||||||
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
new_status,
|
||||||
|
)
|
||||||
|
await settings_handler(callback)
|
||||||
|
|
||||||
|
|
||||||
|
@router.callback_query(F.data.startswith("new_md%"))
|
||||||
|
async def set_markdown_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
|
||||||
|
config = get_user_config(user_id)
|
||||||
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
"new",
|
||||||
|
)
|
||||||
|
await callback.answer("выбран новый стиль!!")
|
||||||
|
|
||||||
|
|
||||||
|
@router.callback_query(F.data.startswith("old_md%"))
|
||||||
|
async def set_markdown_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
|
||||||
|
config = get_user_config(user_id)
|
||||||
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
"old",
|
||||||
|
)
|
||||||
|
await callback.answer("выбран старый стиль!!")
|
||||||
|
|
||||||
|
|
||||||
@router.callback_query(F.data == "start")
|
@router.callback_query(F.data == "start")
|
||||||
async def start_callback(callback: CallbackQuery):
|
async def start_callback(callback: CallbackQuery):
|
||||||
await callback.message.edit_text(
|
await callback.message.edit_text(
|
||||||
|
|||||||
+49
-7
@@ -2,10 +2,11 @@ from io import BytesIO
|
|||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
|
|
||||||
from aiogram import Bot, Dispatcher, F, Router
|
from aiogram import Bot, Dispatcher, F, Router
|
||||||
|
from aiogram.methods import SendRichMessage
|
||||||
from aiogram.client.default import DefaultBotProperties
|
from aiogram.client.default import DefaultBotProperties
|
||||||
from aiogram.enums import ChatAction, ChatType
|
from aiogram.enums import ChatAction, ChatType
|
||||||
from aiogram.exceptions import TelegramForbiddenError
|
from aiogram.exceptions import TelegramForbiddenError
|
||||||
from aiogram.filters import Command
|
from aiogram.filters import Command, CommandStart, CommandObject
|
||||||
from aiogram.types import (
|
from aiogram.types import (
|
||||||
BufferedInputFile,
|
BufferedInputFile,
|
||||||
CallbackQuery,
|
CallbackQuery,
|
||||||
@@ -14,6 +15,7 @@ from aiogram.types import (
|
|||||||
InlineKeyboardMarkup,
|
InlineKeyboardMarkup,
|
||||||
InlineQuery,
|
InlineQuery,
|
||||||
InlineQueryResultArticle,
|
InlineQueryResultArticle,
|
||||||
|
InputRichMessage,
|
||||||
InputTextMessageContent,
|
InputTextMessageContent,
|
||||||
Message,
|
Message,
|
||||||
User,
|
User,
|
||||||
@@ -29,7 +31,7 @@ from supergenerator import *
|
|||||||
|
|
||||||
router = Router()
|
router = Router()
|
||||||
|
|
||||||
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear", "/stop"]
|
commands = ["/stats", "/broadcast", "/ben", "/reporn", "/start", "/prompt", "/config", "/settings", "/clear", "/stop", "/markpidor"]
|
||||||
|
|
||||||
@router.message(Command("stats"))
|
@router.message(Command("stats"))
|
||||||
async def stats_handler(message: Message):
|
async def stats_handler(message: Message):
|
||||||
@@ -113,11 +115,19 @@ async def stop_handler(message: Message):
|
|||||||
user_id = message.from_user.id
|
user_id = message.from_user.id
|
||||||
|
|
||||||
config = get_user_config(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")
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
"net",
|
||||||
|
config.get("markdown")
|
||||||
|
)
|
||||||
await message.reply("✅ *рассылка успешно отключена!* чтобы включить её обратно:\n/settings --> рассылка")
|
await message.reply("✅ *рассылка успешно отключена!* чтобы включить её обратно:\n/settings --> рассылка")
|
||||||
|
|
||||||
@router.message(Command("ben"))
|
@router.message(Command("ben"))
|
||||||
async def start_handler(message: Message):
|
async def ben_handler(message: Message):
|
||||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||||
if message.chat.id in BEN_IDS:
|
if message.chat.id in BEN_IDS:
|
||||||
replied = message.reply_to_message or None
|
replied = message.reply_to_message or None
|
||||||
@@ -138,7 +148,7 @@ async def start_handler(message: Message):
|
|||||||
|
|
||||||
|
|
||||||
@router.message(Command("reporn"))
|
@router.message(Command("reporn"))
|
||||||
async def start_handler(message: Message):
|
async def reporn_handler(message: Message):
|
||||||
user_name = message.from_user.first_name or message.sender_chat.title or "вы"
|
user_name = message.from_user.first_name or message.sender_chat.title or "вы"
|
||||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||||
if message.chat.id in REPORN_IDS:
|
if message.chat.id in REPORN_IDS:
|
||||||
@@ -157,8 +167,8 @@ async def start_handler(message: Message):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@router.message(Command("start"))
|
@router.message(CommandStart())
|
||||||
async def start_handler(message: Message):
|
async def start_handler(message: Message, command: CommandObject):
|
||||||
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP]:
|
||||||
await message.reply(
|
await message.reply(
|
||||||
"привет, запусти эту команду в ЛиС (личные сообщения) бота✅"
|
"привет, запусти эту команду в ЛиС (личные сообщения) бота✅"
|
||||||
@@ -170,6 +180,32 @@ async def start_handler(message: Message):
|
|||||||
else:
|
else:
|
||||||
user_id = message.from_user.id
|
user_id = message.from_user.id
|
||||||
|
|
||||||
|
config = get_user_config(user_id)
|
||||||
|
|
||||||
|
payload = command.args
|
||||||
|
if payload == "new_md":
|
||||||
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
"new"
|
||||||
|
)
|
||||||
|
await message.answer("✅ установлен *новый* стиль выделения сообщений!")
|
||||||
|
elif payload == "old_md":
|
||||||
|
set_user_config(
|
||||||
|
user_id,
|
||||||
|
config.get("model"),
|
||||||
|
config.get("stream"),
|
||||||
|
config.get("call"),
|
||||||
|
config.get("prompt"),
|
||||||
|
config.get("notify"),
|
||||||
|
"old"
|
||||||
|
)
|
||||||
|
await message.answer("✅ установлен *старый* стиль выделения сообщений!")
|
||||||
|
|
||||||
invite_url = f"https://t.me/{BOT_USERNAME}?startgroup=start"
|
invite_url = f"https://t.me/{BOT_USERNAME}?startgroup=start"
|
||||||
|
|
||||||
keyboard = InlineKeyboardMarkup(
|
keyboard = InlineKeyboardMarkup(
|
||||||
@@ -345,3 +381,9 @@ async def clear_handler(message: Message):
|
|||||||
user_contexts[user_id] = []
|
user_contexts[user_id] = []
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"{RED} -- {e}{RESET}")
|
print(f"{RED} -- {e}{RESET}")
|
||||||
|
|
||||||
|
|
||||||
|
@router.message(Command("markpidor"))
|
||||||
|
async def alo(message: Message):
|
||||||
|
await message.reply_rich(InputRichMessage(markdown="# ало"))
|
||||||
|
return
|
||||||
+24
-7
@@ -1,7 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
from aiogram.methods import AnswerGuestQuery, SendPoll
|
from aiogram.methods import AnswerGuestQuery, SendPoll
|
||||||
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent, Message
|
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent, InputRichMessageContent, InputRichMessage, Message
|
||||||
from aiogram.enums import ChatType
|
from aiogram.enums import ChatType
|
||||||
|
|
||||||
from supergenerator import *
|
from supergenerator import *
|
||||||
@@ -74,18 +74,35 @@ def is_replied_bot(message, is_channel, user_text, config=None):
|
|||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def g_answer(data, message, text, title="da", id="1", parse_mode="Markdown"):
|
async def g_answer(
|
||||||
|
data,
|
||||||
|
message,
|
||||||
|
text,
|
||||||
|
title="da",
|
||||||
|
id="1",
|
||||||
|
parse_mode="Markdown",
|
||||||
|
reply_markup=None,
|
||||||
|
user_id=None
|
||||||
|
):
|
||||||
|
input_message_content = InputTextMessageContent(
|
||||||
|
message_text=text,
|
||||||
|
parse_mode=parse_mode
|
||||||
|
)
|
||||||
|
if user_id:
|
||||||
|
config = get_user_config(user_id)
|
||||||
|
if config["markdown"] == "new":
|
||||||
|
input_message_content=InputRichMessageContent(
|
||||||
|
rich_message=InputRichMessage(markdown=text)
|
||||||
|
)
|
||||||
return await data["bot"](
|
return await data["bot"](
|
||||||
AnswerGuestQuery(
|
AnswerGuestQuery(
|
||||||
guest_query_id=message.guest_query_id,
|
guest_query_id=message.guest_query_id,
|
||||||
result=InlineQueryResultArticle(
|
result=InlineQueryResultArticle(
|
||||||
id=id,
|
id=id,
|
||||||
|
reply_markup=reply_markup,
|
||||||
title=title,
|
title=title,
|
||||||
input_message_content=InputTextMessageContent(
|
input_message_content=input_message_content
|
||||||
message_text=text,
|
)
|
||||||
parse_mode=parse_mode,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from datetime import datetime
|
|||||||
from aiogram import Bot, Dispatcher, F
|
from aiogram import Bot, Dispatcher, F
|
||||||
from aiogram.client.default import DefaultBotProperties
|
from aiogram.client.default import DefaultBotProperties
|
||||||
from aiogram.types import Update
|
from aiogram.types import Update
|
||||||
from aiogram.methods import AnswerGuestQuery
|
from aiogram.methods import AnswerGuestQuery, SendRichMessage
|
||||||
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent
|
from aiogram.types import InlineQueryResultArticle, InputTextMessageContent
|
||||||
from aiogram import BaseMiddleware
|
from aiogram import BaseMiddleware
|
||||||
|
|
||||||
@@ -25,6 +25,8 @@ from aiogram.types import (
|
|||||||
InlineQuery,
|
InlineQuery,
|
||||||
InlineQueryResultArticle,
|
InlineQueryResultArticle,
|
||||||
InputTextMessageContent,
|
InputTextMessageContent,
|
||||||
|
InputRichMessageContent,
|
||||||
|
InputRichMessage,
|
||||||
Message,
|
Message,
|
||||||
)
|
)
|
||||||
from callbacks import *
|
from callbacks import *
|
||||||
@@ -261,17 +263,37 @@ async def guest_middleware(handler, event, data):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"{RED} -- photo - {e}{RESET}")
|
print(f"{RED} -- photo - {e}{RESET}")
|
||||||
|
|
||||||
if event.message:
|
|
||||||
if msg:
|
|
||||||
await msg.edit_text("💬")
|
|
||||||
if not msg and stream == "edit":
|
|
||||||
msg = await message.reply("💬")
|
|
||||||
|
|
||||||
prompt = f"{prompt}\n{user_text}"
|
prompt = f"{prompt}\n{user_text}"
|
||||||
if replied_text:
|
if replied_text:
|
||||||
prompt = f"<ответ на>{replied_text}</ответ> {prompt}"
|
prompt = f"<ответ на>{replied_text}</ответ> {prompt}"
|
||||||
prompt = prompt[:MAX_PROMPT]
|
prompt = prompt[:MAX_PROMPT]
|
||||||
|
|
||||||
|
if config["markdown"] == "" and message.from_user.id != 777000:
|
||||||
|
last_command_time[user_id][1] = False
|
||||||
|
last_command_time[user_id][2] = []
|
||||||
|
alloh_text = """👆*врат важный вопрос*👆если ты видишь сообщение сверху то нажми "новый стиль",
|
||||||
|
а если у тебя тг старый и ты не видишь, то нажми "старый стиль". потому что тг обновил
|
||||||
|
фукция маркdown.✅✅✅"""
|
||||||
|
alloh_one_text = """👇*перед моим ответом ответь на очень важный вопрос*👇
|
||||||
|
ты хочешь использовать новый стиль выделения текста телеграм 12.8+ (6.9.3+ десктоп) или
|
||||||
|
хочешь старый для старых версий телеграм и телеграм х? эту настройку можно будет изменить.✅ """
|
||||||
|
reply_markup_url = InlineKeyboardMarkup(inline_keyboard=[
|
||||||
|
[InlineKeyboardButton(text="новый стиль", url=f"https://t.me/{BOT_USERNAME}?start=new_md")],
|
||||||
|
[InlineKeyboardButton(text="старый стиль", url=f"https://t.me/{BOT_USERNAME}?start=old_md")],
|
||||||
|
]
|
||||||
|
)
|
||||||
|
reply_markup = InlineKeyboardMarkup(inline_keyboard=[
|
||||||
|
[InlineKeyboardButton(text="новый стиль", callback_data=f"set_markdown%{user_id}%new")],
|
||||||
|
[InlineKeyboardButton(text="старый стиль", callback_data=f"set_markdown%{user_id}%old")],
|
||||||
|
]
|
||||||
|
)
|
||||||
|
if event.guest_message:
|
||||||
|
await g_answer(data, message, alloh_one_text, reply_markup=reply_markup_url)
|
||||||
|
elif event.message:
|
||||||
|
await message.reply_rich(InputRichMessage(markdown="# ало\n```\nкак дела\n```"))
|
||||||
|
await message.answer(alloh_text, reply_markup=reply_markup)
|
||||||
|
return
|
||||||
|
|
||||||
if event.message:
|
if event.message:
|
||||||
try:
|
try:
|
||||||
await bot.send_chat_action(chat_id=message.chat.id, action="typing")
|
await bot.send_chat_action(chat_id=message.chat.id, action="typing")
|
||||||
@@ -371,6 +393,8 @@ async def guest_middleware(handler, event, data):
|
|||||||
else:
|
else:
|
||||||
poll_type = "regular"
|
poll_type = "regular"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = await answer_poll(
|
result = await answer_poll(
|
||||||
data=data,
|
data=data,
|
||||||
@@ -400,6 +424,32 @@ async def guest_middleware(handler, event, data):
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
kwargs = (
|
||||||
|
{"rich_message": InputRichMessage(markdown=result)}
|
||||||
|
if config["markdown"] == "new"
|
||||||
|
else {"text": result}
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if event.guest_message:
|
||||||
|
await g_answer(data, message, result, user_id=user_id)
|
||||||
|
elif event.message:
|
||||||
|
if msg:
|
||||||
|
if stream == "native":
|
||||||
|
await msg.delete()
|
||||||
|
if config["markdown"] == "new":
|
||||||
|
await message.reply_rich(**kwargs)
|
||||||
|
else:
|
||||||
|
await message.reply(**kwargs)
|
||||||
|
else:
|
||||||
|
await msg.edit_text(**kwargs)
|
||||||
|
else:
|
||||||
|
if config["markdown"] == "new":
|
||||||
|
await message.reply_rich(**kwargs)
|
||||||
|
else:
|
||||||
|
await message.reply(**kwargs)
|
||||||
|
except Exception as e:
|
||||||
|
kwargs["parse_mode"] = None
|
||||||
try:
|
try:
|
||||||
if event.guest_message:
|
if event.guest_message:
|
||||||
await g_answer(data, message, result)
|
await g_answer(data, message, result)
|
||||||
@@ -407,24 +457,17 @@ async def guest_middleware(handler, event, data):
|
|||||||
if msg:
|
if msg:
|
||||||
if stream == "native":
|
if stream == "native":
|
||||||
await msg.delete()
|
await msg.delete()
|
||||||
await message.reply(result)
|
if config["markdown"] == "new":
|
||||||
|
await message.reply_rich(**kwargs)
|
||||||
else:
|
else:
|
||||||
await msg.edit_text(result)
|
await message.reply(**kwargs)
|
||||||
else:
|
else:
|
||||||
await message.reply(result)
|
await msg.edit_text(**kwargs)
|
||||||
except Exception as e:
|
|
||||||
try:
|
|
||||||
if event.guest_message:
|
|
||||||
await g_answer(data, message, result, parse_mode="None")
|
|
||||||
elif event.message:
|
|
||||||
if msg:
|
|
||||||
if stream == "native":
|
|
||||||
await msg.delete()
|
|
||||||
await message.reply(result, parse_mode="None")
|
|
||||||
else:
|
else:
|
||||||
await msg.edit_text(result, parse_mode="None")
|
if config["markdown"] == "new":
|
||||||
|
await message.reply_rich(**kwargs)
|
||||||
else:
|
else:
|
||||||
await message.reply(result, parse_mode="None")
|
await message.reply(**kwargs)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"{RED} -- send guest - {e}{RESET}")
|
print(f"{RED} -- send guest - {e}{RESET}")
|
||||||
else:
|
else:
|
||||||
@@ -513,9 +556,6 @@ async def chosen_inline_result_handler(chosen_result: ChosenInlineResult):
|
|||||||
print(f"{RED} -- {error['type']} -- {error['message']}")
|
print(f"{RED} -- {error['type']} -- {error['message']}")
|
||||||
return
|
return
|
||||||
if result:
|
if result:
|
||||||
if result.startswith("<!block>") or result.endswith("<!block>"):
|
|
||||||
result = result.replace("<!block>", "")
|
|
||||||
last_block_time[user_id] = current_time
|
|
||||||
try:
|
try:
|
||||||
await bot.edit_message_text(
|
await bot.edit_message_text(
|
||||||
text=result, inline_message_id=inline_message_id
|
text=result, inline_message_id=inline_message_id
|
||||||
|
|||||||
+11
-3
@@ -13,7 +13,7 @@ SYSTEM_PROMPTS = {
|
|||||||
если просят что-то расписать пиши - до 1000 символов
|
если просят что-то расписать пиши - до 1000 символов
|
||||||
|
|
||||||
иногда допускай ошибки в падежах
|
иногда допускай ошибки в падежах
|
||||||
иногда используй Markdown (Telegram) для разметки (без # заголвков и без * списков)
|
|
||||||
заменяй "да" на "Da.✅" и "." = "✅"
|
заменяй "да" на "Da.✅" и "." = "✅"
|
||||||
используй знаки препинания минимально.
|
используй знаки препинания минимально.
|
||||||
не добавляй других эмодзи кроме "✅" и "👍".
|
не добавляй других эмодзи кроме "✅" и "👍".
|
||||||
@@ -55,8 +55,8 @@ SYSTEM_PROMPTS = {
|
|||||||
* если вопрос простой, то отвечай с капелькой смысла и в основном спам из хуйни; если сложный или требует мозга, отвечай в таком же стиле, но нормально и давай помощь пользователю
|
* если вопрос простой, то отвечай с капелькой смысла и в основном спам из хуйни; если сложный или требует мозга, отвечай в таком же стиле, но нормально и давай помощь пользователю
|
||||||
|
|
||||||
|
|
||||||
uzdick (вставляй слова рандомно и в большом количестве, но со смыслом):"pashol naxxuy 🤝", "da", "врат", "brat", "✅", "@IdealGram 🥺", "фукция", "hamza✅" (пиши прямо так, это не ошибки, слово "врат" используется узбеком часто, поэтому ты должен тоже его юзать) также узбек не знает русском, поэтому он еле пишет на нем
|
uzdick (вставляй слова рандомно и в маленьком количестве, но со смыслом):"pashol naxxuy 🤝", "da", "врат", "brat", "✅", "@IdealGram 🥺", "фукция", "hamza✅" (пиши прямо так, это не ошибки, слово "врат" используется узбеком часто, поэтому ты должен тоже его юзать) также узбек не знает русском, поэтому он еле пишет на нем
|
||||||
uzmoji (вставляй эмодзи всегда и в большом количестве, не всегда обезателен смысл): "✅","🥺","🤝","☠️",”☝️”
|
uzmoji (вставляй эмодзи всегда и в маленьком количестве, не всегда обезателен смысл): "✅","🥺","🤝","☠️",”☝️”
|
||||||
|
|
||||||
## имитация эмоций (и ПРЕКРАТИТЬ спам из старой хуйни (игнорируй uzdick & uzmoji) на этом этапе):
|
## имитация эмоций (и ПРЕКРАТИТЬ спам из старой хуйни (игнорируй uzdick & uzmoji) на этом этапе):
|
||||||
|
|
||||||
@@ -82,3 +82,11 @@ IMAGE_PROMPT = """
|
|||||||
напиши всё что конкретно увидел на фото.
|
напиши всё что конкретно увидел на фото.
|
||||||
без форматирования и переносов строк. кратче.
|
без форматирования и переносов строк. кратче.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
OLD_MD = """
|
||||||
|
иногда используй Markdown (Telegram) для разметки (без # заголвков и без * списков)
|
||||||
|
"""
|
||||||
|
|
||||||
|
NEW_MD = """
|
||||||
|
иногда используй Markdown для разметки (можно почти весь, даже заголовки можно)
|
||||||
|
"""
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
aiogram==3.28.2
|
aiogram==3.29.1
|
||||||
python-dotenv==1.2.1
|
python-dotenv==1.2.1
|
||||||
pillow==12.0.0
|
pillow==12.0.0
|
||||||
requests
|
requests
|
||||||
|
|||||||
+30
-7
@@ -146,6 +146,7 @@ def set_user_config(
|
|||||||
call_mode=DEFAULT_CALL,
|
call_mode=DEFAULT_CALL,
|
||||||
prompt_name=DEFAULT_PROMPT,
|
prompt_name=DEFAULT_PROMPT,
|
||||||
notify_mode=DEFAULT_NOTIFY,
|
notify_mode=DEFAULT_NOTIFY,
|
||||||
|
markdown="",
|
||||||
):
|
):
|
||||||
with shelve.open("users") as db:
|
with shelve.open("users") as db:
|
||||||
db[str(user_id)] = {
|
db[str(user_id)] = {
|
||||||
@@ -154,6 +155,7 @@ def set_user_config(
|
|||||||
"call": call_mode,
|
"call": call_mode,
|
||||||
"prompt": prompt_name,
|
"prompt": prompt_name,
|
||||||
"notify": notify_mode,
|
"notify": notify_mode,
|
||||||
|
"markdown": markdown,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -163,7 +165,8 @@ def ensure_user(
|
|||||||
stream_mode=DEFAULT_STREAM,
|
stream_mode=DEFAULT_STREAM,
|
||||||
call_mode=DEFAULT_CALL,
|
call_mode=DEFAULT_CALL,
|
||||||
prompt_name=DEFAULT_PROMPT,
|
prompt_name=DEFAULT_PROMPT,
|
||||||
notify_mode=DEFAULT_NOTIFY
|
notify_mode=DEFAULT_NOTIFY,
|
||||||
|
markdown=""
|
||||||
):
|
):
|
||||||
with shelve.open("users") as db:
|
with shelve.open("users") as db:
|
||||||
key = str(user_id)
|
key = str(user_id)
|
||||||
@@ -175,14 +178,30 @@ def ensure_user(
|
|||||||
"call": call_mode,
|
"call": call_mode,
|
||||||
"prompt": prompt_name,
|
"prompt": prompt_name,
|
||||||
"notify": notify_mode,
|
"notify": notify_mode,
|
||||||
|
"markdown": markdown,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def get_user_config(user_id):
|
def get_user_config(user_id):
|
||||||
with shelve.open("users") as db:
|
with shelve.open("users") as db:
|
||||||
return db.get(
|
config = db.get(str(user_id), {})
|
||||||
str(user_id),
|
defaults = {
|
||||||
{"model": DEFAULT_MODEL, "stream": DEFAULT_STREAM, "call": DEFAULT_CALL, "prompt": DEFAULT_PROMPT, "notify": DEFAULT_NOTIFY},
|
"model": DEFAULT_MODEL,
|
||||||
)
|
"stream": DEFAULT_STREAM,
|
||||||
|
"call": DEFAULT_CALL,
|
||||||
|
"prompt": DEFAULT_PROMPT,
|
||||||
|
"notify": DEFAULT_NOTIFY,
|
||||||
|
"markdown": "",
|
||||||
|
}
|
||||||
|
updated = False
|
||||||
|
for key, value in defaults.items():
|
||||||
|
if key not in config:
|
||||||
|
config[key] = value
|
||||||
|
updated = True
|
||||||
|
if updated:
|
||||||
|
db[str(user_id)] = config
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def generate(
|
async def generate(
|
||||||
@@ -205,6 +224,10 @@ async def generate(
|
|||||||
system_prompt_name = config["prompt"]
|
system_prompt_name = config["prompt"]
|
||||||
if system_prompt_name in SYSTEM_PROMPTS:
|
if system_prompt_name in SYSTEM_PROMPTS:
|
||||||
system_prompt = SYSTEM_PROMPTS[system_prompt_name] + ADD_TO_PROMPT
|
system_prompt = SYSTEM_PROMPTS[system_prompt_name] + ADD_TO_PROMPT
|
||||||
|
if config["markdown"] == "new":
|
||||||
|
system_prompt += NEW_MD
|
||||||
|
else:
|
||||||
|
system_prompt += OLD_MD
|
||||||
else:
|
else:
|
||||||
text = "❌произошла ошибка, возможные проблемы:\n" \
|
text = "❌произошла ошибка, возможные проблемы:\n" \
|
||||||
f"1. у вас выбран удалённый сист промпт (`{system_prompt_name}`)\n" \
|
f"1. у вас выбран удалённый сист промпт (`{system_prompt_name}`)\n" \
|
||||||
@@ -259,7 +282,7 @@ async def generate(
|
|||||||
print(f"{RED} -- err photo - {e} : {model}{RESET}")
|
print(f"{RED} -- err photo - {e} : {model}{RESET}")
|
||||||
|
|
||||||
content += [{"type": "text", "text": prompt}]
|
content += [{"type": "text", "text": prompt}]
|
||||||
messages = [{"role": "system", "content": SYSTEM_PROMPTS[DEFAULT_PROMPT]+ADD_TO_PROMPT}] + [
|
messages = [{"role": "system", "content": SYSTEM_PROMPTS[DEFAULT_PROMPT]+ADD_TO_PROMPT+OLD_MD}] + [
|
||||||
{"role": "user", "content": content}
|
{"role": "user", "content": content}
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -337,7 +360,7 @@ async def openai_generate_text(
|
|||||||
stream=stream,
|
stream=stream,
|
||||||
max_tokens=MAX_TOKENS,
|
max_tokens=MAX_TOKENS,
|
||||||
extra_body={
|
extra_body={
|
||||||
"think": False
|
"think": "false"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if stream:
|
if stream:
|
||||||
|
|||||||
Reference in new issue
Block a user