Hi, Stephen I think you missed this patch. But I saw you have already merged it, maybe it can give you some reference:)
2016-09-05 22:31 GMT+08:00 Pingbo Wen <[email protected]>: > From: WEN Pingbo <[email protected]> > > If the subject of a submission is prefixed by 'Re:', then it can't be a > patch or cover letter. > > Signed-off-by: WEN Pingbo <[email protected]> > --- > patchwork/parser.py | 34 ++++++++++++++++++++++------------ > 1 file changed, 22 insertions(+), 12 deletions(-) > > diff --git a/patchwork/parser.py b/patchwork/parser.py > index 1805df8..a4b20a8 100644 > --- a/patchwork/parser.py > +++ b/patchwork/parser.py > @@ -303,6 +303,10 @@ def split_prefixes(prefix): > > return [s for s in matches if s != ''] > > +def subject_check(subject): > + comment_re = re.compile(r'^(re)[:\s]\s*', re.I) > + > + return comment_re.match(subject) > > def clean_subject(subject, drop_prefixes=None): > """Clean a Subject: header from an incoming patch. > @@ -620,7 +624,9 @@ def parse_mail(mail, list_id=None): > > msgid = mail.get('Message-Id').strip() > author = find_author(mail) > - name, prefixes = clean_subject(mail.get('Subject'), [project.linkname]) > + subject = mail.get('Subject') > + name, prefixes = clean_subject(subject, [project.linkname]) > + is_comment = subject_check(subject) > x, n = parse_series_marker(prefixes) > refs = find_references(mail) > date = find_date(mail) > @@ -629,7 +635,7 @@ def parse_mail(mail, list_id=None): > > # build objects > > - if diff or pull_url: # patches or pull requests > + if not is_comment and (diff or pull_url): # patches or pull requests > # we delay the saving until we know we have a patch. > author.save() > > @@ -659,17 +665,18 @@ def parse_mail(mail, list_id=None): > # however, we need to see if a match already exists and, if > # not, assume that it is indeed a new cover letter > is_cover_letter = False > - if not refs == []: > - try: > - CoverLetter.objects.all().get(name=name) > - except CoverLetter.DoesNotExist: > - # if no match, this is a new cover letter > + if not is_comment: > + if not refs == []: > + try: > + CoverLetter.objects.all().get(name=name) > + except CoverLetter.DoesNotExist: > + # if no match, this is a new cover letter > + is_cover_letter = True > + except CoverLetter.MultipleObjectsReturned: > + # if multiple cover letters are found, just ignore > + pass > + else: > is_cover_letter = True > - except CoverLetter.MultipleObjectsReturned: > - # if multiple cover letters are found, just ignore > - pass > - else: > - is_cover_letter = True > > if is_cover_letter: > author.save() > @@ -694,6 +701,9 @@ def parse_mail(mail, list_id=None): > if not submission: > return > > + if is_comment and diff: > + message += diff > + > author.save() > > comment = Comment( > -- > 1.9.1 > _______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
