40ad72f540d299d0e4f5b7eda4ad82f9395786a1
[redakcja.git] / src / email_mangler / templatetags / email.py
1 import codecs
2 from django.utils.html import escape
3 from django.utils.safestring import mark_safe
4 from django.utils.translation import ugettext as _
5 from django import template
6
7 register = template.Library()
8
9
10 @register.filter
11 def email_link(email):
12     email_safe = escape(email)
13     try:
14         name, domain = email_safe.split('@', 1)
15     except ValueError:
16         return email
17
18     at = escape(_('at'))
19     dot = escape(_('dot'))
20     mangled = "%s %s %s" % (name, at, (' %s ' % dot).join(domain.split('.')))
21     return mark_safe("<a class='mangled' data-addr1='%(name)s' "
22         "data-addr2='%(domain)s'>%(mangled)s</a>" % {
23             'name': codecs.encode(name, 'rot13'),
24             'domain': codecs.encode(domain, 'rot13'),
25             'mangled': mangled,
26         })