From patchwork Fri Oct 9 10:39:51 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Lespiau X-Patchwork-Id: 528169 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id F3B521402B2 for ; Fri, 9 Oct 2015 21:40:49 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id D9CEC1A03B1 for ; Fri, 9 Oct 2015 21:40:49 +1100 (AEDT) X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lists.ozlabs.org (Postfix) with ESMTP id DFCED1A039F for ; Fri, 9 Oct 2015 21:40:07 +1100 (AEDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP; 09 Oct 2015 03:40:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,657,1437462000"; d="scan'208";a="823048658" Received: from mschrift-mobl.amr.corp.intel.com (HELO strange.amr.corp.intel.com) ([10.252.207.4]) by fmsmga002.fm.intel.com with ESMTP; 09 Oct 2015 03:40:06 -0700 From: Damien Lespiau To: patchwork@lists.ozlabs.org Subject: [PATCH 04/15] parsemail: Extract building the list of mail references Date: Fri, 9 Oct 2015 11:39:51 +0100 Message-Id: <1444387202-25735-5-git-send-email-damien.lespiau@intel.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1444387202-25735-1-git-send-email-damien.lespiau@intel.com> References: <1444387202-25735-1-git-send-email-damien.lespiau@intel.com> X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" 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 Acked-by: Stephen Finucane --- 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