mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-03-03 19:00:21 +03:00
Remove invalid mentions from message entities (#1049)
This commit is contained in:
parent
5b2cfffedc
commit
7e168cb4fb
|
@ -55,8 +55,9 @@ class MessageParseMethods(UserMethods):
|
||||||
entities[i].offset, entities[i].length,
|
entities[i].offset, entities[i].length,
|
||||||
await self.get_input_entity(user)
|
await self.get_input_entity(user)
|
||||||
)
|
)
|
||||||
|
return True
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
pass
|
return False
|
||||||
|
|
||||||
async def _parse_message_text(self, message, parse_mode):
|
async def _parse_message_text(self, message, parse_mode):
|
||||||
"""
|
"""
|
||||||
|
@ -71,15 +72,20 @@ class MessageParseMethods(UserMethods):
|
||||||
return message, []
|
return message, []
|
||||||
|
|
||||||
message, msg_entities = parse_mode.parse(message)
|
message, msg_entities = parse_mode.parse(message)
|
||||||
for i, e in enumerate(msg_entities):
|
for i in reversed(range(len(msg_entities))):
|
||||||
|
e = msg_entities[i]
|
||||||
if isinstance(e, types.MessageEntityTextUrl):
|
if isinstance(e, types.MessageEntityTextUrl):
|
||||||
m = re.match(r'^@|\+|tg://user\?id=(\d+)', e.url)
|
m = re.match(r'^@|\+|tg://user\?id=(\d+)', e.url)
|
||||||
if m:
|
if m:
|
||||||
user = int(m.group(1)) if m.group(1) else e.url
|
user = int(m.group(1)) if m.group(1) else e.url
|
||||||
await self._replace_with_mention(msg_entities, i, user)
|
is_mention = await self._replace_with_mention(msg_entities, i, user)
|
||||||
|
if not is_mention:
|
||||||
|
del msg_entities[i]
|
||||||
elif isinstance(e, (types.MessageEntityMentionName,
|
elif isinstance(e, (types.MessageEntityMentionName,
|
||||||
types.InputMessageEntityMentionName)):
|
types.InputMessageEntityMentionName)):
|
||||||
await self._replace_with_mention(msg_entities, i, e.user_id)
|
is_mention = await self._replace_with_mention(msg_entities, i, e.user_id)
|
||||||
|
if not is_mention:
|
||||||
|
del msg_entities[i]
|
||||||
|
|
||||||
return message, msg_entities
|
return message, msg_entities
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user