init, .gitignore
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
import uuid
|
||||
import re
|
||||
|
||||
from aiohttp import ClientSession, FormData
|
||||
|
||||
from pyrogram import Client, filters
|
||||
|
||||
from utils.misc import modules_help, prefix
|
||||
|
||||
|
||||
def id_generator() -> str:
|
||||
return str(uuid.uuid4())
|
||||
|
||||
|
||||
@Client.on_message(filters.command(["bbox", "blackbox"], prefix) & filters.me)
|
||||
async def blackbox(client, message):
|
||||
m = message
|
||||
msg = await m.edit_text("🔍")
|
||||
|
||||
if len(m.text.split()) == 1:
|
||||
return await msg.edit_text(
|
||||
"Type some query buddy 🐼\n"
|
||||
f"{prefix}blackbox text with reply to the photo or just text"
|
||||
)
|
||||
else:
|
||||
try:
|
||||
session = ClientSession()
|
||||
prompt = m.text.split(maxsplit=1)[1]
|
||||
user_id = id_generator()
|
||||
image = None
|
||||
|
||||
if m.reply_to_message and (
|
||||
m.reply_to_message.photo
|
||||
or (
|
||||
m.reply_to_message.sticker
|
||||
and not m.reply_to_message.sticker.is_video
|
||||
)
|
||||
):
|
||||
file_name = f"blackbox_{m.chat.id}.jpeg"
|
||||
file_path = await m.reply_to_message.download(file_name=file_name)
|
||||
with open(file_path, "rb") as file:
|
||||
image = file.read()
|
||||
|
||||
if image:
|
||||
data = FormData()
|
||||
data.add_field("fileName", file_name)
|
||||
data.add_field("userId", user_id)
|
||||
data.add_field(
|
||||
"image", image, filename=file_name, content_type="image/jpeg"
|
||||
)
|
||||
api_url = "https://www.blackbox.ai/api/upload"
|
||||
try:
|
||||
async with session.post(api_url, data=data) as response:
|
||||
response_json = await response.json()
|
||||
except Exception as e:
|
||||
return await msg.edit(f"❌ Error: {str(e)}")
|
||||
|
||||
messages = [
|
||||
{
|
||||
"role": "user",
|
||||
"content": response_json["response"] + "\n#\n" + prompt,
|
||||
}
|
||||
]
|
||||
data = {
|
||||
"messages": messages,
|
||||
"user_id": user_id,
|
||||
"codeModelMode": True,
|
||||
"agentMode": {},
|
||||
"trendingAgentMode": {},
|
||||
}
|
||||
headers = {"Content-Type": "application/json"}
|
||||
url = "https://www.blackbox.ai/api/chat"
|
||||
try:
|
||||
async with session.post(
|
||||
url, headers=headers, json=data
|
||||
) as response:
|
||||
response_text = await response.text()
|
||||
except Exception as e:
|
||||
return await msg.edit(f"❌ Error: {str(e)}")
|
||||
|
||||
cleaned_response_text = re.sub(
|
||||
r"^\$?@?\$?v=undefined-rv\d+@?\$?|\$?@?\$?v=v\d+\.\d+-rv\d+@?\$?",
|
||||
"",
|
||||
response_text,
|
||||
)
|
||||
text = cleaned_response_text.strip()[2:]
|
||||
if "$~~~$" in text:
|
||||
text = re.sub(r"\$~~~\$.*?\$~~~\$", "", text, flags=re.DOTALL)
|
||||
rdata = {"reply": text}
|
||||
|
||||
return await msg.edit_text(text=rdata["reply"])
|
||||
else:
|
||||
reply = m.reply_to_message
|
||||
if reply and reply.text:
|
||||
prompt = f"Old conversation:\n{reply.text}\n\nQuestion:\n{prompt}"
|
||||
messages = [{"role": "user", "content": prompt}]
|
||||
data = {
|
||||
"messages": messages,
|
||||
"user_id": user_id,
|
||||
"codeModelMode": True,
|
||||
"agentMode": {},
|
||||
"trendingAgentMode": {},
|
||||
}
|
||||
headers = {"Content-Type": "application/json"}
|
||||
url = "https://www.blackbox.ai/api/chat"
|
||||
try:
|
||||
async with session.post(
|
||||
url, headers=headers, json=data
|
||||
) as response:
|
||||
response_text = await response.text()
|
||||
except Exception as e:
|
||||
return await msg.edit(f"❌ Error: {str(e)}")
|
||||
|
||||
cleaned_response_text = re.sub(
|
||||
r"^\$?@?\$?v=undefined-rv\d+@?\$?|\$?@?\$?v=v\d+\.\d+-rv\d+@?\$?",
|
||||
"",
|
||||
response_text,
|
||||
)
|
||||
text = cleaned_response_text.strip()[2:]
|
||||
if "$~~~$" in text:
|
||||
text = re.sub(r"\$~~~\$.*?\$~~~\$", "", text, flags=re.DOTALL)
|
||||
rdata = {"reply": text}
|
||||
|
||||
return await msg.edit_text(text=rdata["reply"])
|
||||
except Exception as e:
|
||||
return await msg.edit(f"�� Error: {str(e)}")
|
||||
finally:
|
||||
await session.close()
|
||||
|
||||
|
||||
modules_help["blackbox"] = {
|
||||
"blackbox [query]*": "Ask anything to Blackbox",
|
||||
"bbox [query]*": "Ask anything to Blackbox",
|
||||
}
|
||||
Reference in New Issue
Block a user