mirror of
https://github.com/TeamPGM/PagerMaid_Plugins_Pyro.git
synced 2024-11-22 17:30:14 +00:00
54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
from datetime import datetime
|
||
from pytz import timezone
|
||
|
||
from pyrogram.errors import DocumentInvalid
|
||
from pyrogram.raw.functions.users import GetUsers
|
||
from pyrogram.raw.types import InputUserSelf, InputUserFromMessage
|
||
from pyrogram.raw.types import EmojiStatus, EmojiStatusEmpty, EmojiStatusUntil
|
||
|
||
from pagermaid.listener import listener
|
||
from pagermaid.enums import Client, Message
|
||
|
||
|
||
async def get_status_emoji(bot: Client, message: Message = None) -> str:
|
||
try:
|
||
peer = InputUserFromMessage(
|
||
peer=(await bot.resolve_peer(message.chat.id)),
|
||
msg_id=message.id,
|
||
user_id=message.from_user.id,
|
||
) if message else InputUserSelf()
|
||
req = await bot.invoke(GetUsers(id=[peer]))
|
||
emoji_status = req[0].emoji_status
|
||
if not emoji_status or isinstance(emoji_status, EmojiStatusEmpty):
|
||
return "你还没有设置自定义 emoji 状态"
|
||
if isinstance(emoji_status, EmojiStatus):
|
||
return f"你的自定义 emoji 状态是 <emoji id='{emoji_status.document_id}'>🔥</emoji>"
|
||
if isinstance(emoji_status, EmojiStatusUntil):
|
||
time = datetime.strftime(
|
||
datetime.fromtimestamp(
|
||
emoji_status.until, timezone("Asia/Shanghai")
|
||
),
|
||
"%Y-%m-%d %H:%M:%S"
|
||
)
|
||
return f"你的自定义 emoji 状态是 <emoji id='{emoji_status.document_id}'>🔥</emoji> (有效期至:{time})"
|
||
except DocumentInvalid:
|
||
return "无法获取自定义 emoji 状态,可能是状态已过期。"
|
||
except Exception as e:
|
||
raise FileNotFoundError from e
|
||
|
||
|
||
@listener(command="get_status",
|
||
need_admin=True,
|
||
description="获取自己或者他人的大会员自定义 emoji 状态")
|
||
async def get_emoji_status(bot: Client, message: Message):
|
||
""" 获取自己或者他人的大会员自定义 emoji 状态 """
|
||
if not message.reply_to_message_id:
|
||
me = bot.me or await bot.get_me()
|
||
if not me.is_premium:
|
||
return await message.edit("你好像不是大会员。。。")
|
||
try:
|
||
string = await get_status_emoji(bot, message.reply_to_message)
|
||
except FileNotFoundError:
|
||
string = "获取自定义 emoji 状态失败。"
|
||
await message.edit(string)
|