From 8c399323c875b31b8417d6893f78dc38d978dceb Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Fri, 12 Aug 2022 17:33:13 +0200 Subject: [PATCH] Add new method get_custom_emoji_stickers --- compiler/docs/compiler.py | 1 + pyrogram/methods/messages/__init__.py | 4 +- .../messages/get_custom_emoji_stickers.py | 60 +++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 pyrogram/methods/messages/get_custom_emoji_stickers.py diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index a1cc115e..05ab23fd 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -194,6 +194,7 @@ def pyrogram_api(): get_discussion_message get_discussion_replies get_discussion_replies_count + get_custom_emoji_stickers """, chats=""" Chats diff --git a/pyrogram/methods/messages/__init__.py b/pyrogram/methods/messages/__init__.py index dafce11e..7a5d2d49 100644 --- a/pyrogram/methods/messages/__init__.py +++ b/pyrogram/methods/messages/__init__.py @@ -31,6 +31,7 @@ from .edit_message_text import EditMessageText from .forward_messages import ForwardMessages from .get_chat_history import GetChatHistory from .get_chat_history_count import GetChatHistoryCount +from .get_custom_emoji_stickers import GetCustomEmojiStickers from .get_discussion_message import GetDiscussionMessage from .get_discussion_replies import GetDiscussionReplies from .get_discussion_replies_count import GetDiscussionRepliesCount @@ -112,6 +113,7 @@ class Messages( SendReaction, GetDiscussionReplies, GetDiscussionRepliesCount, - StreamMedia + StreamMedia, + GetCustomEmojiStickers ): pass diff --git a/pyrogram/methods/messages/get_custom_emoji_stickers.py b/pyrogram/methods/messages/get_custom_emoji_stickers.py new file mode 100644 index 00000000..de5d8d4a --- /dev/null +++ b/pyrogram/methods/messages/get_custom_emoji_stickers.py @@ -0,0 +1,60 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present Dan +# +# This file is part of Pyrogram. +# +# Pyrogram is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pyrogram is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Pyrogram. If not, see . + +from typing import List + +import pyrogram +from pyrogram import raw +from pyrogram import types + + +class GetCustomEmojiStickers: + async def get_custom_emoji_stickers( + self: "pyrogram.Client", + custom_emoji_ids: List[int], + ) -> List["types.Sticker"]: + """Get information about custom emoji stickers by their identifiers. + + Parameters: + custom_emoji_ids (``int``): + List of custom emoji identifiers. + At most 200 custom emoji identifiers can be specified. + + Returns: + List of :obj:`~pyrogram.types.Sticker`: On success, a list of sticker objects is returned. + """ + result = await self.invoke( + raw.functions.messages.GetCustomEmojiDocuments( + document_id=custom_emoji_ids + ) + ) + + stickers = [] + for item in result: + attributes = {type(i): i for i in item.attributes} + + sticker = await types.Sticker._parse( + self, item, + attributes[raw.types.DocumentAttributeImageSize], + attributes[raw.types.DocumentAttributeCustomEmoji], + attributes[raw.types.DocumentAttributeFilename].file_name + ) + + stickers.append(sticker) + + return pyrogram.types.List(stickers)