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"ᴜᴘʟᴏᴀᴅᴇᴅ ᴛᴏ Cloudinary ɪɴ {upload_time} sᴇᴄᴏɴᴅs.\n\n" f"ᴄᴏᴘʏ ʟɪɴᴋ : {file_url} ") else: await waiting_message.edit("ғᴀɪʟᴇᴅ ᴛᴏ ᴜᴘʟᴏᴀᴅ ᴛʜᴇ ғɪʟᴇ.") 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("ʏᴏᴜ ᴀʀᴇ ʙᴇɪɴɢ ʀᴀᴛᴇ-ʟɪᴍɪᴛᴇᴅ. ᴛʀʏ ᴀɢᴀɪɴ ᴀғᴛᴇʀ 10 sᴇᴄᴏɴᴅs.") 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("ғɪʟᴇ sɪᴢᴇ ᴇxᴄᴇᴇᴅs 32 ᴍʙ ʟɪᴍɪᴛ.") else: file_path = await target_message.download() await upload_file(client, message, file_path) @Devine.on_message(filters.command("xtgm")) 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("sᴇɴᴅ ᴏʀ ʀᴇᴘʟʏ ᴛᴏ ᴀ ᴘʜᴏᴛᴏ ᴏʀ ᴠɪᴅᴇᴏ ғᴏʀ ᴜᴘʟᴏᴀᴅ.")