|
import base64 |
|
import requests |
|
import tempfile |
|
from pyrogram import filters |
|
from DragMusic import app |
|
|
|
API_URL = "http://aizensolo.ru/getName" |
|
API_TOKEN = "TEST-API-TOKEN" |
|
|
|
@app.on_message(filters.command("whois") & filters.reply) |
|
async def whois_character(client, message): |
|
if not message.reply_to_message or not (message.reply_to_message.photo or message.reply_to_message.document): |
|
return await message.reply("Reply to an image to identify the character.") |
|
|
|
|
|
with tempfile.NamedTemporaryFile(suffix=".jpg") as temp_file: |
|
await message.reply_to_message.download(file_name=temp_file.name) |
|
temp_file.seek(0) |
|
encoded_string = base64.b64encode(temp_file.read()) |
|
|
|
data = { |
|
'api_token': API_TOKEN, |
|
'photo_b64': encoded_string.decode() |
|
} |
|
|
|
try: |
|
response = requests.post(API_URL, json=data, timeout=15) |
|
response.raise_for_status() |
|
result = response.json() |
|
if result.get("status") and all(k in result for k in ("name", "prefix", "bot_id", "bot_name")): |
|
reply_text = ( |
|
f"Name: {result['name']}\n" |
|
f"Prefix: {result['prefix']}\n" |
|
f"Bot: [{result['bot_name']}](https://t.me/{result['bot_name']}) (`{result['bot_id']}`)" |
|
) |
|
elif not result.get("status"): |
|
reply_text = f"No character found. (API status: {result.get('status')})" |
|
else: |
|
reply_text = f"API returned unexpected data: {result}" |
|
except Exception as e: |
|
reply_text = f"API error: {e}\nRaw response: {response.text if 'response' in locals() else 'No response'}" |
|
|
|
await message.reply(reply_text) |