53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
import os
|
|
import base64
|
|
import requests
|
|
|
|
|
|
from pyrogram import Client, filters
|
|
from pyrogram.types import Message
|
|
|
|
from utils.misc import modules_help, prefix
|
|
|
|
|
|
@Client.on_message(filters.command(["imgur"], prefix) & filters.me)
|
|
async def imgur(_, message: Message):
|
|
# Check if a reply exists
|
|
msg = await message.edit_text("🎉 Please wait. trying to upload...")
|
|
if message.reply_to_message and message.reply_to_message.photo:
|
|
# Download the photo
|
|
photo_path = await message.reply_to_message.download()
|
|
# Read the photo file and encode as base64
|
|
with open(photo_path, "rb") as file:
|
|
data = file.read()
|
|
base64_data = base64.b64encode(data)
|
|
# Set API endpoint and headers for image upload
|
|
url = "https://api.imgur.com/3/image"
|
|
headers = {"Authorization": "Client-ID a10ad04550b0648"}
|
|
# Upload image to Imgur and get URL
|
|
response = requests.post(url, headers=headers, data={"image": base64_data})
|
|
result = response.json()
|
|
await msg.edit_text(result["data"]["link"])
|
|
elif message.reply_to_message and message.reply_to_message.animation:
|
|
# Download the animation (GIF)
|
|
animation_path = await message.reply_to_message.download()
|
|
# Read the animation file and encode as base64
|
|
with open(animation_path, "rb") as file:
|
|
data = file.read()
|
|
base64_data = base64.b64encode(data)
|
|
# Set API endpoint and headers for animation upload
|
|
url = "https://api.imgur.com/3/image"
|
|
headers = {"Authorization": "Client-ID a10ad04550b0648"}
|
|
# Upload animation to Imgur and get URL
|
|
response = requests.post(url, headers=headers, data={"image": base64_data})
|
|
result = response.json()
|
|
await msg.edit_text(result["data"]["link"])
|
|
else:
|
|
await msg.edit_text(
|
|
"Please reply to a photo or animation (GIF) to upload to Imgur."
|
|
)
|
|
|
|
|
|
modules_help["imgur"] = {
|
|
"imgur [img]*": "upload a photo or animation (GIF) to imgur",
|
|
}
|