1 # -*- coding: utf-8 -*-
2 # This file is part of django-libravatar, licensed under GNU Affero GPLv3 or later.
3 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
5 from django.core.cache import cache
6 from django import template
7 from libravatar import libravatar_url
8 from django_libravatar.settings import LIBRAVATAR_DEFAULT, LIBRAVATAR_DEFAULT_HTTPS
10 register = template.Library()
12 @register.simple_tag(takes_context=True)
13 def libravatar(context, email, size=None):
14 https = context['request'].is_secure()
15 default = LIBRAVATAR_DEFAULT_HTTPS if https else LIBRAVATAR_DEFAULT_HTTP
16 if hasattr(default, '__call__'):
17 default = default(size)
20 cache_key = "%s:%d:%d" % (email, size, https)
22 url = cache.get(cache_key)
25 url = libravatar_url(email,
29 cache.set(cache_key, url, 60 * 60)