]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/spamscan-sa
add workaround for lynx to use ca-debian/ca-certificates.crt
[debbugs.git] / scripts / spamscan-sa
index 190cca58de9798c70486d90a780ce2d8989eaeca..26c41729ad1ce7c6e37f985b0bf5eb92eb9638e2 100755 (executable)
@@ -6,8 +6,12 @@
 
 use warnings;
 use strict;
+
+use lib qw(/srv/bugs.debian.org/scripts/);
+
 use Mail::CrossAssassin;
 use Mail::SpamAssassin;
+use Mail::SpamAssassin::Logger;
 
 use Debbugs::Config qw(:config);
 # New versions of debbugs will not allow use in /etc/debbugs/config
@@ -24,19 +28,25 @@ sub header_or_empty ($$) {
     my $value = $mail->get_header($hdr);
     if (defined $value) {
        chomp $value;
-       $value =~ tr/\n/\\n/;
+        # replace newlines with '\n'
+       $value =~ s/\n/\\n/g;
        return $value;
     }
     return '';
 }
 
 my $spam = Mail::SpamAssassin->new({
-        dont_copy_prefs => 1,
-        site_rules_filename => $config{spam_rules_dir},
-        userprefs_filename => $config{spam_user_prefs},
+        #dont_copy_prefs => 1,
+#      debug => 'all',
+        #site_rules_filename => $config{spam_rules_dir},
+        #userprefs_filename => $config{spam_user_prefs},
                local_tests_only => ($config{spam_local_tests_only} || 0),
                debug => ($ENV{DEBBUGS_SPAM_DEBUG} || 0),
 });
+#Mail::SpamAssassin::Logger::add(method => 'file',filename => "/home/debbugs/.spamassassin/debuglog_".time."_$$");
+# wait longer for a lock
+$spam->init_learner({wait_for_lock => 1});
+
 $spam->compile_now(1); # use all user preferences
 
 while (my $id = <STDIN>) {
@@ -104,13 +114,10 @@ while (my $id = <STDIN>) {
            $out .= "  spam $score\n";
            $nseen = $score;
        } else {
+           my ($before, $received, $after) = $headers =~
+               /(^.*?)(^Received\: \(at .*?\n)(.*$)/ms;
            open OUT, "> incoming/I$id" or die "open incoming/I$id: $!";
-           my ($received, $from, $other_headers) =
-               split(/\n/, $headers, 3);
-           if ($received =~ /^From /) {
-               ($received, $from) = ($from, $received);
-           }
-           print OUT "$received\n$from\n$other_headers"
+           print OUT $received . $before . $after
                or die "print incoming/I$id: $!";
            if ($ca_score > 1) {
                print OUT "X-CrossAssassin-Score: $ca_score\n"