xyphron / DragMusic /utils /stickerset.py
taslim19
Add kang and get_sticker management plugin adapted for DragMusic
7710b6e
from typing import List
from pyrogram import Client, errors, raw
async def get_sticker_set_by_name(
client: Client, name: str
) -> raw.base.messages.StickerSet:
try:
return await client.invoke(
raw.functions.messages.GetStickerSet(
stickerset=raw.types.InputStickerSetShortName(short_name=name),
hash=0,
)
)
except errors.exceptions.not_acceptable_406.StickersetInvalid:
return None
async def create_sticker_set(
client: Client,
owner: int,
title: str,
short_name: str,
stickers: List[raw.base.InputStickerSetItem],
) -> raw.base.messages.StickerSet:
return await client.invoke(
raw.functions.stickers.CreateStickerSet(
user_id=await client.resolve_peer(owner),
title=title,
short_name=short_name,
stickers=stickers,
)
)
async def add_sticker_to_set(
client: Client,
stickerset: raw.base.messages.StickerSet,
sticker: raw.base.InputStickerSetItem,
) -> raw.base.messages.StickerSet:
return await client.invoke(
raw.functions.stickers.AddStickerToSet(
stickerset=raw.types.InputStickerSetShortName(
short_name=stickerset.set.short_name
),
sticker=sticker,
)
)
async def create_sticker(
sticker: raw.base.InputDocument, emoji: str
) -> raw.base.InputStickerSetItem:
return raw.types.InputStickerSetItem(document=sticker, emoji=emoji)