]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
parsemail: Extract building the list of mail references
authorDamien Lespiau <damien.lespiau@intel.com>
Sun, 25 May 2014 17:41:49 +0000 (18:41 +0100)
committerStephen Finucane <stephen.finucane@intel.com>
Thu, 14 Apr 2016 16:29:07 +0000 (17:29 +0100)
We'll need to figure out whether the mail we are parsing is the root of
the thread to automatically build series, and we'll need the list of
references for that.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
patchwork/bin/parsemail.py

index 3ade49e5fbc078e0a069d6f4ee95c2d984ed1f53..ae1ccb230fccf681b654a113c1b8d37ffb42c952 100755 (executable)
@@ -193,6 +193,23 @@ def try_decode(payload, charset):
     return payload
 
 
+def build_references_list(mail):
+    """Construct a list of possible reply message ids."""
+    refs = []
+
+    if 'In-Reply-To' in mail:
+        refs.append(mail.get('In-Reply-To'))
+
+    if 'References' in mail:
+        rs = mail.get('References').split()
+        rs.reverse()
+        for r in rs:
+            if r not in refs:
+                refs.append(r)
+
+    return refs
+
+
 def parse_series_marker(subject_prefixes):
     """Extract series markers from subject.
 
@@ -286,7 +303,8 @@ def find_content(project, mail):
                       headers=mail_headers(mail))
 
     if commentbuf and not patch:
-        cpatch = find_patch_for_comment(project, mail)
+        refs = build_references_list(mail)
+        cpatch = find_patch_for_comment(project, refs)
         if not cpatch:
             return (None, None, None)
         comment = Comment(submission=cpatch,
@@ -297,19 +315,7 @@ def find_content(project, mail):
     return (patch, comment, filenames)
 
 
-def find_patch_for_comment(project, mail):
-    # construct a list of possible reply message ids
-    refs = []
-    if 'In-Reply-To' in mail:
-        refs.append(mail.get('In-Reply-To'))
-
-    if 'References' in mail:
-        rs = mail.get('References').split()
-        rs.reverse()
-        for r in rs:
-            if r not in refs:
-                refs.append(r)
-
+def find_patch_for_comment(project, refs):
     for ref in refs:
         patch = None