mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-28 21:07:59 +00:00
Fix parsing of text mentions
This commit is contained in:
parent
bee5136598
commit
23b03c6b19
@ -71,12 +71,21 @@ class MessageEntity(Object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _parse(client, entity: "raw.base.MessageEntity", users: dict) -> Optional["MessageEntity"]:
|
def _parse(client, entity: "raw.base.MessageEntity", users: dict) -> Optional["MessageEntity"]:
|
||||||
|
# Special case for InputMessageEntityMentionName -> MessageEntityType.TEXT_MENTION
|
||||||
|
# This happens in case of UpdateShortSentMessage inside send_message() where entities are parsed from the input
|
||||||
|
if isinstance(entity, raw.types.InputMessageEntityMentionName):
|
||||||
|
entity_type = enums.MessageEntityType.TEXT_MENTION
|
||||||
|
user_id = entity.user_id.user_id
|
||||||
|
else:
|
||||||
|
entity_type = enums.MessageEntityType(entity.__class__)
|
||||||
|
user_id = getattr(entity, "user_id", None)
|
||||||
|
|
||||||
return MessageEntity(
|
return MessageEntity(
|
||||||
type=enums.MessageEntityType(entity.__class__),
|
type=entity_type,
|
||||||
offset=entity.offset,
|
offset=entity.offset,
|
||||||
length=entity.length,
|
length=entity.length,
|
||||||
url=getattr(entity, "url", None),
|
url=getattr(entity, "url", None),
|
||||||
user=types.User._parse(client, users.get(getattr(entity, "user_id", None), None)),
|
user=types.User._parse(client, users.get(user_id, None)),
|
||||||
language=getattr(entity, "language", None),
|
language=getattr(entity, "language", None),
|
||||||
client=client
|
client=client
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user