import hashlib from django.contrib.auth.models import AbstractUser from django.utils.http import urlencode from judge.models import Profile from judge.utils.unicode import utf8bytes from . import registry @registry.function def gravatar(email, size=80, default=None): if isinstance(email, Profile): if default is None: default = email.mute email = email.user.email elif isinstance(email, AbstractUser): email = email.email gravatar_url = '//www.gravatar.com/avatar/' + hashlib.md5(utf8bytes(email.strip().lower())).hexdigest() + '?' args = {'d': 'identicon', 's': str(size)} if default: args['f'] = 'y' gravatar_url += urlencode(args) return gravatar_url