diff --git a/telethon/extensions/html.py b/telethon/extensions/html.py
index d4233473..e950900d 100644
--- a/telethon/extensions/html.py
+++ b/telethon/extensions/html.py
@@ -9,8 +9,8 @@ from html.parser import HTMLParser
from ..tl.types import (
MessageEntityBold, MessageEntityItalic, MessageEntityCode,
MessageEntityPre, MessageEntityEmail, MessageEntityUrl,
- MessageEntityTextUrl
-)
+ MessageEntityTextUrl,
+ MessageEntityMentionName)
# Helpers from markdown.py
@@ -178,6 +178,9 @@ def unparse(text, entities):
elif entity_type == MessageEntityTextUrl:
html.append('{}'
.format(escape(entity.url), entity_text))
+ elif entity_type == MessageEntityMentionName:
+ html.append('{}'
+ .format(entity.user_id, entity_text))
else:
skip_entity = True
last_offset = entity.offset + (0 if skip_entity else entity.length)
diff --git a/telethon/extensions/markdown.py b/telethon/extensions/markdown.py
index 5274dc85..2560554a 100644
--- a/telethon/extensions/markdown.py
+++ b/telethon/extensions/markdown.py
@@ -9,8 +9,8 @@ from ..helpers import add_surrogate, del_surrogate
from ..tl import TLObject
from ..tl.types import (
MessageEntityBold, MessageEntityItalic, MessageEntityCode,
- MessageEntityPre, MessageEntityTextUrl
-)
+ MessageEntityPre, MessageEntityTextUrl,
+ MessageEntityMentionName)
DEFAULT_DELIMITERS = {
'**': MessageEntityBold,
@@ -120,9 +120,9 @@ def parse(message, delimiters=None, url_re=None):
# If this is the case, we want to insert the delimiter character back.
if current is not None:
message = (
- message[:current.offset]
- + end_delimiter
- + message[current.offset:]
+ message[:current.offset]
+ + end_delimiter
+ + message[current.offset:]
)
return del_surrogate(message), result
@@ -163,9 +163,12 @@ def unparse(text, entities, delimiters=None, url_fmt=None):
text = text[:s] + delimiter + text[s:e] + delimiter + text[e:]
elif isinstance(entity, MessageEntityTextUrl) and url_fmt:
text = (
- text[:s] +
- add_surrogate(url_fmt.format(text[s:e], entity.url)) +
- text[e:]
+ text[:s] +
+ add_surrogate(url_fmt.format(text[s:e], entity.url)) +
+ text[e:]
)
-
+ elif isinstance(entity, MessageEntityMentionName):
+ text = text[:entity.offset] + "[{}](tg://user?id={})".format(
+ text[entity.offset:entity.offset + entity.length], entity.user_id) + text[
+ entity.offset + entity.length:]
return del_surrogate(text)