X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=patchwork%2Fbin%2Fparsemail.py;h=97189a3089d5b7de573f2725ee81a0f2af801755;hb=53a1c887e2dcea2121837b79093efa5ac8f4f592;hp=19e6e57d5214fa309f5f27068df726c6f3696dfa;hpb=ad2762cf775a8dde508de47164d6429f3fd724f1;p=patchwork diff --git a/patchwork/bin/parsemail.py b/patchwork/bin/parsemail.py index 19e6e57..97189a3 100755 --- a/patchwork/bin/parsemail.py +++ b/patchwork/bin/parsemail.py @@ -37,6 +37,7 @@ except ImportError: from patchwork.parser import parse_patch from patchwork.models import Patch, Project, Person, Comment, State, \ get_default_initial_patch_state +import django from django.contrib.auth.models import User list_id_headers = ['List-ID', 'X-Mailing-List', 'X-list'] @@ -79,7 +80,7 @@ def find_project(mail): try: project = Project.objects.get(listid = listid) break - except: + except Project.DoesNotExist: pass return project @@ -267,23 +268,8 @@ def find_patch_for_comment(project, mail): split_re = re.compile('[,\s]+') def split_prefixes(prefix): - """ Turn a prefix string into a list of prefix tokens - - >>> split_prefixes('PATCH') - ['PATCH'] - >>> split_prefixes('PATCH,RFC') - ['PATCH', 'RFC'] - >>> split_prefixes('') - [] - >>> split_prefixes('PATCH,') - ['PATCH'] - >>> split_prefixes('PATCH ') - ['PATCH'] - >>> split_prefixes('PATCH,RFC') - ['PATCH', 'RFC'] - >>> split_prefixes('PATCH 1/2') - ['PATCH', '1/2'] - """ + """ Turn a prefix string into a list of prefix tokens """ + matches = split_re.split(prefix) return [ s for s in matches if s != '' ] @@ -296,39 +282,8 @@ def clean_subject(subject, drop_prefixes = None): Removes Re: and Fwd: strings, as well as [PATCH]-style prefixes. By default, only [PATCH] is removed, and we keep any other bracketed data in the subject. If drop_prefixes is provided, remove those too, - comparing case-insensitively. - - >>> clean_subject('meep') - 'meep' - >>> clean_subject('Re: meep') - 'meep' - >>> clean_subject('[PATCH] meep') - 'meep' - >>> clean_subject('[PATCH] meep \\n meep') - 'meep meep' - >>> clean_subject('[PATCH RFC] meep') - '[RFC] meep' - >>> clean_subject('[PATCH,RFC] meep') - '[RFC] meep' - >>> clean_subject('[PATCH,1/2] meep') - '[1/2] meep' - >>> clean_subject('[PATCH RFC 1/2] meep') - '[RFC,1/2] meep' - >>> clean_subject('[PATCH] [RFC] meep') - '[RFC] meep' - >>> clean_subject('[PATCH] [RFC,1/2] meep') - '[RFC,1/2] meep' - >>> clean_subject('[PATCH] [RFC] [1/2] meep') - '[RFC,1/2] meep' - >>> clean_subject('[PATCH] rewrite [a-z] regexes') - 'rewrite [a-z] regexes' - >>> clean_subject('[PATCH] [RFC] rewrite [a-z] regexes') - '[RFC] rewrite [a-z] regexes' - >>> clean_subject('[foo] [bar] meep', ['foo']) - '[bar] meep' - >>> clean_subject('[FOO] [bar] meep', ['foo']) - '[bar] meep' - """ + comparing case-insensitively.""" + subject = clean_header(subject) @@ -448,6 +403,7 @@ def parse_mail(mail): return 0 def main(args): + django.setup() mail = message_from_file(sys.stdin) return parse_mail(mail)