| OLD | NEW |
| 1 # coding: utf-8 | 1 # coding: utf-8 |
| 2 | 2 |
| 3 # This file is part of the Adblock Plus web scripts, | 3 # This file is part of the Adblock Plus web scripts, |
| 4 # Copyright (C) 2006-2012 Eyeo GmbH | 4 # Copyright (C) 2006-2012 Eyeo GmbH |
| 5 # | 5 # |
| 6 # Adblock Plus is free software: you can redistribute it and/or modify | 6 # Adblock Plus is free software: you can redistribute it and/or modify |
| 7 # it under the terms of the GNU General Public License version 3 as | 7 # it under the terms of the GNU General Public License version 3 as |
| 8 # published by the Free Software Foundation. | 8 # published by the Free Software Foundation. |
| 9 # | 9 # |
| 10 # Adblock Plus is distributed in the hope that it will be useful, | 10 # Adblock Plus is distributed in the hope that it will be useful, |
| 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 # GNU General Public License for more details. | 13 # GNU General Public License for more details. |
| 14 # | 14 # |
| 15 # You should have received a copy of the GNU General Public License | 15 # You should have received a copy of the GNU General Public License |
| 16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| 17 | 17 |
| 18 import os, sys, codecs, subprocess, sitescripts | 18 import os, sys, re, codecs, subprocess, sitescripts |
| 19 from time import time | 19 from time import time |
| 20 from tempfile import mkstemp | 20 from tempfile import mkstemp |
| 21 from ConfigParser import SafeConfigParser | 21 from ConfigParser import SafeConfigParser |
| 22 | 22 |
| 23 siteScriptsPath = sitescripts.__path__[0] | 23 siteScriptsPath = sitescripts.__path__[0] |
| 24 | 24 |
| 25 class cached(object): | 25 class cached(object): |
| 26 """ | 26 """ |
| 27 Decorator that caches a function's return value for a given number of second
s. | 27 Decorator that caches a function's return value for a given number of second
s. |
| 28 Note that this only works if the string representation of the parameters is | 28 Note that this only works if the string representation of the parameters is |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 | 78 |
| 79 raise Exception('No config file found. Please put sitescripts.ini into your ho
me directory or /etc') | 79 raise Exception('No config file found. Please put sitescripts.ini into your ho
me directory or /etc') |
| 80 | 80 |
| 81 def setupStderr(stream=sys.stderr): | 81 def setupStderr(stream=sys.stderr): |
| 82 """ | 82 """ |
| 83 Sets up sys.stderr to accept Unicode characters, redirects error output to | 83 Sets up sys.stderr to accept Unicode characters, redirects error output to |
| 84 the stream passed in if any. | 84 the stream passed in if any. |
| 85 """ | 85 """ |
| 86 sys.stderr = codecs.getwriter('utf8')(stream) | 86 sys.stderr = codecs.getwriter('utf8')(stream) |
| 87 | 87 |
| 88 def anonymizeMail(email): |
| 89 """ |
| 90 Anonymizes email to look like a**.n***@g****.c** |
| 91 """ |
| 92 return re.sub(r'(?<=[^.@])[^.@]', '*', email) |
| 93 |
| 88 def sendMail(template, data): | 94 def sendMail(template, data): |
| 89 """ | 95 """ |
| 90 Sends a mail generated from the template and data given. | 96 Sends a mail generated from the template and data given. |
| 91 """ | 97 """ |
| 92 template = get_template(template, False) | 98 template = get_template(template, False) |
| 93 mail = template.render(data) | 99 mail = template.render(data) |
| 94 if get_config().get('DEFAULT', 'mailerDebug') == 'yes': | 100 if get_config().get('DEFAULT', 'mailerDebug') == 'yes': |
| 95 (handle, path) = mkstemp(prefix='mail_', suffix='.eml', dir='.') | 101 (handle, path) = mkstemp(prefix='mail_', suffix='.eml', dir='.') |
| 96 os.close(handle) | 102 os.close(handle) |
| 97 f = codecs.open(path, 'wb', encoding='utf-8') | 103 f = codecs.open(path, 'wb', encoding='utf-8') |
| (...skipping 30 matching lines...) Expand all Loading... |
| 128 def get_unescaped_template_environment(): | 134 def get_unescaped_template_environment(): |
| 129 """ | 135 """ |
| 130 Returns a Jinja2 template environment without autoescaping. Don't use this t
o | 136 Returns a Jinja2 template environment without autoescaping. Don't use this t
o |
| 131 generate HTML files! | 137 generate HTML files! |
| 132 """ | 138 """ |
| 133 from sitescripts.templateFilters import filters | 139 from sitescripts.templateFilters import filters |
| 134 import jinja2 | 140 import jinja2 |
| 135 env = jinja2.Environment(loader=jinja2.FileSystemLoader(siteScriptsPath)) | 141 env = jinja2.Environment(loader=jinja2.FileSystemLoader(siteScriptsPath)) |
| 136 env.filters.update(filters) | 142 env.filters.update(filters) |
| 137 return env | 143 return env |
| OLD | NEW |