MissKatyPyro/misskaty/plugins/webss.py
2022-12-16 09:46:07 +07:00

35 lines
1.3 KiB
Python

import base64
import os
from asyncio import gather
from io import BytesIO
from pyrogram import filters
from PIL import Image
from misskaty import app
from misskaty.helper.http import http
from misskaty.vars import COMMAND_HANDLER
from misskaty.core.decorator.errors import capture_err
__MODULE__ = "WebSS"
__HELP__ = """
/webss [URL] - Take A Screenshot Of A Webpage.
"""
@app.on_message(filters.command(["webss"], COMMAND_HANDLER))
@capture_err
async def take_ss(_, message):
if len(message.command) == 1:
return await message.reply("Give A Url To Fetch Screenshot.")
url = message.command[1] if message.command[1].startswith("http") else f"https://{message.command[1]}"
filename = f"imageToSave_{message.from_user.id}.png"
m = await message.reply("Capturing screenshot...")
try:
photo = (await http.get(f"https://yasirapi.eu.org/webss?url={url}")).json()
img = Image.open(BytesIO(base64.decodebytes(bytes(photo["result"], "utf-8"))))
img.save(filename)
m = await m.edit("Uploading...")
await gather(*[message.reply_document(filename), message.reply_photo(filename)])
await m.delete()
os.remove(filename)
except Exception as e:
await m.edit(f"Failed To Take Screenshot. {str(e)}")