Spaces:
Runtime error
Runtime error
import requests | |
from pyrogram import Client, filters | |
from Devine import app as Devine | |
import time | |
import asyncio | |
from config import OWNER_ID | |
CLOUDINARY_UPLOAD_URL = "https://api.cloudinary.com/v1_1/your_cloud_name/upload" | |
CLOUD_NAME = "Untitled" | |
API_KEY = "769593722143466" | |
API_SECRET = "DztGFORQqYfBoxCdawh0g5jBRCg" | |
MAX_FILE_SIZE_MB = 32 | |
USER_UPLOAD_LIMIT = {} | |
async def send_temp_message(message, text): | |
reply = await message.reply(text) | |
for i in range(3): | |
await asyncio.sleep(0.3) | |
updated_text = text + '.' * (i + 1) | |
await reply.edit(updated_text) | |
return reply | |
async def upload_file(client, message, file_path): | |
waiting_message = await send_temp_message(message, "ᴡᴀɪᴛ") | |
start_time = time.time() | |
with open(file_path, 'rb') as file: | |
files = { | |
"file": file, | |
"api_key": API_KEY, | |
"timestamp": int(time.time()), | |
"signature": API_SECRET | |
} | |
response = requests.post(CLOUDINARY_UPLOAD_URL, data=files) | |
upload_time = round(time.time() - start_time, 2) | |
if response.status_code == 200: | |
response_data = response.json() | |
file_url = response_data["secure_url"] | |
await waiting_message.edit(f"<b>ᴜᴘʟᴏᴀᴅᴇᴅ ᴛᴏ <a href='{file_url}' target='_blank'>Cloudinary</a> ɪɴ {upload_time} sᴇᴄᴏɴᴅs.</b>\n\n" | |
f"<b>ᴄᴏᴘʏ ʟɪɴᴋ : <code>{file_url}</code></b> ") | |
else: | |
await waiting_message.edit("<b>ғᴀɪʟᴇᴅ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴛʜᴇ ғɪʟᴇ.</b>") | |
async def handle_upload(client, message, target_message): | |
user_id = message.from_user.id | |
current_time = time.time() | |
last_upload_time = USER_UPLOAD_LIMIT.get(user_id, 0) | |
if current_time - last_upload_time < 10: | |
await message.reply("<b>ʏᴏᴜ ᴀʀᴇ ʙᴇɪɴɢ ʀᴀᴛᴇ-ʟɪᴍɪᴛᴇᴅ. ᴛʀʏ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 10 sᴇᴄᴏɴᴅs.</b>") | |
return | |
USER_UPLOAD_LIMIT[user_id] = current_time | |
file_size = (target_message.photo or target_message.video).file_size / (1024 * 1024) | |
if file_size > MAX_FILE_SIZE_MB: | |
await message.reply("<b>ғɪʟᴇ sɪᴢᴇ ᴇxᴄᴇᴇᴅs 32 ᴍʙ ʟɪᴍɪᴛ.</b>") | |
else: | |
file_path = await target_message.download() | |
await upload_file(client, message, file_path) | |
async def upload_command(client, message): | |
if message.from_user.is_bot: | |
return | |
target_message = message.reply_to_message if message.reply_to_message else message | |
media = target_message.photo or target_message.video | |
if media: | |
await handle_upload(client, message, target_message) | |
else: | |
await message.reply("<b>sᴇɴᴅ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴘʜᴏᴛᴏ ᴏʀ ᴠɪᴅᴇᴏ ғᴏʀ ᴜᴘʟᴏᴀᴅ.</b>") | |