Spaces:
Paused
Paused
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" | |
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.") | |
# Use a temporary file for download | |
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) |