| 1234567891011121314151617181920212223242526272829303132333435363738 |
- from typing import List
- from pyrogram import Client, raw
- from pyrogram import errors
- async def get_sticker_set_by_name(client: Client, name: str) -> raw.base.messages.StickerSet:
- try:
- return await client.send(
- raw.functions.messages.GetStickerSet(
- stickerset = raw.types.InputStickerSetShortName(short_name=name)
- )
- )
- except errors.exceptions.not_acceptable_406.StickersetInvalid:
- return None
- # Known errors: (I don't see a reason to catch them as we, for sure, won't face them right now):
- # errors.exceptions.bad_request_400.PackShortNameInvalid -> pack name needs to end with _by_botname
- # errors.exceptions.bad_request_400.ShortnameOccupyFailed -> pack's name is already in use
- 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.send(
- 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.send(
- 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)
|