Some housekeeping
[redakcja.git] / src / email_mangler / templatetags / email.py
1 # This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
3 #
4 import codecs
5 from django.utils.html import escape
6 from django.utils.safestring import mark_safe
7 from django.utils.translation import ugettext as _
8 from django import template
9
10 register = template.Library()
11
12
13 @register.filter
14 def email_link(email):
15     email_safe = escape(email)
16     try:
17         name, domain = email_safe.split('@', 1)
18     except ValueError:
19         return email
20
21     at = escape(_('at'))
22     dot = escape(_('dot'))
23     mangled = "%s %s %s" % (name, at, (' %s ' % dot).join(domain.split('.')))
24     return mark_safe("<a class='mangled' data-addr1='%(name)s' "
25         "data-addr2='%(domain)s'>%(mangled)s</a>" % {
26             'name': codecs.encode(name, 'rot13'),
27             'domain': codecs.encode(domain, 'rot13'),
28             'mangled': mangled,
29         })