mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2026-09-05 16:40:42 +00:00
Fixed sorting of markup entities with the same offsets (#4201)
This commit is contained in:
@@ -167,21 +167,21 @@ def unparse(text: str, entities: Iterable[TypeMessageEntity]) -> str:
|
||||
|
||||
text = add_surrogate(text)
|
||||
insert_at = []
|
||||
for entity in entities:
|
||||
for i, entity in enumerate(entities):
|
||||
s = entity.offset
|
||||
e = entity.offset + entity.length
|
||||
delimiter = ENTITY_TO_FORMATTER.get(type(entity), None)
|
||||
if delimiter:
|
||||
if callable(delimiter):
|
||||
delimiter = delimiter(entity, text[s:e])
|
||||
insert_at.append((s, delimiter[0]))
|
||||
insert_at.append((e, delimiter[1]))
|
||||
insert_at.append((s, i, delimiter[0]))
|
||||
insert_at.append((e, len(entities) - i, delimiter[1]))
|
||||
|
||||
insert_at.sort(key=lambda t: t[0])
|
||||
insert_at.sort(key=lambda t: (t[0], t[1]))
|
||||
next_escape_bound = len(text)
|
||||
while insert_at:
|
||||
# Same logic as markdown.py
|
||||
at, what = insert_at.pop()
|
||||
at, _, what = insert_at.pop()
|
||||
while within_surrogate(text, at):
|
||||
at += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user