2023-04-28 12:24:14 +00:00
|
|
|
def escape_username(username):
|
|
|
|
# Replace any non-ASCII and non-alphanumeric characters with underscores
|
2023-09-11 20:04:53 +00:00
|
|
|
return "".join(c if c.isalnum() or c.isspace() else "-" for c in username)
|
|
|
|
|
2023-04-28 12:24:14 +00:00
|
|
|
|
2023-04-23 16:54:58 +00:00
|
|
|
# generates a mention from standard telegram web json 'from' field
|
|
|
|
# using HTML markup
|
|
|
|
def mention(user):
|
2023-04-28 12:24:14 +00: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):
|
2024-09-27 06:23:55 +00:00
|
|
|
ln = " " + user.get("last_name", "") if user.get("last_name", "") else ""
|
2023-09-21 18:20:50 +00:00
|
|
|
identity = f"{user['first_name']}{ln}"
|
2023-09-11 20:04:53 +00:00
|
|
|
uid = user["id"]
|
|
|
|
username = user.get("username", "")
|
2023-04-28 12:24:14 +00:00
|
|
|
return uid, identity, username
|