Skip to content

Commit cd69fb6

Browse files
committed
Add support for CUSTOM_EMOJI message entity type
1 parent c26c100 commit cd69fb6

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

pyrogram/enums/message_entity_type.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,8 @@ class MessageEntityType(AutoName):
7777
BANK_CARD = raw.types.MessageEntityBankCard
7878
"Bank card text"
7979

80+
CUSTOM_EMOJI = raw.types.MessageEntityCustomEmoji
81+
"Custom emoji"
82+
8083
UNKNOWN = raw.types.MessageEntityUnknown
8184
"Unknown message entity type"

pyrogram/types/messages_and_media/message_entity.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,17 @@ class MessageEntity(Object):
4040
Length of the entity in UTF-16 code units.
4141
4242
url (``str``, *optional*):
43-
For "text_link" only, url that will be opened after user taps on the text.
43+
For :obj:`~pyrogram.enums.MessageEntityType.TEXT_LINK` only, url that will be opened after user taps on the text.
4444
4545
user (:obj:`~pyrogram.types.User`, *optional*):
46-
For "text_mention" only, the mentioned user.
46+
For :obj:`~pyrogram.enums.MessageEntityType.TEXT_MENTION` only, the mentioned user.
4747
48-
language (``str``. *optional*):
48+
language (``str``, *optional*):
4949
For "pre" only, the programming language of the entity text.
50+
51+
custom_emoji_id (``int``, *optional*):
52+
For :obj:`~pyrogram.enums.MessageEntityType.CUSTOM_EMOJI` only, unique identifier of the custom emoji.
53+
Use :meth:`~pyrogram.Client.get_custom_emoji_stickers` to get full information about the sticker.
5054
"""
5155

5256
def __init__(
@@ -58,7 +62,8 @@ def __init__(
5862
length: int,
5963
url: str = None,
6064
user: "types.User" = None,
61-
language: str = None
65+
language: str = None,
66+
custom_emoji_id: int = None
6267
):
6368
super().__init__(client)
6469

@@ -68,6 +73,7 @@ def __init__(
6873
self.url = url
6974
self.user = user
7075
self.language = language
76+
self.custom_emoji_id = custom_emoji_id
7177

7278
@staticmethod
7379
def _parse(client, entity: "raw.base.MessageEntity", users: dict) -> Optional["MessageEntity"]:
@@ -87,6 +93,7 @@ def _parse(client, entity: "raw.base.MessageEntity", users: dict) -> Optional["M
8793
url=getattr(entity, "url", None),
8894
user=types.User._parse(client, users.get(user_id, None)),
8995
language=getattr(entity, "language", None),
96+
custom_emoji_id=getattr(entity, "document_id", None),
9097
client=client
9198
)
9299

@@ -105,6 +112,9 @@ async def write(self):
105112
if self.language is None:
106113
args.pop("language")
107114

115+
if self.custom_emoji_id is None:
116+
args.pop("custom_emoji_id")
117+
108118
entity = self.type.value
109119

110120
if entity is raw.types.MessageEntityMentionName:

0 commit comments

Comments
 (0)