- if (PublicInbox::Filter->run($msg, $filter_arg)) {
- # run spamc again on the HTML-free message
- if (do_spamc($msg, \$filtered)) {
- $msg = Email::MIME->new(\$filtered);
- PublicInbox::MDA->set_list_headers($msg, $dst);
- $filter->simple($msg);
-
- END {
- index_sync($main_repo) if ($? == 0);
- };
- my $git = PublicInbox::Git->new($main_repo);
- my $im = PublicInbox::Import->new($git,
- $dst->{inbox}, $recipient);
- if (defined $im->add($msg)) {
- $im->done;
- $filter->ignore; # exits
- }
- # this message is similar to what ssoma-mda shows:
- print STDERR "CONFLICT: Message-ID: ",
- $msg->header_obj->header_raw('Message-ID'),
- " exists\n";
- }
- }
+my $fcfg = $dst->{filter} || '';
+my $filter;
+if ($fcfg =~ /::/) {
+ eval "require $fcfg";
+ die $@ if $@;
+ $filter = $fcfg->new;
+} elsif ($fcfg eq 'scrub') { # TODO:
+ require PublicInbox::Filter::Mirror;
+ $filter = PublicInbox::Filter::Mirror->new;