From a8d9e2f1853032016db6ff177979873b3bdadd85 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 19 Apr 2014 23:23:10 +0000 Subject: mda: share commit setup code with -learn We need -learn to do many of the same things as -mda when we have a false-positive. We also need -learn to do HTML filtering in case the training user screws up. --- public-inbox-mda | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) (limited to 'public-inbox-mda') diff --git a/public-inbox-mda b/public-inbox-mda index dd3dac80..504fefd7 100755 --- a/public-inbox-mda +++ b/public-inbox-mda @@ -11,7 +11,6 @@ use Encode qw/decode encode/; use Encode::MIME::Header; use File::Path::Expand qw/expand_filename/; use IPC::Run qw(run); -use constant MDA => 'ssoma-mda'; use PublicInbox::MDA; use PublicInbox::Filter; use PublicInbox::Config; @@ -44,23 +43,18 @@ if (PublicInbox::MDA->precheck($filter, $recipient) && # run spamc again on the HTML-free message if (do_spamc($simple, \$filtered)) { $simple = Email::Simple->new($filtered); - set_list_headers($simple, $dst); + PublicInbox::MDA->set_list_headers($simple, $dst); $filter->simple($simple); - my $from = decode('MIME-Header', $filter->from); - $from = encode("utf8", $from); - my @from = Email::Address->parse($from); - my $name = $from[0]->name; - defined $name or $name = ""; - my $email = $from[0]->address; - defined $email or $email = ""; + my ($name, $email, $date) = + PublicInbox::MDA->author_info($simple); local $ENV{GIT_AUTHOR_NAME} = $name; local $ENV{GIT_AUTHOR_EMAIL} = $email; - local $ENV{GIT_AUTHOR_DATE} = $simple->header("Date"); + local $ENV{GIT_AUTHOR_DATE} = $date; local $ENV{GIT_COMMITTER_EMAIL} = $recipient; local $ENV{GIT_COMMITTER_NAME} = $dst->{listname}; - $filter->pipe(MDA, '-1', $main_repo); + $filter->pipe(PublicInbox::MDA->cmd, $main_repo); } } } @@ -78,17 +72,3 @@ sub do_spamc { return ($@ || $? || !defined($$out) || length($$out) == 0) ? 0 : 1; } - -# RFC2919 and RFC2369 -sub set_list_headers { - my ($simple, $dst) = @_; - my $pa = "<$dst->{-primary_address}>"; - $simple->header_set("List-Id", $pa); - $simple->header_set("List-Post", $pa); - - my $url = $dst->{url}; - if (defined $url) { - $simple->header_set("List-Archive", "<$url>"); - $simple->header_set("List-Help", "<${url}help>"); - } -} -- cgit v1.2.3-24-ge0c7