Revert "refactor: extract userbot to standalone repo, add as git submodule"

This reverts commit 3c383db9a7.
This commit is contained in:
2026-06-19 23:11:27 +02:00
parent d74a705d53
commit 1930600c40
134 changed files with 15257 additions and 4 deletions
+121
View File
@@ -0,0 +1,121 @@
import re
import uuid
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(
f'Type some query buddy 🐼\n{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',
}