]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Spamcheck.pm
mda: allow configuring globally without spamc support
[public-inbox.git] / lib / PublicInbox / Spamcheck.pm
diff --git a/lib/PublicInbox/Spamcheck.pm b/lib/PublicInbox/Spamcheck.pm
new file mode 100644 (file)
index 0000000..062479d
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright (C) 2018 all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+package PublicInbox::Spamcheck;
+use strict;
+use warnings;
+
+sub get {
+       my ($config, $key, $default) = @_;
+       my $spamcheck = $config->{$key};
+       $spamcheck = $default unless $spamcheck;
+
+       return if !$spamcheck || $spamcheck eq 'none';
+
+       if ($spamcheck eq 'spamc') {
+               $spamcheck = 'PublicInbox::Spamcheck::Spamc';
+       }
+       if ($spamcheck =~ /::/) {
+               eval "require $spamcheck";
+               return $spamcheck->new;
+       }
+       warn "unsupported $key=$spamcheck\n";
+       undef;
+}
+
+1;