Source code for tahrir.utils.avatar
import urllib.parse
from hashlib import md5, sha256
from flask import current_app
from tahrir.cache import cache
[docs]
@cache.cache_on_arguments()
def get_avatar(email: str, size):
default = current_app.config["TAHRIR_DEFAULT_AVATAR"]
query = {
"s": size,
"d": default,
}
if size == "responsive":
# Make it big so we can downscale it as we please
query["s"] = 312
query = urllib.parse.urlencode(query)
hash = sha256(email.encode("utf-8")).hexdigest()
return f"https://seccdn.libravatar.org/avatar/{hash}?{query}"
[docs]
def as_avatar(value, size):
return get_avatar(value, size=size)
[docs]
def hash_email(email):
if not email:
return None
return md5(email.strip().lower().encode("utf-8")).hexdigest()