def escape_username(username): # Replace any non-ASCII and non-alphanumeric characters with underscores return "".join(c if c.isalnum() or c.isspace() else "-" for c in username) # generates a mention from standard telegram web json 'from' field # using HTML markup def mention(user): uid, identity, username = userdata_extract(user) identity = escape_username(identity) return f'{identity} {username}' def userdata_extract(user): ln = " " + user.get('last_name', "") if user.get('last_name', "") else "" identity = f"{user['first_name']}{ln}" uid = user["id"] username = user.get("username", "") return uid, identity, username