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()