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.lesp...@intel.com>
Acked-by: Stephen Finucane <stephen.finuc...@intel.com>
---
 patchwork/bin/parsemail.py | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/patchwork/bin/parsemail.py b/patchwork/bin/parsemail.py
index a98066f..8bbb7ee 100755
--- a/patchwork/bin/parsemail.py
+++ b/patchwork/bin/parsemail.py
@@ -160,6 +160,22 @@ class MailContent:
         self.patch = None
         self.comment = None
 
+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):
     """If this patch is part a of multi-patches series, ie has x/n in its
        subject, return (x, n). Otherwise, return (None, None)."""
@@ -244,7 +260,8 @@ def find_content(project, mail):
                     headers = mail_headers(mail))
 
         else:
-            cpatch = find_patch_for_comment(project, mail)
+            refs = build_references_list(mail)
+            cpatch = find_patch_for_comment(project, refs)
             if not cpatch:
                 return ret
             ret.comment = Comment(patch = cpatch, date = mail_date(mail),
@@ -253,19 +270,7 @@ def find_content(project, mail):
 
     return ret
 
-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
 
-- 
2.4.3

_______________________________________________
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork

Reply via email to