Mailing List Archive

svn commit: r354324 - /spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
Author: jm
Date: Mon Dec 5 21:43:12 2005
New Revision: 354324

URL: http://svn.apache.org/viewcvs?rev=354324&view=rev
Log:
change to rules qa app; highlight *only* promotable T_ rules, not already-promoted rules and meta subrules. also, compress the output HTML a little better

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

Modified: spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi?rev=354324&r1=354323&r2=354324&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi (original)
+++ spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi Mon Dec 5 21:43:12 2005
@@ -36,6 +36,7 @@
my $q = new CGI;

my $ttk = Template->new;
+set_freqs_templates();

my $cgi_url;
my @cgi_params;
@@ -184,9 +185,9 @@
tr.freqsline_promo0 td {
text-align: right;
padding: 0.1em 0.2em 0.1em 0.2em;
- color: #aaa;
+ color: #999;
}
- tr.freqsline_promo0 td a { color: #aaa; }
+ tr.freqsline_promo0 td a { color: #999; }

h3 {
border: 1px solid;
@@ -604,17 +605,19 @@
$freqs_data{$key}{$lastrule}{overlap} .= $_;
}
elsif (/ ([\+\-])? *(\S+?)(\:\S+)?\s*$/) {
- my $promo = $1;
+ my $promochar = $1;
$lastrule = $2;
my $subset = $3;
if ($subset) { $subset =~ s/^://; }

- if ($promo eq '+') {
- $promo = 1;
- } elsif ($promo eq '-') {
+ my $is_testing = ($lastrule =~ /^T_/);
+ my $is_subrule = ($lastrule =~ /^__/);
+
+ # assume a default based on rule name; turn off explicitly
+ # the test rules that are not hitting qual thresholds
+ my $promo = ($is_testing && !$is_subrule);
+ if ($promochar eq '-') {
$promo = 0;
- } else {
- $promo = 1; # assume a default otherwise; backwards compat
}

my @vals = split;
@@ -635,7 +638,7 @@
score => $vals[5],
username => ($subset_is_user ? $subset : undef),
age => ($subset_is_age ? $subset : undef),
- promotable => $promo,
+ promotable => $promo ? '1' : '0',
};
push @{$freqs_data{$key}{$lastrule}{lines}}, $line;
}
@@ -748,38 +751,42 @@
return $str;
}

-sub output_freqs_data_line {
- my ($obj) = @_;
+my $FREQS_LINE_TEMPLATE;
+my $FREQS_EXTRA_TEMPLATE;

- my $LINE_TEMPLATE = qq{
+sub set_freqs_templates {
+ $FREQS_LINE_TEMPLATE = qq{

- <tr class=freqsline_promo[% PROMO %]>
- <td>
- [% IF RULEDETAIL != '' %]
- <a href="[% RULEDETAIL %]">&gt;</a>
- [% END %]
- </td>
- <td>[% MSECS %]</td>
- <td>[% SPAMPC %]</td>
- <td>[% HAMPC %]</td>
- <td>[% SO %]</td>
- <td>[% RANK %]</td>
- <td>[% SCORE %]</td>
- <td style='text-align: left'><a href="[% NAMEREF %]">[% NAME %]</a></td>
- <td>[% USERNAME %]</td>
- <td>[% AGE %]</td>
- </tr>
+ <tr class=freqsline_promo[% PROMO %]>
+ <td>[% IF RULEDETAIL != '' %]<a href="[% RULEDETAIL %]">&gt;</a>[% END %]</td>
+ <td>[% MSECS %]</td>
+ <td>[% SPAMPC %]</td>
+ <td>[% HAMPC %]</td>
+ <td>[% SO %]</td>
+ <td>[% RANK %]</td>
+ <td>[% SCORE %]</td>
+ <td style='text-align: left'><a href="[% NAMEREF %]">[% NAME %]</a></td>
+ <td>[% USERNAME %]</td>
+ <td>[% AGE %]</td>
+ </tr>

};

- my $EXTRA_TEMPLATE = qq{
+ $FREQS_EXTRA_TEMPLATE = qq{

- <tr class=freqsextra>
- <td colspan=7><pre class=perruleextra>[% EXTRA %]</pre></td>
- </tr>
+ <tr class=freqsextra>
+ <td colspan=7><pre class=perruleextra>[% EXTRA %]</pre></td>
+ </tr>

};

+ $FREQS_LINE_TEMPLATE =~ s/^\s+//gm;
+ $FREQS_EXTRA_TEMPLATE =~ s/^\s+//gm;
+}
+
+sub output_freqs_data_line {
+ my ($obj) = @_;
+
# normal freqs lines, with optional subselector after rule name
my $out = '';
foreach my $line (@{$obj->{lines}}) {
@@ -800,7 +807,7 @@
$score = '(n/a)';
}

- $ttk->process(\$LINE_TEMPLATE, {
+ $ttk->process(\$FREQS_LINE_TEMPLATE, {
RULEDETAIL => $detailurl,
MSECS => $line->{msecs},
SPAMPC => $line->{spampc},
@@ -818,17 +825,17 @@
$line_counter++;
}

- # add scoremap using the EXTRA_TEMPLATE if it's present
+ # add scoremap using the FREQS_EXTRA_TEMPLATE if it's present
if ($obj->{scoremap}) {
my $ovl = $obj->{scoremap} || '';
# scoremap spam: 16 12.11% 777 ****

- $ttk->process(\$EXTRA_TEMPLATE, {
+ $ttk->process(\$FREQS_EXTRA_TEMPLATE, {
EXTRA => $ovl,
}, \$out) or die $ttk->error();
}

- # add overlap using the EXTRA_TEMPLATE if it's present
+ # add overlap using the FREQS_EXTRA_TEMPLATE if it's present
if ($obj->{overlap}) {
my $ovl = $obj->{overlap} || '';

@@ -840,7 +847,7 @@
$str;
/gem;

- $ttk->process(\$EXTRA_TEMPLATE, {
+ $ttk->process(\$FREQS_EXTRA_TEMPLATE, {
EXTRA => $ovl,
}, \$out) or die $ttk->error();
}