mirror of
https://github.com/yasirarism/MissKatyPyro.git
synced 2025-12-29 17:44:50 +00:00
80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
"""
|
|
MIT License
|
|
Copyright (c) 2021 TheHamkerCat
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
of this software and associated documentation files (the "Software"), to deal
|
|
in the Software without restriction, including without limitation the rights
|
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
The above copyright notice and this permission notice shall be included in all
|
|
copies or substantial portions of the Software.
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
"""
|
|
|
|
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.bad_request_400.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.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)
|