Files
welcomecenterbot/bot/utils/mention.py

22 lines
758 B
Python
Raw Normal View History

2023-04-28 15:24:14 +03:00
def escape_username(username):
# Replace any non-ASCII and non-alphanumeric characters with underscores
2023-09-11 23:04:53 +03:00
return "".join(c if c.isalnum() or c.isspace() else "-" for c in username)
2023-04-28 15:24:14 +03:00
2023-04-23 19:54:58 +03:00
# generates a mention from standard telegram web json 'from' field
# using HTML markup
def mention(user):
2023-04-28 15:24:14 +03:00
uid, identity, username = userdata_extract(user)
identity = escape_username(identity)
return f'<a href="tg://user?id={uid}">{identity} {username}</a>'
def userdata_extract(user):
2023-10-21 13:16:01 +03:00
ln = " " + user.get('last_name', "") if user.get('last_name', "") else ""
2023-09-21 21:20:50 +03:00
identity = f"{user['first_name']}{ln}"
2023-09-11 23:04:53 +03:00
uid = user["id"]
username = user.get("username", "")
2023-04-23 19:54:58 +03:00
if username:
2023-09-11 23:04:53 +03:00
username = f"(@{username})"
2023-04-28 15:24:14 +03:00
return uid, identity, username