48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
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}, timeout=10)
|
|
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}, timeout=10)
|
|
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',
|
|
}
|