Fix non-inline URL parsing
This commit is contained in:
@@ -176,7 +176,8 @@ def _telegram_entities_to_matrix(text, entities):
|
|||||||
elif entity_type == MessageEntityEmail:
|
elif entity_type == MessageEntityEmail:
|
||||||
html.append(f"<a href='mailto:{entity_text}'>{entity_text}</a>")
|
html.append(f"<a href='mailto:{entity_text}'>{entity_text}</a>")
|
||||||
elif entity_type in {MessageEntityTextUrl, MessageEntityUrl}:
|
elif entity_type in {MessageEntityTextUrl, MessageEntityUrl}:
|
||||||
skip_entity = _parse_url(html, entity_text, entity_type, entity.url)
|
skip_entity = _parse_url(html, entity_text,
|
||||||
|
entity.url if entity_type == MessageEntityTextUrl else None)
|
||||||
elif entity_type == MessageEntityBotCommand:
|
elif entity_type == MessageEntityBotCommand:
|
||||||
html.append(f"<font color='blue'>!{entity_text[1:]}</font>")
|
html.append(f"<font color='blue'>!{entity_text[1:]}</font>")
|
||||||
elif entity_type == MessageEntityHashtag:
|
elif entity_type == MessageEntityHashtag:
|
||||||
@@ -230,8 +231,8 @@ def _parse_name_mention(html, entity_text, user_id):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _parse_url(html, entity_text, entity_type, url):
|
def _parse_url(html, entity_text, url):
|
||||||
url = escape(url) if entity_type == MessageEntityTextUrl else entity_text
|
url = escape(url) if url else entity_text
|
||||||
if not url.startswith(("https://", "http://", "ftp://", "magnet://")):
|
if not url.startswith(("https://", "http://", "ftp://", "magnet://")):
|
||||||
url = "http://" + url
|
url = "http://" + url
|
||||||
html.append(f"<a href='{url}'>{entity_text}</a>")
|
html.append(f"<a href='{url}'>{entity_text}</a>")
|
||||||
|
|||||||
Reference in New Issue
Block a user