mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-25 19:03:46 +03:00
Fix unparsing of entities that are together
This commit is contained in:
parent
7c6fe5c4e9
commit
9f73c35621
|
@ -159,7 +159,7 @@ def unparse(text: str, entities: Iterable[TypeMessageEntity], _offset: int = 0,
|
|||
html = []
|
||||
last_offset = 0
|
||||
for i, entity in enumerate(entities):
|
||||
if entity.offset > _offset + _length:
|
||||
if entity.offset >= _offset + _length:
|
||||
break
|
||||
relative_offset = entity.offset - _offset
|
||||
if relative_offset > last_offset:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Tests for `telethon.extensions.html`.
|
||||
"""
|
||||
from telethon.extensions import html
|
||||
from telethon.tl.types import MessageEntityBold, MessageEntityTextUrl
|
||||
from telethon.tl.types import MessageEntityBold, MessageEntityItalic, MessageEntityTextUrl
|
||||
|
||||
|
||||
def test_entity_edges():
|
||||
|
@ -36,3 +36,18 @@ def test_trailing_malformed_entities():
|
|||
entities = [MessageEntityTextUrl(offset=2, length=43, url='https://example.com')]
|
||||
result = html.unparse(text, entities)
|
||||
assert result == '🏆<a href="https://example.com">Telegram Official Android Challenge is over🏆</a>'
|
||||
|
||||
|
||||
def test_entities_together():
|
||||
"""
|
||||
Test that an entity followed immediately by a different one behaves well.
|
||||
"""
|
||||
original = '<strong>⚙️</strong><em>Settings</em>'
|
||||
stripped = '⚙️Settings'
|
||||
|
||||
text, entities = html.parse(original)
|
||||
assert text == stripped
|
||||
assert entities == [MessageEntityBold(0, 2), MessageEntityItalic(2, 8)]
|
||||
|
||||
text = html.unparse(text, entities)
|
||||
assert text == original
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Tests for `telethon.extensions.markdown`.
|
||||
"""
|
||||
from telethon.extensions import markdown
|
||||
from telethon.tl.types import MessageEntityBold, MessageEntityTextUrl
|
||||
from telethon.tl.types import MessageEntityBold, MessageEntityItalic, MessageEntityTextUrl
|
||||
|
||||
|
||||
def test_entity_edges():
|
||||
|
@ -36,3 +36,18 @@ def test_trailing_malformed_entities():
|
|||
entities = [MessageEntityTextUrl(offset=2, length=43, url='https://example.com')]
|
||||
result = markdown.unparse(text, entities)
|
||||
assert result == "🏆[Telegram Official Android Challenge is over🏆](https://example.com)"
|
||||
|
||||
|
||||
def test_entities_together():
|
||||
"""
|
||||
Test that an entity followed immediately by a different one behaves well.
|
||||
"""
|
||||
original = '**⚙️**__Settings__'
|
||||
stripped = '⚙️Settings'
|
||||
|
||||
text, entities = markdown.parse(original)
|
||||
assert text == stripped
|
||||
assert entities == [MessageEntityBold(0, 2), MessageEntityItalic(2, 8)]
|
||||
|
||||
text = markdown.unparse(text, entities)
|
||||
assert text == original
|
||||
|
|
Loading…
Reference in New Issue
Block a user