Files
homelab/userbot/images/imgur.py
T
2025-11-11 00:02:49 +01:00

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",
}