[PATCH 06/51] parsemail: Extract building the list of mail references
Damien Lespiau
damien.lespiau at intel.com
Sat Sep 12 01:54:39 AEST 2015
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 at 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 8c26c5f..a622187 100755
--- a/patchwork/bin/parsemail.py
+++ b/patchwork/bin/parsemail.py
@@ -162,6 +162,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)."""
@@ -246,7 +262,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),
@@ -255,19 +272,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.1.0
More information about the Patchwork
mailing list