2022-08-03 08:28:11 +00:00
|
|
|
from PIL import Image
|
|
|
|
|
|
|
|
from pagermaid.listener import listener
|
|
|
|
from pagermaid.enums import Message, Client
|
|
|
|
from pagermaid.single_utils import safe_remove
|
|
|
|
|
|
|
|
|
2023-07-01 12:18:58 +00:00
|
|
|
@listener(
|
|
|
|
command="sticker_to_pic", description="将你回复的静态贴纸转换为图片", parameters="(是否发送原图,默认为否)"
|
|
|
|
)
|
2022-08-03 08:28:11 +00:00
|
|
|
async def sticker_to_pic(bot: Client, message: Message):
|
|
|
|
origin = bool(message.arguments)
|
|
|
|
reply = message.reply_to_message
|
|
|
|
if not reply:
|
|
|
|
return await message.edit("请回复一个静态贴纸")
|
|
|
|
if not reply.sticker:
|
|
|
|
return await message.edit("请回复一个静态贴纸")
|
|
|
|
if reply.sticker.is_animated or reply.sticker.is_video:
|
|
|
|
return await message.edit("请回复一个静态贴纸")
|
|
|
|
try:
|
|
|
|
photo = await bot.download_media(reply, in_memory=True)
|
|
|
|
message: Message = await message.edit("正在转换...\n███████70%")
|
|
|
|
image = Image.open(photo)
|
|
|
|
image.save("sticker.png", "PNG")
|
|
|
|
except Exception as e:
|
|
|
|
return await message.edit(f"转换失败:{e}")
|
|
|
|
if origin:
|
|
|
|
await reply.reply_document("sticker.png", quote=True)
|
|
|
|
else:
|
|
|
|
await reply.reply_photo("sticker.png", quote=True)
|
|
|
|
safe_remove("sticker.png")
|
|
|
|
await message.safe_delete()
|