From 1121cad788f01bee80f281f8da4e5b22dfa342f1 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= Date: Wed, 1 Mar 2017 21:58:41 +0000 Subject: [PATCH 2/2] MIME-decode headers from the archive JSON API --- pgcommitfest/commitfest/ajax.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pgcommitfest/commitfest/ajax.py b/pgcommitfest/commitfest/ajax.py index cffc33d..4f4df6b 100644 --- a/pgcommitfest/commitfest/ajax.py +++ b/pgcommitfest/commitfest/ajax.py @@ -6,6 +6,9 @@ from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.db import transaction +from codecs import decode +from email.header import decode_header + import httplib import socket import urllib @@ -53,6 +56,15 @@ def _archivesAPI(suburl, params=None): h.close() except socket.error, e: raise Http503("Failed to communicate with archives backend: %s" % e) + + # MIME-decode possibly-encoded headers + for m in r: + for h in ('from','to','cc','subj'): + try: + m[h] = ''.join([decode(v, c if c else 'ascii') for (v, c) in decode_header(m[h])]) + except: + # Do nothing if the header doesn't exist or the decode fails + pass return r def getThreads(request): -- 2.7.4