You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2004/11/14 20:13:46 UTC

svn commit: rev 65614 - in spamassassin/trunk: lib/Mail/SpamAssassin rules

Author: felicity
Date: Sun Nov 14 11:13:45 2004
New Revision: 65614

Modified:
   spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm
   spamassassin/trunk/rules/70_testing.cf
Log:
bug 3499: try using text vs html word count for MPART_ALT_DIFF

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm	(original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/EvalTests.pm	Sun Nov 14 11:13:45 2004
@@ -3120,9 +3120,18 @@
   return 0;
 }
 
+sub multipart_alternative_difference_count {
+  my ($self, $fulltext, $ratio, $minhtml) = @_;
+  $self->_multipart_alternative_difference() unless (exists $self->{madiff});
+  return 0 unless $self->{madiff_html} > $minhtml;
+  return(($self->{madiff_text} / $self->{madiff_html}) > $ratio);
+}
+
 sub _multipart_alternative_difference {
   my ($self) = @_;
   $self->{madiff} = 0;
+  $self->{madiff_html} = 0;
+  $self->{madiff_text} = 0;
 
   # Find all multipart/alternative parts in the message
   my @ma = $self->{msg}->find_parts(qr@^multipart/alternative\b@i);
@@ -3182,6 +3191,10 @@
     # How many HTML tokens do we have at the start?
     my $orig = keys %html;
     next if ($orig == 0);
+
+    $self->{madiff_html} = $orig;
+    $self->{madiff_text} = keys %text;
+    dbg('eval: text words: ' . $self->{madiff_text} . ', html words: ' . $self->{madiff_html});
 
     # If the token appears at least as many times in the text part as
     # in the html part, remove it from the list of html tokens.

Modified: spamassassin/trunk/rules/70_testing.cf
==============================================================================
--- spamassassin/trunk/rules/70_testing.cf	(original)
+++ spamassassin/trunk/rules/70_testing.cf	Sun Nov 14 11:13:45 2004
@@ -339,3 +339,36 @@
 
 # can only be from "form"
 body	T_EMPTY_URI_ACTION	eval:html_text_match('blank_uri', '^form$')
+
+# bug 3499
+body T_MPART_ALT_DIFF1_1    eval:multipart_alternative_difference_count('1','1')
+body T_MPART_ALT_DIFF2_1    eval:multipart_alternative_difference_count('2','1')
+body T_MPART_ALT_DIFF3_1    eval:multipart_alternative_difference_count('3','1')
+body T_MPART_ALT_DIFF4_1    eval:multipart_alternative_difference_count('4','1')
+body T_MPART_ALT_DIFF5_1    eval:multipart_alternative_difference_count('5','1')
+body T_MPART_ALT_DIFF8_1    eval:multipart_alternative_difference_count('8','1')
+body T_MPART_ALT_DIFF10_1   eval:multipart_alternative_difference_count('10','1')
+
+body T_MPART_ALT_DIFF1_5    eval:multipart_alternative_difference_count('1','5')
+body T_MPART_ALT_DIFF2_5    eval:multipart_alternative_difference_count('2','5')
+body T_MPART_ALT_DIFF3_5    eval:multipart_alternative_difference_count('3','5')
+body T_MPART_ALT_DIFF4_5    eval:multipart_alternative_difference_count('4','5')
+body T_MPART_ALT_DIFF5_5    eval:multipart_alternative_difference_count('5','5')
+body T_MPART_ALT_DIFF8_5    eval:multipart_alternative_difference_count('8','5')
+body T_MPART_ALT_DIFF10_5   eval:multipart_alternative_difference_count('10','5')
+
+body T_MPART_ALT_DIFF1_10   eval:multipart_alternative_difference_count('1','10')
+body T_MPART_ALT_DIFF2_10   eval:multipart_alternative_difference_count('2','10')
+body T_MPART_ALT_DIFF3_10   eval:multipart_alternative_difference_count('3','10')
+body T_MPART_ALT_DIFF4_10   eval:multipart_alternative_difference_count('4','10')
+body T_MPART_ALT_DIFF5_10   eval:multipart_alternative_difference_count('5','10')
+body T_MPART_ALT_DIFF8_10   eval:multipart_alternative_difference_count('8','10')
+body T_MPART_ALT_DIFF10_10  eval:multipart_alternative_difference_count('10','10')
+
+body T_MPART_ALT_DIFF1_20   eval:multipart_alternative_difference_count('1','20')
+body T_MPART_ALT_DIFF2_20   eval:multipart_alternative_difference_count('2','20')
+body T_MPART_ALT_DIFF3_20   eval:multipart_alternative_difference_count('3','20')
+body T_MPART_ALT_DIFF4_20   eval:multipart_alternative_difference_count('4','20')
+body T_MPART_ALT_DIFF5_20   eval:multipart_alternative_difference_count('5','20')
+body T_MPART_ALT_DIFF8_20   eval:multipart_alternative_difference_count('8','20')
+body T_MPART_ALT_DIFF10_20  eval:multipart_alternative_difference_count('10','20')