Mailing List Archive

svn commit: rev 9796 - in incubator/spamassassin/trunk: lib/Mail/SpamAssassin rules
Author: quinlan
Date: Sat Mar 27 18:53:11 2004
New Revision: 9796

Modified:
incubator/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
incubator/spamassassin/trunk/rules/70_testing.cf
Log:
keep wheedling down backhair


Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm (original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/HTML.pm Sat Mar 27 18:53:11 2004
@@ -1009,12 +1009,14 @@
my $start = length($1);
if ($text =~ /^([^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\b/s) {
my $end = length($1);
- my $backhair = "backhair_" . $start . "_" . $end;
- $self->{html}{$backhair}++;
- $self->{html}{backhair_a} += 1;
- $self->{html}{backhair_b} += ($start + $end) / 12;
- $self->{html}{backhair_c} += 1 - abs($start - $end) / ($start + $end);
- $self->{html}{backhair_d} += ($start + $end) ** (-0.09 * abs($start - $end) - 0.05);
+ $self->{html}{backhair} += ($start + $end) / 12;
+ }
+ }
+ if ($last =~ /(?:\b|\s)([^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})\z/s) {
+ my $start = length($1);
+ if ($text =~ /^([^\s\x21-\x2f\x3a-\x40\x5b-\x60\x7b-\x7e]{1,7})(?:\b|\s)/s) {
+ my $end = length($1);
+ $self->{html}{backhair2} += ($start + $end) / 12;
}
}
}

Modified: incubator/spamassassin/trunk/rules/70_testing.cf
==============================================================================
--- incubator/spamassassin/trunk/rules/70_testing.cf (original)
+++ incubator/spamassassin/trunk/rules/70_testing.cf Sat Mar 27 18:53:11 2004
@@ -280,103 +280,17 @@
body T_VIA_GAP_GRA /\bvia.gra\b/i

# backhair - idea from backhair set by Jennifer Wheeler and Adam Lopresto.
-body T_BACKHAIR_A_00 eval:html_eval('backhair_a', '> 0')
-body T_BACKHAIR_A_01 eval:html_eval('backhair_a', '> 1')
-body T_BACKHAIR_A_02 eval:html_eval('backhair_a', '> 2')
-body T_BACKHAIR_A_03 eval:html_eval('backhair_a', '> 3')
-body T_BACKHAIR_A_04 eval:html_eval('backhair_a', '> 4')
-body T_BACKHAIR_A_05 eval:html_eval('backhair_a', '> 5')
-body T_BACKHAIR_A_06 eval:html_eval('backhair_a', '> 6')
-body T_BACKHAIR_A_07 eval:html_eval('backhair_a', '> 7')
-body T_BACKHAIR_A_08 eval:html_eval('backhair_a', '> 8')
-body T_BACKHAIR_A_09 eval:html_eval('backhair_a', '> 9')
-body T_BACKHAIR_A_10 eval:html_eval('backhair_a', '> 10')
+body T_BACKHAIR_0_1 eval:html_range('backhair', '0', '1')
+body T_BACKHAIR_1_2 eval:html_range('backhair', '1', '2')
+body T_BACKHAIR_2_4 eval:html_range('backhair', '2', '4')
+body T_BACKHAIR_4_8 eval:html_range('backhair', '4', '8')
+body T_BACKHAIR_8_X eval:html_range('backhair', '8', 'inf')

-body T_BACKHAIR_B_00 eval:html_eval('backhair_b', '> 0')
-body T_BACKHAIR_B_01 eval:html_eval('backhair_b', '> 1')
-body T_BACKHAIR_B_02 eval:html_eval('backhair_b', '> 2')
-body T_BACKHAIR_B_03 eval:html_eval('backhair_b', '> 3')
-body T_BACKHAIR_B_04 eval:html_eval('backhair_b', '> 4')
-body T_BACKHAIR_B_05 eval:html_eval('backhair_b', '> 5')
-body T_BACKHAIR_B_06 eval:html_eval('backhair_b', '> 6')
-body T_BACKHAIR_B_07 eval:html_eval('backhair_b', '> 7')
-body T_BACKHAIR_B_08 eval:html_eval('backhair_b', '> 8')
-body T_BACKHAIR_B_09 eval:html_eval('backhair_b', '> 9')
-body T_BACKHAIR_B_10 eval:html_eval('backhair_b', '> 10')
-
-body T_BACKHAIR_C_00 eval:html_eval('backhair_c', '> 0')
-body T_BACKHAIR_C_01 eval:html_eval('backhair_c', '> 1')
-body T_BACKHAIR_C_02 eval:html_eval('backhair_c', '> 2')
-body T_BACKHAIR_C_03 eval:html_eval('backhair_c', '> 3')
-body T_BACKHAIR_C_04 eval:html_eval('backhair_c', '> 4')
-body T_BACKHAIR_C_05 eval:html_eval('backhair_c', '> 5')
-body T_BACKHAIR_C_06 eval:html_eval('backhair_c', '> 6')
-body T_BACKHAIR_C_07 eval:html_eval('backhair_c', '> 7')
-body T_BACKHAIR_C_08 eval:html_eval('backhair_c', '> 8')
-body T_BACKHAIR_C_09 eval:html_eval('backhair_c', '> 9')
-body T_BACKHAIR_C_10 eval:html_eval('backhair_c', '> 10')
-
-body T_BACKHAIR_D_00 eval:html_eval('backhair_d', '> 0')
-body T_BACKHAIR_D_01 eval:html_eval('backhair_d', '> 1')
-body T_BACKHAIR_D_02 eval:html_eval('backhair_d', '> 2')
-body T_BACKHAIR_D_03 eval:html_eval('backhair_d', '> 3')
-body T_BACKHAIR_D_04 eval:html_eval('backhair_d', '> 4')
-body T_BACKHAIR_D_05 eval:html_eval('backhair_d', '> 5')
-body T_BACKHAIR_D_06 eval:html_eval('backhair_d', '> 6')
-body T_BACKHAIR_D_07 eval:html_eval('backhair_d', '> 7')
-body T_BACKHAIR_D_08 eval:html_eval('backhair_d', '> 8')
-body T_BACKHAIR_D_09 eval:html_eval('backhair_d', '> 9')
-body T_BACKHAIR_D_10 eval:html_eval('backhair_d', '> 10')
-
-body T_BACKHAIR_1_1 eval:html_test('backhair_1_1')
-body T_BACKHAIR_1_2 eval:html_test('backhair_1_2')
-body T_BACKHAIR_1_3 eval:html_test('backhair_1_3')
-body T_BACKHAIR_1_4 eval:html_test('backhair_1_4')
-body T_BACKHAIR_1_5 eval:html_test('backhair_1_5')
-body T_BACKHAIR_1_6 eval:html_test('backhair_1_6')
-body T_BACKHAIR_1_7 eval:html_test('backhair_1_7')
-body T_BACKHAIR_2_1 eval:html_test('backhair_2_1')
-body T_BACKHAIR_2_2 eval:html_test('backhair_2_2')
-body T_BACKHAIR_2_3 eval:html_test('backhair_2_3')
-body T_BACKHAIR_2_4 eval:html_test('backhair_2_4')
-body T_BACKHAIR_2_5 eval:html_test('backhair_2_5')
-body T_BACKHAIR_2_6 eval:html_test('backhair_2_6')
-body T_BACKHAIR_2_7 eval:html_test('backhair_2_7')
-body T_BACKHAIR_3_1 eval:html_test('backhair_3_1')
-body T_BACKHAIR_3_2 eval:html_test('backhair_3_2')
-body T_BACKHAIR_3_3 eval:html_test('backhair_3_3')
-body T_BACKHAIR_3_4 eval:html_test('backhair_3_4')
-body T_BACKHAIR_3_5 eval:html_test('backhair_3_5')
-body T_BACKHAIR_3_6 eval:html_test('backhair_3_6')
-body T_BACKHAIR_3_7 eval:html_test('backhair_3_7')
-body T_BACKHAIR_4_1 eval:html_test('backhair_4_1')
-body T_BACKHAIR_4_2 eval:html_test('backhair_4_2')
-body T_BACKHAIR_4_3 eval:html_test('backhair_4_3')
-body T_BACKHAIR_4_4 eval:html_test('backhair_4_4')
-body T_BACKHAIR_4_5 eval:html_test('backhair_4_5')
-body T_BACKHAIR_4_6 eval:html_test('backhair_4_6')
-body T_BACKHAIR_4_7 eval:html_test('backhair_4_7')
-body T_BACKHAIR_5_1 eval:html_test('backhair_5_1')
-body T_BACKHAIR_5_2 eval:html_test('backhair_5_2')
-body T_BACKHAIR_5_3 eval:html_test('backhair_5_3')
-body T_BACKHAIR_5_4 eval:html_test('backhair_5_4')
-body T_BACKHAIR_5_5 eval:html_test('backhair_5_5')
-body T_BACKHAIR_5_6 eval:html_test('backhair_5_6')
-body T_BACKHAIR_5_7 eval:html_test('backhair_5_7')
-body T_BACKHAIR_6_1 eval:html_test('backhair_6_1')
-body T_BACKHAIR_6_2 eval:html_test('backhair_6_2')
-body T_BACKHAIR_6_3 eval:html_test('backhair_6_3')
-body T_BACKHAIR_6_4 eval:html_test('backhair_6_4')
-body T_BACKHAIR_6_5 eval:html_test('backhair_6_5')
-body T_BACKHAIR_6_6 eval:html_test('backhair_6_6')
-body T_BACKHAIR_6_7 eval:html_test('backhair_6_7')
-body T_BACKHAIR_7_1 eval:html_test('backhair_7_1')
-body T_BACKHAIR_7_2 eval:html_test('backhair_7_2')
-body T_BACKHAIR_7_3 eval:html_test('backhair_7_3')
-body T_BACKHAIR_7_4 eval:html_test('backhair_7_4')
-body T_BACKHAIR_7_5 eval:html_test('backhair_7_5')
-body T_BACKHAIR_7_6 eval:html_test('backhair_7_6')
-body T_BACKHAIR_7_7 eval:html_test('backhair_7_7')
+body T_BACKHAIR2_0_1 eval:html_range('backhair2', '0', '1')
+body T_BACKHAIR2_1_2 eval:html_range('backhair2', '1', '2')
+body T_BACKHAIR2_2_4 eval:html_range('backhair2', '2', '4')
+body T_BACKHAIR2_4_8 eval:html_range('backhair2', '4', '8')
+body T_BACKHAIR2_8_X eval:html_range('backhair2', '8', 'inf')

# spams that are assembled from a Javascript array
# look for the XOR op