use PublicInbox::InboxWritable;
use File::Temp qw//;
use PublicInbox::Filter::Base;
+use PublicInbox::Spamcheck;
*REJECT = *PublicInbox::Filter::Base::REJECT;
sub new {
}
my $k = 'publicinboxwatch.spamcheck';
- my $spamcheck = $config->{$k};
- if ($spamcheck) {
- if ($spamcheck eq 'spamc') {
- $spamcheck = 'PublicInbox::Spamcheck::Spamc';
- }
- if ($spamcheck =~ /::/) {
- eval "require $spamcheck";
- $spamcheck = _spamcheck_cb($spamcheck->new);
- } else {
- warn "unsupported $k=$spamcheck\n";
- $spamcheck = undef;
- }
- }
+ my $default = undef;
+ my $spamcheck = PublicInbox::Spamcheck::get($config, $k, $default);
+ $spamcheck = _spamcheck_cb($spamcheck) if $spamcheck;
# need to make all inboxes writable for spam removal:
$config->each_inbox(sub { PublicInbox::InboxWritable->new($_[0]) });
my $im = _importer_for($self, $ibx);
$im->remove($mime, 'spam');
if (my $scrub = $ibx->filter) {
- my $scrubbed = $scrub->scrub($mime) or return;
+ my $scrubbed = $scrub->scrub($mime, 1);
+ $scrubbed or return;
$scrubbed == REJECT() and return;
$im->remove($scrubbed, 'spam');
}