PagerMaid_Plugins_Pyro/tgbg/main.py
2024-02-04 15:56:06 +08:00

36 lines
1.5 KiB
Python

from urllib.parse import urlparse
from pyrogram.raw.functions.account import GetWallPaper
from pyrogram.raw.types import InputWallPaperSlug, WallPaper
from pyrogram.types.messages_and_media.document import Document
from pagermaid.listener import listener
from pagermaid.enums import Client, Message
@listener(command="tgbg", description="解析 Telegram 聊天窗口背景图", parameters="t.me/bg/xxx")
async def tg_bg(client: Client, message: Message):
argument = message.obtain_message()
if url := urlparse(argument):
if path := url.path:
if url.hostname == "t.me" and path.startswith("/bg/"):
slug = path[4:]
try:
bg: WallPaper = await client.invoke(
GetWallPaper(wallpaper=InputWallPaperSlug(slug=slug))
)
except Exception as e:
return await message.edit(f"获取失败: {str(e)}")
if bg.document:
bg_doc = Document._parse(
client, document=bg.document, file_name="bg.jpg"
) # noqa
await client.send_document(
message.chat.id,
bg_doc.file_id,
file_name="bg.jpg",
message_thread_id=message.message_thread_id,
)
return await message.safe_delete()
await message.edit("获取失败,请检查 URL")