diff --git a/mautrix_telegram/formatter.py b/mautrix_telegram/formatter.py index 824dc96e..21236b4f 100644 --- a/mautrix_telegram/formatter.py +++ b/mautrix_telegram/formatter.py @@ -353,10 +353,11 @@ def _telegram_to_matrix(text, entities): skip_entity = True elif entity_type == MessageEntityEmail: html.append(f"{entity_text}") - elif entity_type == MessageEntityUrl: - html.append(f"{entity_text}") - elif entity_type == MessageEntityTextUrl: - html.append(f"{entity_text}") + elif entity_type in {MessageEntityTextUrl, MessageEntityUrl}: + url = escape(entity.url) if entity_type == MessageEntityTextUrl else entity_text + if not url.startswith(("https://", "http://", "ftp://", "magnet://")): + url = "http://" + url + html.append(f"{entity_text}") elif entity_type == MessageEntityBotCommand: html.append(f"!{entity_text[1:]}") elif entity_type == MessageEntityHashtag: