26 lines
732 B
Python
26 lines
732 B
Python
|
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
|