Source code for web.templatetags.gravatar_tags

import hashlib
import urllib

from django import template


register = template.Library()


class GravatarUrlNode(template.Node):
[docs] def __init__(self, email): self.email = template.Variable(email) def render(self, context):
[docs] try: email = self.email.resolve(context) except template.VariableDoesNotExist: return '' # default = 'http://example.com/static/images/defaultavatar.jpg' default = 'mm' # Mystery Man size = 24 return '//www.gravatar.com/avatar/{}?{}'.format( hashlib.md5(email.lower()).hexdigest(), urllib.urlencode({'d': default, 's': str(size)})) @register.tag
def gravatar_url(_parser, token):
[docs] try: _tag_name, email = token.split_contents() except ValueError: raise template.TemplateSyntaxError( '{} tag requires a single argument'.format( token.contents.split()[0])) return GravatarUrlNode(email)