| Index: sitescripts/templateFilters.py |
| =================================================================== |
| --- a/sitescripts/templateFilters.py |
| +++ b/sitescripts/templateFilters.py |
| @@ -10,17 +10,17 @@ |
| # Adblock Plus is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| # GNU General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| -import re, email.header, urllib, time, json |
| +import re, email.header, email.utils, urllib, time, json |
| from datetime import date |
| from jinja2.utils import Markup |
| from urlparse import urlparse |
| def formattime(value): |
| try: |
| return time.strftime('%Y-%m-%d %H:%M UTC', time.gmtime(int(value))) |
| except Exception, e: |
| @@ -123,18 +123,25 @@ def subscriptionSort(value, prioritizeRe |
| value.sort(lambda a, b: ( |
| cmp(a.type, b.type) or |
| cmp(a.deprecated, b.deprecated) or |
| cmp(a.name.lower(), b.name.lower()) |
| )) |
| return value |
| def formatmime(text): |
| + # See http://bugs.python.org/issue5871 (not really fixed), Header() will |
| + # happily accept non-printable characters including newlines. Make sure to |
| + # remove them. |
| + text = re.sub(r'[\x00-\x1F]', '', text) |
| return email.header.Header(text).encode() |
| +def emailaddr((name, addr)): |
| + return email.utils.formataddr((name, addr)) |
| + |
| def ljust(value, width=80): |
| return unicode(value).ljust(width) |
| def rjust(value, width=80): |
| return unicode(value).rjust(width) |
| def ltruncate(value, length=255, end='...'): |
| value = unicode(value) |
| @@ -170,15 +177,16 @@ filters = { |
| 'timerelative': formatrelativetime, |
| 'url': formaturl, |
| 'keepnewlines': formatnewlines, |
| 'filtercount': formatfiltercount, |
| 'buglinks': formatBugLinks, |
| 'urlencode': urlencode, |
| 'subscriptionSort': subscriptionSort, |
| 'mime': formatmime, |
| + 'emailaddr': emailaddr, |
|
Sebastian Noack
2014/05/23 13:16:18
There is no need to define the emailaddr function
Wladimir Palant
2014/05/23 13:28:29
True, in the initial version this wasn't the case.
|
| 'ljust': ljust, |
| 'rjust': rjust, |
| 'ltruncate': ltruncate, |
| 'weekday': formatweekday, |
| 'bytes': formatbytes, |
| 'json': toJSON, |
| } |