about summary refs log tree commit homepage
path: root/script
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2017-02-09 00:43:02 +0000
committerEric Wong <e@80x24.org>2017-02-09 00:43:02 +0000
commitfb9ed5324ec7de9420956840ba9a6585b81e8231 (patch)
treeab6b34f8459a585205a25d1f3d18d31437b89052 /script
parent1ab8dabe04ebba61fd8761dca3d569947cbe20be (diff)
parentba4c50c20b95679580beba1ef290a4281d5285b7 (diff)
downloadpublic-inbox-fb9ed5324ec7de9420956840ba9a6585b81e8231.tar.gz
* origin/master:
  config: do not slurp lines into memory
  TODO: several updates
  search: schema version bump for empty References/In-Reply-To
  Revert "searchidx: reindex clobbers old thread IDs"
  searchidx: reindex clobbers old thread IDs
  searchidx: deal with empty In-Reply-To and References headers
  searchview: increase limit for displaying search results
  searchview: clarify numeric summary at bottom
  add filter for Subject: tags
  watchmaildir: allow arguments for filters
  watchmaildir: limit live importer processes
  learn: implement "rm" only functionality
  mime: avoid SUPER usage in Email::MIME subclass
  inbox: reinstate periodic cleanup of Xapian and SQLite objects
  introduce PublicInbox::MIME wrapper class
Diffstat (limited to 'script')
-rwxr-xr-xscript/public-inbox-learn29
-rwxr-xr-xscript/public-inbox-mda2
2 files changed, 17 insertions, 14 deletions
diff --git a/script/public-inbox-learn b/script/public-inbox-learn
index 396ab489..38c83243 100755
--- a/script/public-inbox-learn
+++ b/script/public-inbox-learn
@@ -10,32 +10,35 @@ use warnings;
 use PublicInbox::Config;
 use PublicInbox::Git;
 use PublicInbox::Import;
-use Email::MIME;
+use PublicInbox::MIME;
 use Email::MIME::ContentType;
 $Email::MIME::ContentType::STRICT_PARAMS = 0; # user input is imperfect
 use PublicInbox::Address;
 use PublicInbox::Spamcheck::Spamc;
 my $train = shift or die "usage: $usage\n";
-if ($train !~ /\A(?:ham|spam)\z/) {
+if ($train !~ /\A(?:ham|spam|rm)\z/) {
         die "`$train' not recognized.\nusage: $usage\n";
 }
 
 my $spamc = PublicInbox::Spamcheck::Spamc->new;
 my $pi_config = PublicInbox::Config->new;
 my $err;
-my $mime = Email::MIME->new(eval {
+my $mime = PublicInbox::MIME->new(eval {
         local $/;
         my $data = scalar <STDIN>;
         $data =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s;
-        eval {
-                if ($train eq 'ham') {
-                        $spamc->hamlearn(\$data);
-                } else {
-                        $spamc->spamlearn(\$data);
-                }
-                die "spamc failed with: $?\n" if $?;
-        };
-        $err = $@;
+
+        if ($train ne 'rm') {
+                eval {
+                        if ($train eq 'ham') {
+                                $spamc->hamlearn(\$data);
+                        } elsif ($train eq 'spam') {
+                                $spamc->spamlearn(\$data);
+                        }
+                        die "spamc failed with: $?\n" if $?;
+                };
+                $err = $@;
+        }
         $data
 });
 
@@ -61,7 +64,7 @@ foreach my $recipient (keys %dests) {
         my $email = $ENV{GIT_COMMITTER_EMAIL} || $recipient;
         my $im = PublicInbox::Import->new($git, $name, $email);
 
-        if ($train eq "spam") {
+        if ($train eq "spam" || $train eq "rm") {
                 # This needs to be idempotent, as my inotify trainer
                 # may train for each cross-posted message, and this
                 # script already learns for every list in
diff --git a/script/public-inbox-mda b/script/public-inbox-mda
index 8b5258f5..60f817dc 100755
--- a/script/public-inbox-mda
+++ b/script/public-inbox-mda
@@ -52,7 +52,7 @@ $simple = undef;
 $emm = PublicInbox::Emergency->new($emergency);
 $emm->prepare(\$str);
 $ems = $ems->abort;
-my $mime = Email::MIME->new(\$str);
+my $mime = PublicInbox::MIME->new(\$str);
 $str = '';
 do_exit(0) unless $spam_ok;