]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/bin/parsemail.py
[parser] Don't remove --- update lines
[patchwork] / apps / patchwork / bin / parsemail.py
index b679894f0e1d4f44509f82530a3a58b8f2f524aa..b0f1497656ab8ac4170c93f34975454b4f9b0fad 100755 (executable)
@@ -103,7 +103,6 @@ def find_author(mail):
 def mail_date(mail):
     t = parsedate_tz(mail.get('Date', ''))
     if not t:
-        print "using now()"
         return datetime.datetime.utcnow()
     return datetime.datetime.utcfromtimestamp(mktime_tz(t))
 
@@ -240,6 +239,8 @@ def clean_subject(subject, drop_prefixes = None):
     'meep'
     >>> clean_subject('[PATCH] meep')
     'meep'
+    >>> clean_subject('[PATCH] meep \\n meep')
+    'meep meep'
     >>> clean_subject('[PATCH RFC] meep')
     '[RFC] meep'
     >>> clean_subject('[PATCH,RFC] meep')
@@ -274,6 +275,9 @@ def clean_subject(subject, drop_prefixes = None):
     # remove Re:, Fwd:, etc
     subject = re_re.sub(' ', subject)
 
+    # normalise whitespace
+    subject = whitespace_re.sub(' ', subject)
+
     prefixes = []
 
     match = prefix_re.match(subject)
@@ -294,8 +298,9 @@ def clean_subject(subject, drop_prefixes = None):
 
     return subject
 
-sig_re = re.compile('^(-{2,3} ?|_+)\n.*', re.S | re.M)
+sig_re = re.compile('^(-|_+)\n.*', re.S | re.M)
 def clean_content(str):
+    """ Try to remove signature (-- ) and list footer (_____) cruft """
     str = sig_re.sub('', str)
     return str.strip()