Mascare o e-mail para visualização pública como identificador de usuário.

Estou compartilhando um pequeno utilitário para converter um e-mail em ID de usuário publicamente visível. O caso de uso é um sistema onde o usuário não tem nome de usuário, mas ainda precisamos identificar a pessoa por meio de algum ID de usuário gerado automaticamente.

por exemplo, saurabh@example.comse tornariasaur@example.com

Este tipo de máscara de e-mail também pode ser encontrado na interface do usuário do google-groups, onde se você clicar em um e-mail mascarado, ele fará uma verificação de captcha antes de exibir o e-mail completo.

import math


def mask_email(email):
"""
Converts an email to publically viewable as user identifier after hiding parts

email.


Usages:

>>> mask_email("a@a.com")

'a…@a.com'

>>> mask_email("aa@a.com")

'a…@a.com'

>>> mask_email("abc@a.com")

'ab…@a.com'

>>> mask_email("abcd@a.com")

'ab…@a.com'

>>> mask_email("this-is-a-verylongemail-that-should-be-trimmed@gmail.com")

'this-is-a-…@gmail.com'

>>> mask_email("invalidemail")

'invalidemail'

"""

if '@' not in email:
return email
first
, domain = email.split("@", 1)
hide_after
= min(math.ceil(len(first) / 2), 10)
return '{}…@{}'.format(first[:hide_after], domain)