You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2007/10/30 13:36:08 UTC

svn commit: r590051 - /spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi

Author: jm
Date: Tue Oct 30 05:36:03 2007
New Revision: 590051

URL: http://svn.apache.org/viewvc?rev=590051&view=rev
Log:
separate out meta subrules from full rules in the overlap report section

Modified:
    spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi

Modified: spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
URL: http://svn.apache.org/viewvc/spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi?rev=590051&r1=590050&r2=590051&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi (original)
+++ spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi Tue Oct 30 05:36:03 2007
@@ -985,7 +985,6 @@
 
     if ($srcpath) {    # bug 4984
       @rules = grep {
-           # !$md->{$_} or !$md->{$_}->{src} or
           $md->{$_}->{src} and
              ($md->{$_}->{src} =~ /\Q$srcpath\E/);
          } @rules;
@@ -994,7 +993,6 @@
     if ($mtime) {      # bug 4985
       my $target = $self->{now} - ($mtime * 24 * 60 * 60);
       @rules = grep {
-           # !$md->{$_} or !$md->{$_}->{srcmtime} or
           $md->{$_}->{srcmtime} and
              ($md->{$_}->{srcmtime} >= $target);
          } @rules;
@@ -1229,9 +1227,25 @@
 
   # add overlap using the FREQS_EXTRA_TEMPLATE if it's present
   if ($obj->{overlap}) {
-    my $ovl = $obj->{overlap} || '';
+    $self->process_template(\$FREQS_EXTRA_TEMPLATE, {
+        EXTRA => $self->format_overlap($obj->{overlap} || '')
+    }, \$out);
+  }
+
+  return $out;
+}
+
+sub format_overlap {
+  my ($self, $ovl) = @_;
 
-    $ovl =~ s{^(\s+overlap\s+(?:ham|spam):\s+\d+% )(\S.+?)$}{
+  # list the subrules last; they're noisy and typically nonuseful
+  my $out_fullrules = '';
+  my $out_subrules = '';
+
+  foreach my $line (split(/^/m, $ovl)) {
+    my $issubrule = ($line =~ /\d+\%\s+of __/);
+
+    $line =~ s{^(\s+overlap\s+(?:ham|spam):\s+\d+% )(\S.+?)$}{
         my $str = "$1";
         foreach my $rule (split(' ', $2)) {
           if ($rule =~ /^(?:[a-z]{1,6}|\d+\%)$/) {    # "of", "hits" etc.
@@ -1243,12 +1257,15 @@
         $str;
       }gem;
 
-    $self->process_template(\$FREQS_EXTRA_TEMPLATE, {
-        EXTRA => $ovl,
-    }, \$out);
+    if ($issubrule) {
+      $out_subrules .= $line;
+    } else {
+      $out_fullrules .= $line;
+    }
   }
 
-  return $out;
+  return "OVERLAP WITH FULL RULES:\n".$out_fullrules."\n".
+        "OVERLAP WITH SUBRULES:\n".$out_subrules;
 }
 
 # get rid of slow, overengineered Template::Toolkit.  This replacement