[PATCH v2 04/11] parsemail: Extract building the list of mail references
Stephen Finucane
stephen.finucane at intel.com
Sat Apr 2 01:57:40 AEDT 2016
From: Damien Lespiau <damien.lespiau at intel.com>
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>
Signed-off-by: Stephen Finucane <stephen.finucane at intel.com>
---
patchwork/bin/parsemail.py | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/patchwork/bin/parsemail.py b/patchwork/bin/parsemail.py
index 3ade49e..ae1ccb2 100755
--- a/patchwork/bin/parsemail.py
+++ b/patchwork/bin/parsemail.py
@@ -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
--
2.0.0
More information about the Patchwork
mailing list