You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(160) |
Mar
(119) |
Apr
(111) |
May
(118) |
Jun
(101) |
Jul
(304) |
Aug
(113) |
Sep
(140) |
Oct
(137) |
Nov
(87) |
Dec
(122) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(78) |
Feb
(125) |
Mar
(131) |
Apr
(59) |
May
(121) |
Jun
(166) |
Jul
(150) |
Aug
(137) |
Sep
(73) |
Oct
(58) |
Nov
(27) |
Dec
(60) |
| 2005 |
Jan
(131) |
Feb
(84) |
Mar
(36) |
Apr
(8) |
May
(28) |
Jun
(20) |
Jul
(10) |
Aug
(72) |
Sep
(76) |
Oct
(34) |
Nov
(3) |
Dec
(29) |
| 2006 |
Jan
(13) |
Feb
(92) |
Mar
(7) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(17) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(12) |
| 2007 |
Jan
(28) |
Feb
(15) |
Mar
|
Apr
|
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(8) |
Sep
(20) |
Oct
(38) |
Nov
(65) |
Dec
(92) |
| 2008 |
Jan
(21) |
Feb
(56) |
Mar
(27) |
Apr
(174) |
May
(25) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <jgr...@us...> - 2003-07-27 19:07:23
|
Update of /cvsroot/popfile/engine/tests/corpus.base/personal In directory sc8-pr-cvs1:/tmp/cvs-serv23853/tests/corpus.base/personal Modified Files: magnets Log Message: More tests for Bayes covering the reading and writing of history class files and other miscellanea Index: magnets =================================================================== RCS file: /cvsroot/popfile/engine/tests/corpus.base/personal/magnets,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** magnets 27 Jul 2003 18:28:56 -0000 1.1 --- magnets 27 Jul 2003 19:07:20 -0000 1.2 *************** *** 2,4 **** to ba...@ba... from foo ! from oldstyle --- 2,4 ---- to ba...@ba... from foo ! oldstyle |
|
From: <jgr...@us...> - 2003-07-27 19:07:23
|
Update of /cvsroot/popfile/engine/Classifier
In directory sc8-pr-cvs1:/tmp/cvs-serv23853/Classifier
Modified Files:
Bayes.pm
Log Message:
More tests for Bayes covering the reading and writing of history class files and other miscellanea
Index: Bayes.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v
retrieving revision 1.174
retrieving revision 1.175
diff -C2 -d -r1.174 -r1.175
*** Bayes.pm 27 Jul 2003 18:26:14 -0000 1.174
--- Bayes.pm 27 Jul 2003 19:07:20 -0000 1.175
***************
*** 188,193 ****
if ( $type eq 'CLASS' ) {
! $self->set_bucket_parameter( $message, 'count',
! $self->get_bucket_parameter( $message, 'count' ) + 1 );
$self->write_parameters();
}
--- 188,192 ----
if ( $type eq 'CLASS' ) {
! $self->set_bucket_parameter( $message, 'count', $self->get_bucket_parameter( $message, 'count' ) + 1 );
$self->write_parameters();
}
***************
*** 381,394 ****
if ( $color eq '' ) {
! if ( $c <= $#{$self->{possible_colors__}} ) {
! $self->{colors__}{$bucket} = $self->{possible_colors__}[$c];
! } else {
! $self->{colors__}{$bucket} = 'black';
! }
} else {
$self->{colors__}{$bucket} = $color;
}
! $c += 1;
}
--- 380,389 ----
if ( $color eq '' ) {
! $self->{colors__}{$bucket} = $self->{possible_colors__}[$c];
} else {
$self->{colors__}{$bucket} = $color;
}
! $c = ($c+1) % $#{$self->{possible_colors__}};
}
***************
*** 492,502 ****
if ( open WORDS, '<' . $self->config_( 'corpus' ) . "/$bucket/table" ) {
my $first = <WORDS>;
! if ( $first =~ s/^__CORPUS__ __VERSION__ (\d+)// ) {
if ( $1 != $self->{corpus_version__} ) {
! print "Incompatible corpus version in $bucket\n";
! return;
}
} else {
! return;
}
--- 487,497 ----
if ( open WORDS, '<' . $self->config_( 'corpus' ) . "/$bucket/table" ) {
my $first = <WORDS>;
! if ( defined( $first ) && ( $first =~ s/^__CORPUS__ __VERSION__ (\d+)// ) ) {
if ( $1 != $self->{corpus_version__} ) {
! print STDERR "Incompatible corpus version in $bucket\n";
! return 0;
}
} else {
! return 0;
}
***************
*** 522,525 ****
--- 517,522 ----
$self->calculate_magnet_count__();
+
+ return 1;
}
***************
*** 882,893 ****
if ( defined( $magnet ) && ( $magnet ne '' ) ) {
print CLASS "$bucket MAGNET $magnet\n";
- } elsif (defined $reclassified && $reclassified == 1) {
- print CLASS "RECLASSIFIED\n";
- print CLASS "$bucket\n";
- if ( defined( $usedtobe ) && ( $usedtobe ne '' ) ) {
- print CLASS "$usedtobe\n";
- }
} else {
! print CLASS "$bucket\n";
}
--- 879,892 ----
if ( defined( $magnet ) && ( $magnet ne '' ) ) {
print CLASS "$bucket MAGNET $magnet\n";
} else {
! if ( defined( $reclassified ) && ( $reclassified == 1 ) ) {
! print CLASS "RECLASSIFIED\n";
! print CLASS "$bucket\n";
! if ( defined( $usedtobe ) && ( $usedtobe ne '' ) ) {
! print CLASS "$usedtobe\n";
! }
! } else {
! print CLASS "$bucket\n";
! }
}
***************
*** 897,901 ****
# ---------------------------------------------------------------------------------------------
#
! # history_load_class - load the class file for a message.
#
# returns: ( reclassified, bucket, usedtobe, magnet )
--- 896,900 ----
# ---------------------------------------------------------------------------------------------
#
! # history_read_class - load the class file for a message.
#
# returns: ( reclassified, bucket, usedtobe, magnet )
***************
*** 909,913 ****
#
# ---------------------------------------------------------------------------------------------
! sub history_load_class
{
my ( $self, $filename ) = @_;
--- 908,912 ----
#
# ---------------------------------------------------------------------------------------------
! sub history_read_class
{
my ( $self, $filename ) = @_;
***************
*** 938,941 ****
--- 937,942 ----
} else {
$self->log_( "Error: " . $self->global_config_( 'msgdir' ) . "$filename: $!" );
+
+ return ( undef, undef, undef, undef );
}
return ( $reclassified, $bucket, $usedtobe, $magnet );
***************
*** 1865,1868 ****
--- 1866,1870 ----
delete $self->{magnets__};
+ $self->calculate_magnet_count__();
}
|
|
From: <jgr...@us...> - 2003-07-27 18:54:19
|
Update of /cvsroot/popfile/engine/tests/messages In directory sc8-pr-cvs1:/tmp/cvs-serv21307/tests/messages Log Message: Directory /cvsroot/popfile/engine/tests/messages added to the repository |
|
From: <jgr...@us...> - 2003-07-27 18:28:59
|
Update of /cvsroot/popfile/engine/tests/corpus.base/personal In directory sc8-pr-cvs1:/tmp/cvs-serv17217/tests/corpus.base/personal Added Files: color magnets params table Log Message: Added sample base corpus for test suite --- NEW FILE: color --- green --- NEW FILE: magnets --- subject bar to ba...@ba... from foo from oldstyle --- NEW FILE: params --- count 0 subject 1 quarantine 0 --- NEW FILE: table --- __CORPUS__ __VERSION__ 1 foo 1 bar 2 baz 100 |
|
From: <jgr...@us...> - 2003-07-27 18:28:59
|
Update of /cvsroot/popfile/engine/tests/corpus.base/spam In directory sc8-pr-cvs1:/tmp/cvs-serv17217/tests/corpus.base/spam Added Files: magnets params table Log Message: Added sample base corpus for test suite --- NEW FILE: magnets --- --- NEW FILE: params --- count 0 subject 1 quarantine 0 --- NEW FILE: table --- __CORPUS__ __VERSION__ 1 diane 3 quy 1 gvcafitaqu 1 to:zaw 1 issue 4 email 17 million 15 mmummammym 1 taken 1 subject:broadband 1 www.supersizewebhosting.com 11 lwzhbwlsetoi 1 what 13 eyeful 1 shown 3 matters 1 threshold 4 jvc 1 [...3320 lines suppressed...] help 8 ieooui 1 picture 3 dxqtz 1 first 8 wchqnpg 2 requests 1 scene 4 seriously 3 financiers 1 biu 1 ersary 1 lukes 1 roundtable 2 jennifer 1 structure 3 oaa 2 tak...@ma... 1 totally 1 pzgvvz 2 |
|
From: <jgr...@us...> - 2003-07-27 18:28:59
|
Update of /cvsroot/popfile/engine/tests/corpus.base/other In directory sc8-pr-cvs1:/tmp/cvs-serv17217/tests/corpus.base/other Added Files: color magnets params table Log Message: Added sample base corpus for test suite --- NEW FILE: color --- --- NEW FILE: magnets --- --- NEW FILE: params --- dummy2 0 count 0 subject 1 quarantine 0 --- NEW FILE: table --- __CORPUS__ __VERSION__ 1 delivery 1 longer 1 email 6 djacobson 1 10.21.7.10 1 backroom 2 january 3 what 3 them 2 confirmation 1 listed 1 used 1 again 1 he.net 6 matters 1 system 2 wall 2 month 2 still 1 serv 1 verio 1 to:listserv.dowjones.com 2 much 1 closing 1 act 1 when 4 access 1 every 2 where 1 automatic 1 newsletter 2 way 3 invite 1 bit 1 mybackroom.securesites.com 1 windows 2 lifetime 1 comments 1 july 2 appears 1 commentary 1 future 3 subject:pafff.org 1 subscription 2 privacy 1 helps 1 sincerely 1 links 1 refer 1 fo-exchange.accel.com 2 marketplace 2 very 2 only 1 copylinks 1 finance 2 different 1 thank 3 from:se...@ve... 1 san 1 calling 1 terms 4 attached 2 pumper 1 care 1 remaining 1 192.168.172.22 1 check 3 team-center.net 1 termslinks 1 personalization 1 produced 2 nature 1 host 2 there 1 listserv.dowjones.com 4 quick 2 market 2 popular 1 numbers 3 owe 2 secure 1 sign 4 finds 1 subject:weekend 1 shipment 1 guest 3 sedlock 1 conditions 3 family 6 arial 6 from:guest 1 number 1 visit 2 case 7 advanced 2 good 4 summary 1 subject:cobra 1 journal's 1 asin 1 journal 9 info 1 slight 1 from:sta...@sp... 1 account 3 purchase 3 organized 1 now 1 qaa 1 then 1 sold 4 hear 1 item 4 stays 1 cust 1 dhr 1 pafff.org 1 about 1 mst 3 exec 3 john 6 ids03.team-center.net 1 win 1 barron's 2 scratches 1 shopkeepers 1 their 1 away 1 price 2 best 1 direct 2 even 1 contact 5 charset:us-ascii 1 unknown 1 should 2 included 2 cafepress 1 from:deb 1 together 1 original 2 quantity 2 dowjones.com 4 jaa 1 format 1 viewed 1 to:new 1 shaping 1 normal 2 html:td 397 file 1 password 3 required 1 copyterms 1 keep 2 ids 2 canada 1 products 1 due 1 personalize 2 subject:cafepress.com 1 analysis 1 earning 1 final 1 urn 2 westin 8 213.38.80.6 6 fixed 1 already 1 dear 3 ids.rapidsite.net 1 think 1 operation 2 unfortunately 1 207.171.187.129 1 to:onl...@ws... 1 golden 1 bold 1 departments 1 marie 1 online 12 tips 2 click 5 ridgeway 1 extravalent.com 6 exchange 2 subscriber 2 redesigned 1 subject:marketplace 1 like 3 got 1 portfolios 1 francisco 1 aspx 2 mail2.cafepress.com 3 enhancements 1 busily 1 i'm 1 receive 4 ave 1 insightful 1 taa 1 additional 1 subject:case 1 subscribed 1 earth's 1 automated 1 include 2 summaries 1 same 1 from:re...@ca... 1 free 2 low 1 company 1 tracy 1 make 2 under 4 features 1 to:subscriber 1 from:mar...@am... 1 preferred 4 alphabetical 1 through 3 easy 1 please 8 communicate 1 happy 1 cash 1 to:fee...@li... 2 funds 1 subject:online 1 rise 1 filetime 1 take 2 from:starwood.com 1 worldwide 1 subject:wall 1 tool 1 sent 5 buys 1 shipping 2 line 1 based 1 join 1 opened 1 dial 1 smtpsvc 1 claimed 2 here 6 eat 1 161.58.231.114 1 credits 1 catalog 1 registration 1 wsj.com 8 web 1 starwood.com 18 text 1 graham 3 home 3 accessed 1 set 1 www.barrons.com 1 hotels 2 payment 1 vanyel 14 device 1 14....@li... 1 subject:about 1 finally 1 plus 2 plug 1 financial 1 buyers 2 forgotten 1 made 2 encoding:quotedprintable 1 ensure 1 page 6 friends 2 need 5 authorization 1 soon 2 interface 2 buyer 2 from:automatic 1 rates 4 else 1 outside 1 such 2 cancel 2 sunday 1 benefits 1 played 1 to:dowjones.com 2 herald 14 anticipate 1 current 1 article 1 begin 1 routing 1 that's 1 naa 1 archive 1 credit 3 than 2 convenient 1 loaf 1 reply 1 june 3 just 1 jeff 1 sensitive 1 book 2 indicated 1 these 1 department 2 put 1 subject:ids 1 sta...@sp... 1 print 1 see 3 program 1 statement 1 atlanta 1 business 4 verdana 3 spg.starwood.com 18 palo 1 locations 1 vwh.net 3 from:accel.com 1 member 1 letter 2 anon.doubleclick.speedera.net 49 selling 3 earn 1 technology 1 rest 2 time 4 microsoft 4 endless 1 fax 1 mimeole 2 commission 1 regular 1 assistance 1 subject:rates 1 deb 6 retrieve 1 shortly 1 subject:confirmation 1 barrons.com 1 saturday 1 throughout 1 remove 1 review 2 you'll 4 leisure 1 footer 1 copy 1 feature 2 order 2 user 2 bruce 2 following 3 sorry 1 #666666 1 friday 5 enjoy 1 data 1 total 1 updates 2 varzea 1 to:interactive 1 nohdr.ids.rapidsite.net 1 obidos 2 support 1 jgc 1 midnight 1 128.242.54.146 1 copley 1 get 7 subject:endless 1 jg...@ex... 6 including 1 jacobson 4 out5smtp8.ddc.dartmail.net 2 five 1 back 2 phone 4 plaza 1 product 1 complete 3 know 4 starwood 6 content 3 children 2 optout 1 monday 3 partners 1 day 3 encourage 1 amazon 5 list 4 hours 4 second 1 lsmtp 1 difference 1 s1.amazon.com 1 concise 1 cumming 3 thereafter 1 tell 2 glance 1 pages 3 boston 1 from:starwood 1 core 1 peachtree 1 follows 1 section 2 checking 1 size 6 someone 1 bad 1 sections 1 able 1 create 1 geneva 3 companies 1 bottom 1 days 5 to:wsj.com 3 sells 2 setup 3 www.cafepress.com 2 veriohosting.com 2 don't 3 since 1 street 2 dja...@ac... 1 subject:welcome 1 sell 2 useful 1 walnut.he.net 6 new 4 updated 1 amazon.com 13 cobra 6 recently 2 service 7 involved 1 ways 1 whichever 1 united 1 other 1 cdo 1 browse 1 completely 3 send 5 states 1 audio 1 fpw 1 use 3 subject:when 1 aaa 1 call 1 francis 1 university 1 classes 2 listserv 1 feeling 1 week 2 until 2 chance 1 subject:street 1 visiting 1 items 1 markets 1 another 1 thanks 2 www.accel.com 1 late 1 didn't 1 two 1 to:john 2 we'll 3 save 2 subject:amazon 1 buyer's 1 view 4 onl...@ws... 1 accel.com 5 always 3 portfolio 1 resorts 2 each 2 name 2 details 2 ship 3 simply 1 appear 2 wish 2 speedera.net 49 ddc.dartmail.net 2 role 1 from:onl...@ws... 1 start 2 box 2 exploring 1 mainpage 1 teams 1 128.242.99.77 2 hope 3 mobile 1 from:preferred 1 subject:earn 1 208.144.115.182 1 edition 1 powerful 1 creditcard 1 scott 1 ma...@in... 1 cafeshops.com 1 alerts 1 easier 2 utc 1 65.205.209.233 2 checkout 1 right 1 within 4 maico.amazon.com 3 necessary 1 subject:journal 1 sellers 1 you'd 1 jgc.org 3 easily 1 rapidsite.net 1 opinion 1 biggest 1 weight 1 publisher 1 comes 1 exclusive 2 rapidsite.vwh.net 3 full 1 referring 1 doubleclick.speedera.net 49 securesites.com 1 card 2 changed 1 fees 1 from:router 1 schulman 1 from:dja...@ac... 1 enhanced 1 lot 1 they 1 eba 1 untitled 1 crazy 1 money 3 accel 4 re...@ca... 1 #ffffff 4 from:wsj.com 1 cafepress.com 7 available 3 from:veriohosting.com 1 store 2 from:amazon.com 2 subject:westin 1 office 1 well 2 via 1 customer 7 meatloaf 1 recent 1 news 3 meat 1 condition 1 encoding:7bit 2 sales 1 entire 1 url 1 216.73.90.58 1 seller 2 prefer 1 perform 1 startup 1 according 1 alto 1 one 2 wednesday 1 tour 3 site's 1 purchased 1 welcome 2 remain 2 friend 4 luck 1 options 1 conscience 1 find 5 ae-online-104.amazon.com 2 subject:friend 1 selection 1 dartmail.net 2 from:spg.starwood.com 1 online.wsj.com 5 from:cafepress.com 2 linked 1 stay 2 site 3 live 1 more 5 billing 1 subscribers 3 search 3 standard 1 www.amazon.com 3 pickup 1 promotional 2 we've 3 let 3 zshops 1 to:graham 2 trying 1 regarding 3 delighted 1 expected 1 processed 1 main 1 saa 1 referral 1 subject:tell 1 major 1 from:jacobson 1 detailed 1 weekend 4 most 2 place 1 forget 1 look 1 confirm 1 blue 1 early 1 above 1 help 3 first 3 information 5 lisa 1 industries 1 mails 2 |
|
From: <jgr...@us...> - 2003-07-27 18:26:18
|
Update of /cvsroot/popfile/engine/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv16677/tests
Modified Files:
TestBayes.tst TestMailParse.tst
Log Message:
Completed tests for the public API in Bayes
Index: TestBayes.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** TestBayes.tst 27 Jul 2003 15:42:43 -0000 1.15
--- TestBayes.tst 27 Jul 2003 18:26:14 -0000 1.16
***************
*** 7,10 ****
--- 7,16 ----
# ---------------------------------------------------------------------------------------------
+ test_assert( `rm -rf corpus` == 0 );
+ test_assert( `cp -R corpus.base corpus` == 0 );
+
+ unlink 'stopwords';
+ test_assert( `cp stopwords.base stopwords` == 0 );
+
use Classifier::Bayes;
use POPFile::Configuration;
***************
*** 278,281 ****
--- 284,361 ----
close FILE;
+ # create_magnet
+
+ test_assert_equal( $b->magnet_count(), 4 );
+ $b->create_magnet( 'zeotrope', 'from', 'francis' );
+ test_assert_equal( $b->magnet_count(), 5 );
+
+ # get_buckets_with_magnets
+
+ my @mags = $b->get_buckets_with_magnets();
+ test_assert_equal( $#mags, 1 );
+ test_assert_equal( $mags[0], 'personal' );
+ test_assert_equal( $mags[1], 'zeotrope' );
+
+ # get_magnet_type_in_bucket
+
+ my @types = $b->get_magnet_types_in_bucket( 'zeotrope' );
+ test_assert_equal( $#types, 0 );
+ test_assert_equal( $types[0], 'from' );
+
+ @types = $b->get_magnet_types_in_bucket( 'personal' );
+ test_assert_equal( $#types, 2 );
+ test_assert_equal( $types[0], 'from' );
+ test_assert_equal( $types[1], 'subject' );
+ test_assert_equal( $types[2], 'to' );
+
+ # get_magnets
+
+ my @magnets = $b->get_magnets( 'zeotrope', 'from' );
+ test_assert_equal( $#magnets, 0 );
+ test_assert_equal( $magnets[0], 'francis' );
+
+ @magnets = $b->get_magnets( 'personal', 'from' );
+ test_assert_equal( $#magnets, 1 );
+ test_assert_equal( $magnets[0], 'foo' );
+ test_assert_equal( $magnets[1], 'oldstyle' );
+ @magnets = $b->get_magnets( 'personal', 'to' );
+ test_assert_equal( $#magnets, 0 );
+ test_assert_equal( $magnets[0], 'ba...@ba...' );
+ @magnets = $b->get_magnets( 'personal', 'subject' );
+ test_assert_equal( $#magnets, 0 );
+ test_assert_equal( $magnets[0], 'bar' );
+
+ # get_magnet_types
+
+ my %mtypes = $b->get_magnet_types();
+ my @mkeys = keys %mtypes;
+ test_assert_equal( $#mkeys, 3 );
+ test_assert_equal( $mtypes{from}, 'From' );
+ test_assert_equal( $mtypes{to}, 'To' );
+ test_assert_equal( $mtypes{subject}, 'Subject' );
+ test_assert_equal( $mtypes{cc}, 'Cc' );
+
+ # delete_magnet
+
+ $b->delete_magnet( 'zeotrope', 'from', 'francis' );
+ test_assert_equal( $b->magnet_count(), 4 );
+
+ @mags = $b->get_buckets_with_magnets();
+ test_assert_equal( $#mags, 0 );
+ test_assert_equal( $mags[0], 'personal' );
+
+ # clear_bucket
+
+ $b->clear_bucket( 'zeotrope' );
+ test_assert( !( -e 'corpus/zeotrope/table' ) );
+ test_assert_equal( $b->get_bucket_word_count('zeotrope'), 0 );
+
+ # clear_magnets
+
+ $b->clear_magnets();
+ test_assert_equal( $b->magnet_count(), 4 );
+ @mags = $b->get_buckets_with_magnets();
+ test_assert_equal( $#mags, -1 );
+
# delete_bucket
***************
*** 291,296 ****
test_assert_equal( $buckets[2], 'spam' );
-
-
# getting and setting values
--- 371,374 ----
***************
*** 362,365 ****
--- 440,476 ----
}
}
+
+ # tests for stopwords API
+
+ unlink 'stopwords';
+ open FILE, ">stopwords";
+ print FILE "notthis\nandnotthat\n";
+ close FILE;
+
+ $b->{parser__}->{mangle__}->load_stopwords();
+
+ # get_stopword_list
+
+ my @stopwords = $b->get_stopword_list();
+ test_assert_equal( $#stopwords, 1 );
+ test_assert_equal( $stopwords[0], 'notthis' );
+ test_assert_equal( $stopwords[1], 'andnotthat' );
+
+ # add_stopword
+
+ test_assert( $b->add_stopword( 'northat' ) );
+ @stopwords = $b->get_stopword_list();
+ test_assert_equal( $#stopwords, 2 );
+ test_assert_equal( $stopwords[0], 'northat' );
+ test_assert_equal( $stopwords[1], 'notthis' );
+ test_assert_equal( $stopwords[2], 'andnotthat' );
+
+ # remove_stopword
+
+ test_assert( $b->remove_stopword( 'northat' ) );
+ @stopwords = $b->get_stopword_list();
+ test_assert_equal( $#stopwords, 1 );
+ test_assert_equal( $stopwords[0], 'notthis' );
+ test_assert_equal( $stopwords[1], 'andnotthat' );
# TODO test that stop writes the parameters to disk
Index: TestMailParse.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse.tst,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** TestMailParse.tst 27 Jul 2003 01:37:58 -0000 1.16
--- TestMailParse.tst 27 Jul 2003 18:26:14 -0000 1.17
***************
*** 8,12 ****
unlink 'stopwords';
! `cp stopwords.base stopwords`;
use Classifier::MailParse;
--- 8,12 ----
unlink 'stopwords';
! test_assert( `cp stopwords.base stopwords` == 0 );
use Classifier::MailParse;
|
|
From: <jgr...@us...> - 2003-07-27 18:26:18
|
Update of /cvsroot/popfile/engine/Devel
In directory sc8-pr-cvs1:/tmp/cvs-serv16677/Devel
Modified Files:
TestCoverage.pm
Log Message:
Completed tests for the public API in Bayes
Index: TestCoverage.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Devel/TestCoverage.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** TestCoverage.pm 26 Jul 2003 18:28:27 -0000 1.10
--- TestCoverage.pm 27 Jul 2003 18:26:14 -0000 1.11
***************
*** 19,22 ****
--- 19,24 ----
BEGIN
{
+ unlink 'tests/*.lne';
+
# We want to look inside subroutines so tell the debugger to trace into
# them
|
|
From: <jgr...@us...> - 2003-07-27 18:26:18
|
Update of /cvsroot/popfile/engine/Classifier
In directory sc8-pr-cvs1:/tmp/cvs-serv16677/Classifier
Modified Files:
Bayes.pm
Log Message:
Completed tests for the public API in Bayes
Index: Bayes.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v
retrieving revision 1.173
retrieving revision 1.174
diff -C2 -d -r1.173 -r1.174
*** Bayes.pm 27 Jul 2003 15:42:42 -0000 1.173
--- Bayes.pm 27 Jul 2003 18:26:14 -0000 1.174
***************
*** 1804,1808 ****
my ( $self ) = @_;
! return sort keys %{$self->{magnets__}};
}
--- 1804,1818 ----
my ( $self ) = @_;
! my @buckets;
!
! foreach my $b (sort keys %{$self->{magnets__}}) {
! my @keys = keys %{$self->{magnets__}{$b}};
!
! if ( $#keys >= 0 ) {
! push @buckets, ($b);
! }
! }
!
! return @buckets;
}
***************
*** 1903,1910 ****
sub get_magnet_types
{
! return ( 'from' => 'From',
'to' => 'To',
'subject' => 'Subject',
! 'cc' => 'Cc' );
}
--- 1913,1920 ----
sub get_magnet_types
{
! return ( 'from' => 'From', # PROFILE BLOCK START
'to' => 'To',
'subject' => 'Subject',
! 'cc' => 'Cc' ); # PROFILE BLOCK STOP
}
***************
*** 1925,1928 ****
--- 1935,1954 ----
delete $self->{magnets__}{$bucket}{$type}{$text};
+
+ # Now check to see if there are any magnets left of that type
+
+ my @keys = keys %{$self->{magnets__}{$bucket}{$type}};
+ if ( $#keys == -1 ) {
+ delete $self->{magnets__}{$bucket}{$type};
+
+ # Now check to see if this bucket has any magnets
+
+ @keys = keys %{$self->{magnets__}{$bucket}};
+
+ if ( $#keys == -1 ) {
+ delete $self->{magnets__}{$bucket};
+ }
+ }
+
$self->save_magnets__();
$self->calculate_magnet_count__();
|
|
From: <jgr...@us...> - 2003-07-27 18:10:25
|
Update of /cvsroot/popfile/engine/tests/corpus.base/spam In directory sc8-pr-cvs1:/tmp/cvs-serv8982/corpus.base/spam Log Message: Directory /cvsroot/popfile/engine/tests/corpus.base/spam added to the repository |
|
From: <jgr...@us...> - 2003-07-27 18:10:25
|
Update of /cvsroot/popfile/engine/tests/corpus.base/personal In directory sc8-pr-cvs1:/tmp/cvs-serv8982/corpus.base/personal Log Message: Directory /cvsroot/popfile/engine/tests/corpus.base/personal added to the repository |
|
From: <jgr...@us...> - 2003-07-27 18:10:25
|
Update of /cvsroot/popfile/engine/tests/corpus.base/other In directory sc8-pr-cvs1:/tmp/cvs-serv8982/corpus.base/other Log Message: Directory /cvsroot/popfile/engine/tests/corpus.base/other added to the repository |
|
From: <jgr...@us...> - 2003-07-27 18:10:25
|
Update of /cvsroot/popfile/engine/tests/corpus.base In directory sc8-pr-cvs1:/tmp/cvs-serv8982/corpus.base Log Message: Directory /cvsroot/popfile/engine/tests/corpus.base added to the repository |
|
From: <jgr...@us...> - 2003-07-27 15:42:46
|
Update of /cvsroot/popfile/engine/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv17399/tests
Modified Files:
TestBayes.tst
Log Message:
More tests for Classifier::Bayes to cover adding and removing messages in a bucket
Index: TestBayes.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** TestBayes.tst 27 Jul 2003 01:37:58 -0000 1.14
--- TestBayes.tst 27 Jul 2003 15:42:43 -0000 1.15
***************
*** 57,61 ****
# get_bucket_word_list
! # TODO
# get_word_count
--- 57,64 ----
# get_bucket_word_list
! my @words = $b->get_bucket_word_list( 'personal' );
! test_assert_equal( $#words, 1 );
! test_assert_equal( $words[0], '|bar 2||baz 100|' );
! test_assert_equal( $words[1], '|foo 1|' );
# get_word_count
***************
*** 186,197 ****
--- 189,281 ----
$line = <FILE>;
test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
+ $line = <FILE>;
+ test_assert( !defined( $line ) );
close FILE;
# add_message_to_bucket
+ my %words;
+
+ open WORDS, "<TestMailParse021.wrd";
+ while ( <WORDS> ) {
+ if ( /(.+) (\d+)/ ) {
+ $words{$1} = $2;
+ }
+ }
+ close WORDS;
+
+ test_assert( !$b->add_message_to_bucket( 'none', 'TestMailParse021.msg' ) );
+ test_assert( $b->add_message_to_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+ open FILE, "<corpus/zeotrope/table";
+ $line = <FILE>;
+ test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
+ while ( <FILE> ) {
+ if ( /(.+) (\d+)/ ) {
+ test_assert_equal( $words{$1}, $2, "zeotrope: $1 $2 $words{$1}" );
+ }
+ }
+ close FILE;
+
+ test_assert( $b->add_message_to_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+
+ open FILE, "<corpus/zeotrope/table";
+ $line = <FILE>;
+ test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
+ while ( <FILE> ) {
+ if ( /(.+) (\d+)/ ) {
+ test_assert_equal( ($words{$1}*2), $2, "zeotrope: $1 $2 $words{$1}" );
+ }
+ }
+ close FILE;
+
# remove_message_from_bucket
+ test_assert( !$b->remove_message_from_bucket( 'none', 'TestMailParse021.msg' ) );
+ test_assert( $b->remove_message_from_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+ test_assert( $b->remove_message_from_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+
+ open FILE, "<corpus/zeotrope/table";
+ $line = <FILE>;
+ test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
+ $line = <FILE>;
+ test_assert( !defined( $line ) );
+ close FILE;
+
# add_messages_to_bucket
+ test_assert( $b->add_message_to_bucket( 'zeotrope', [ 'TestMailParse021.msg', 'TestMailParse021.msg' ] ) );
+
+ open FILE, "<corpus/zeotrope/table";
+ $line = <FILE>;
+ test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
+ while ( <FILE> ) {
+ if ( /(.+) (\d+)/ ) {
+ test_assert_equal( ($words{$1}*2), $2, "zeotrope: $1 $2 $words{$1}" );
+ }
+ }
+ close FILE;
+
+ # Test corrupting the corpus
+
+ open FILE, ">corpus/zeotrope/table";
+ print FILE "__CORPUS__ __VERSION__ 2\n";
+ close FILE;
+
+ open STDERR, ">temp.tmp";
+ test_assert( !$b->add_message_to_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+ close STDERR;
+ open FILE, "<temp.tmp";
+ $line = <FILE>;
+ test_assert_regexp( $line, 'Incompatible corpus version in zeotrope' );
+ close FILE;
+
+ open STDERR, ">temp.tmp";
+ test_assert( !$b->remove_message_from_bucket( 'zeotrope', 'TestMailParse021.msg' ) );
+ close STDERR;
+ open FILE, "<temp.tmp";
+ $line = <FILE>;
+ test_assert_regexp( $line, 'Incompatible corpus version in zeotrope' );
+ close FILE;
+
# delete_bucket
***************
*** 210,213 ****
--- 294,298 ----
# getting and setting values
+
test_assert_equal( $b->get_value_( 'personal', 'foo' ), log(1/103) );
$b->{total__}{personal} = 100;
|
|
From: <jgr...@us...> - 2003-07-27 15:42:46
|
Update of /cvsroot/popfile/engine/UI
In directory sc8-pr-cvs1:/tmp/cvs-serv17399/UI
Modified Files:
HTML.pm
Log Message:
More tests for Classifier::Bayes to cover adding and removing messages in a bucket
Index: HTML.pm
===================================================================
RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v
retrieving revision 1.185
retrieving revision 1.186
diff -C2 -d -r1.185 -r1.186
*** HTML.pm 26 Jul 2003 23:52:44 -0000 1.185
--- HTML.pm 27 Jul 2003 15:42:42 -0000 1.186
***************
*** 2918,2922 ****
if ( defined( $usedtobe ) ) {
! $self->{classifier__}->remove_message_from_bucket($self->global_config_( 'msgdir' ) . $mail_file, $bucket);
$self->log_( "Undoing $mail_file from $bucket to $usedtobe" );
--- 2918,2922 ----
if ( defined( $usedtobe ) ) {
! $self->{classifier__}->remove_message_from_bucket( $bucket, $self->global_config_( 'msgdir' ) . $mail_file);
$self->log_( "Undoing $mail_file from $bucket to $usedtobe" );
|
|
From: <jgr...@us...> - 2003-07-27 15:42:45
|
Update of /cvsroot/popfile/engine/Classifier
In directory sc8-pr-cvs1:/tmp/cvs-serv17399/Classifier
Modified Files:
Bayes.pm
Log Message:
More tests for Classifier::Bayes to cover adding and removing messages in a bucket
Index: Bayes.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v
retrieving revision 1.172
retrieving revision 1.173
diff -C2 -d -r1.172 -r1.173
*** Bayes.pm 27 Jul 2003 01:37:58 -0000 1.172
--- Bayes.pm 27 Jul 2003 15:42:42 -0000 1.173
***************
*** 1283,1291 ****
my ( $self, $bucket ) = @_;
if ( $self->get_bucket_word_count( $bucket ) > 0 ) {
! return $self->{matrix__}{$bucket};
! } else {
! return ();
}
}
--- 1283,1299 ----
my ( $self, $bucket ) = @_;
+ my @result;
+
if ( $self->get_bucket_word_count( $bucket ) > 0 ) {
! my @entries = @{$self->{matrix__}{$bucket}};
!
! for my $i (0..$#entries) {
! if ( defined( $entries[$i] ) && ( $entries[$i] ne '' ) ) {
! push @result, ($entries[$i]);
! }
! }
}
+
+ return @result;
}
***************
*** 1537,1541 ****
if ( !defined( $self->{total__}{$bucket} ) ) {
! return;
}
--- 1545,1549 ----
if ( !defined( $self->{total__}{$bucket} ) ) {
! return 0;
}
***************
*** 1546,1551 ****
if ( /__CORPUS__ __VERSION__ (\d+)/ ) {
if ( $1 != $self->{corpus_version__} ) {
! print "Incompatible corpus version in $bucket\n";
! return;
}
--- 1554,1560 ----
if ( /__CORPUS__ __VERSION__ (\d+)/ ) {
if ( $1 != $self->{corpus_version__} ) {
! print STDERR "Incompatible corpus version in $bucket\n";
! close WORDS;
! return 0;
}
***************
*** 1578,1582 ****
print WORDS "__CORPUS__ __VERSION__ 1\n";
foreach my $word (sort keys %words) {
! print WORDS "$word $words{$word}\n";
}
close WORDS;
--- 1587,1593 ----
print WORDS "__CORPUS__ __VERSION__ 1\n";
foreach my $word (sort keys %words) {
! if ( $words{$word} != 0 ) {
! print WORDS "$word $words{$word}\n";
! }
}
close WORDS;
***************
*** 1584,1587 ****
--- 1595,1600 ----
$self->load_word_matrix_();
+
+ return 1;
}
***************
*** 1592,1604 ****
# Parses a mail message and updates the statistics in the specified bucket
#
- # $file Name of file containing mail message to parse
# $bucket Name of the bucket to be updated
#
# ---------------------------------------------------------------------------------------------
sub add_message_to_bucket
{
! my ( $self, $file, $bucket ) = @_;
! $self->add_messages_to_bucket( $bucket, $file );
}
--- 1605,1617 ----
# Parses a mail message and updates the statistics in the specified bucket
#
# $bucket Name of the bucket to be updated
+ # $file Name of file containing mail message to parse
#
# ---------------------------------------------------------------------------------------------
sub add_message_to_bucket
{
! my ( $self, $bucket, $file ) = @_;
! return $self->add_messages_to_bucket( $bucket, $file );
}
***************
*** 1609,1619 ****
# Parses a mail message and updates the statistics in the specified bucket
#
- # $file Name of file containing mail message to parse
# $bucket Name of the bucket to be updated
#
# ---------------------------------------------------------------------------------------------
sub remove_message_from_bucket
{
! my ( $self, $file, $bucket ) = @_;
# Verify that the bucket exists. You must call create_bucket before this
--- 1622,1632 ----
# Parses a mail message and updates the statistics in the specified bucket
#
# $bucket Name of the bucket to be updated
+ # $file Name of file containing mail message to parse
#
# ---------------------------------------------------------------------------------------------
sub remove_message_from_bucket
{
! my ( $self, $bucket, $file ) = @_;
# Verify that the bucket exists. You must call create_bucket before this
***************
*** 1621,1625 ****
if ( !defined( $self->{total__}{$bucket} ) ) {
! return;
}
--- 1634,1638 ----
if ( !defined( $self->{total__}{$bucket} ) ) {
! return 0;
}
***************
*** 1630,1635 ****
if ( /__CORPUS__ __VERSION__ (\d+)/ ) {
if ( $1 != $self->{corpus_version__} ) {
! print "Incompatible corpus version in $bucket\n";
! return;
}
--- 1643,1649 ----
if ( /__CORPUS__ __VERSION__ (\d+)/ ) {
if ( $1 != $self->{corpus_version__} ) {
! print STDERR "Incompatible corpus version in $bucket\n";
! close WORDS;
! return 0;
}
***************
*** 1660,1664 ****
print WORDS "__CORPUS__ __VERSION__ 1\n";
foreach my $word (sort keys %words) {
! print WORDS "$word $words{$word}\n";
}
close WORDS;
--- 1674,1680 ----
print WORDS "__CORPUS__ __VERSION__ 1\n";
foreach my $word (sort keys %words) {
! if ( $words{$word} != 0 ) {
! print WORDS "$word $words{$word}\n";
! }
}
close WORDS;
***************
*** 1666,1669 ****
--- 1682,1687 ----
$self->load_word_matrix_();
+
+ return 1;
}
|
|
From: <jgr...@us...> - 2003-07-27 15:24:29
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1:/tmp/cvs-serv14640/tests Added Files: TestMailParse021.wrd Log Message: Added missing wrd file --- NEW FILE: TestMailParse021.wrd --- #000000 8 #000080 3 #0000ff 1 #00ffff 10 #ccccff 1 #ccffff 3 #ff0000 2 #ffff99 2 #ffffff 19 213.33.65.211 1 4.47.64.57 1 again 1 allow 2 anti 1 approved 1 backup 1 business 1 buy 1 cc:crosslinkinc.com 1 cc:crusader.com 1 cc:csonline.net 1 cc:cvip.net 1 cc:cybcon.com 1 cc:dakotacom.net 1 cc:datamine.net 1 cc:datasync.com 1 cc:dccnet.com 1 cc:directlink.net 1 cc:dmi.net 1 cc:dnet.net 1 cc:doorpi.net 1 cc:dragonbbs.com 1 cc:ds...@cr... 1 cc:ds...@cr... 1 cc:ds...@cs... 1 cc:ds...@cv... 1 cc:ds...@cy... 1 cc:ds...@da... 1 cc:ds...@da... 1 cc:ds...@da... 1 cc:ds...@dc... 1 cc:ds...@di... 1 cc:ds...@dm... 1 cc:ds...@dn... 1 cc:ds...@do... 1 cc:ds...@dr... 1 charset:iso-8859-1 1 circle's 1 click 2 combined 1 computer 3 condone 1 control 1 cooperation 1 cubic 1 cucipop 1 cxc...@ya... 2 data 1 datasync.com 2 days 1 destructive 1 diagnostics 1 don't 1 dsmith 1 ds...@da... 1 eaf 1 easily 1 ecommerce 1 edition 1 email 1 encoding:quotedprintable 1 fall 1 feature 1 federation 1 files 1 filetime 1 flus 1 free 2 from:cxc...@ya... 1 from:margit 1 from:yahoo.com 1 get 1 great 1 hackers 1 hazardous 1 header:CC 1 header:Content-Transfer-Encoding 1 header:Content-Type 1 header:Date 1 header:From 1 header:MIME-Version 1 header:Message-ID 1 header:Received 3 header:Reply-To 1 header:Return-Path 1 header:Subject 1 header:To 1 header:X-OriginalArrivalTime 1 helopal.com 2 help 1 here 2 html:backcolor#000000 4 html:backcolor#000080 2 html:backcolor#FFFFFF 2 html:colordistance0 13 html:fontcolor#000000 4 html:fontcolor#000080 1 html:fontcolor#0000FF 1 html:fontcolor#00FFFF 10 html:fontcolor#CCCCFF 1 html:fontcolor#CCFFFF 3 html:fontcolor#FF0000 2 html:fontcolor#FFFF99 2 html:fontcolor#FFFFFF 15 html:fontcolor#ffffff 2 html:fontsize1 2 html:fontsize2 2 html:fontsize3 2 html:fontsize4 10 html:fontsize5 20 html:fontsize6 5 html:td 7 improve 1 includes 2 information 2 integral 1 kindly 1 limited 2 line 2 list 3 low 1 mail.yahoo.com 1 mails 1 microsoft 1 mx.datasync.com 1 mx1.mail.yahoo.com 1 never 1 norton 1 now 1 obtained 1 only 2 opt 2 order 1 packed 1 pc's 1 performance 1 please 2 prefix 1 prey 1 price 3 private 1 prm 1 products 1 professional 1 protect 2 quick 1 reichraming.helopal.com 2 removal 1 repair 1 retail 1 safely 1 secure 1 send 1 shape 1 shipping 1 shop 1 six 1 smtpsvc 1 software 3 spam 2 special 1 srvexch.reichraming.helopal.com 2 subject:approvednhobs 1 subject:doctor 1 subject:enlarge 1 subject:package 1 suite 1 superior 1 systemworks 1 take 2 thank 1 time 2 to:crosscountybank.com 1 to:crossville.com 1 to:cs.com 1 to:ctaz.com 1 to:cvnc.net 1 to:cybersurf.net 1 to:dasia.net 1 to:datarecall.net 1 to:db.com 1 to:dialpoint.net 1 to:dirtur.com 1 to:dmrtc.net 1 to:dol.net 1 to:dotnet.com 1 to:dreamscape.com 1 to:ds...@cr... 1 to:ds...@cr... 1 to:ds...@cs... 1 to:ds...@ct... 1 to:ds...@cv... 1 to:ds...@cy... 1 to:ds...@da... 1 to:ds...@da... 1 to:ds...@db... 1 to:ds...@di... 1 to:ds...@di... 1 to:ds...@dm... 1 to:ds...@do... 1 to:ds...@do... 1 to:ds...@dr... 1 top 2 transfer 1 trick:invisibleink 2 type 1 unsubscribe 1 unwanted 1 upc 1 upgradesrus.net 2 utc 1 utilities 2 valuable 2 value 1 viruses 2 wud 1 www.upgradesrus.net 2 yahoo.com 3 you'll 1 yours 1 |
|
From: <jgr...@us...> - 2003-07-27 01:38:01
|
Update of /cvsroot/popfile/engine/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv21492/tests
Modified Files:
TestBayes.tst TestMailParse.tst
Log Message:
Tests for Bayes API functions
Index: TestBayes.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestBayes.tst,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** TestBayes.tst 26 Jul 2003 14:59:47 -0000 1.13
--- TestBayes.tst 27 Jul 2003 01:37:58 -0000 1.14
***************
*** 36,42 ****
$b->logger( $l );
-
$b->initialize();
! $b->start();
# getting and setting values
--- 36,211 ----
$b->logger( $l );
$b->initialize();
! test_assert( $b->start() );
!
! # test the API functions
!
! # get_buckets
!
! my @buckets = $b->get_buckets();
! test_assert_equal( $#buckets, 2 );
! test_assert_equal( $buckets[0], 'other' );
! test_assert_equal( $buckets[1], 'personal' );
! test_assert_equal( $buckets[2], 'spam' );
!
! # get_bucket_word_count
!
! test_assert_equal( $b->get_bucket_word_count($buckets[0]), 1785 );
! test_assert_equal( $b->get_bucket_word_count($buckets[1]), 103 );
! test_assert_equal( $b->get_bucket_word_count($buckets[2]), 12114 );
!
! # get_bucket_word_list
!
! # TODO
!
! # get_word_count
!
! test_assert_equal( $b->get_word_count(), 14002 );
!
! # get_count_for_word
!
! test_assert_equal( $b->get_count_for_word($buckets[0], 'foo'), 0 );
! test_assert_equal( $b->get_count_for_word($buckets[1], 'foo'), 1 );
! test_assert_equal( $b->get_count_for_word($buckets[2], 'foo'), 0 );
!
! # get_bucket_unique_count
!
! test_assert_equal( $b->get_bucket_unique_count($buckets[0]), 656 );
! test_assert_equal( $b->get_bucket_unique_count($buckets[1]), 3 );
! test_assert_equal( $b->get_bucket_unique_count($buckets[2]), 3353 );
!
! # get_bucket_color
!
! test_assert_equal( $b->get_bucket_color($buckets[0]), 'red' );
! test_assert_equal( $b->get_bucket_color($buckets[1]), 'green' );
! test_assert_equal( $b->get_bucket_color($buckets[2]), 'blue' );
!
! # set_bucket_color
!
! test_assert_equal( $b->get_bucket_color($buckets[0]), 'red' );
! $b->set_bucket_color( $buckets[0], 'yellow' );
! test_assert_equal( $b->get_bucket_color($buckets[0]), 'yellow' );
! $b->set_bucket_color( $buckets[0], 'red' );
! test_assert_equal( $b->get_bucket_color($buckets[0]), 'red' );
!
! # get_bucket_parameter
!
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'dummy' ), 0 );
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'quarantine' ), 0 );
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'subject' ), 1 );
!
! # set_bucket_parameter
!
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'dummy2' ), 0 );
! $b->set_bucket_parameter( $buckets[0], 'dummy2', 'value' );
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'dummy2' ), 'value' );
! my $found = 0;
! open FILE, "<corpus/$buckets[0]/params";
! while( <FILE> ) {
! if ( /dummy2 value/ ) {
! $found = 1;
! last;
! }
! }
! close FILE;
! test_assert( $found );
! $b->set_bucket_parameter( $buckets[0], 'dummy2', 0 );
! test_assert_equal( $b->get_bucket_parameter( $buckets[0], 'dummy2' ), 0 );
!
! # get_html_colored_message
!
! my $html = $b->get_html_colored_message( 'TestMailParse019.msg' );
! open FILE, "<TestMailParse019.clr";
! my $check = <FILE>;
! close FILE;
! # TODO test_assert_equal( $html, $check );
!
! if ( $html ne $check ) {
! my $color_test = 'get_html_colored_message';
! open FILE, ">$color_test.expecting.html";
! print FILE $check;
! close FILE;
! open FILE, ">$color_test.got.html";
! print FILE $html;
! close FILE;
! }
!
! # create_bucket
!
! $b->create_bucket( 'zebra' );
!
! @buckets = $b->get_buckets();
! test_assert_equal( $#buckets, 3 );
! test_assert_equal( $buckets[0], 'other' );
! test_assert_equal( $buckets[1], 'personal' );
! test_assert_equal( $buckets[2], 'spam' );
! test_assert_equal( $buckets[3], 'zebra' );
!
! test_assert_equal( $b->get_bucket_parameter( 'zebra', 'count' ), 0 );
! test_assert_equal( $b->get_bucket_parameter( 'zebra', 'subject' ), 1 );
! test_assert_equal( $b->get_bucket_parameter( 'zebra', 'quarantine' ), 0 );
!
! test_assert_equal( $b->get_bucket_word_count( 'zebra' ), 0 );
! test_assert_equal( $b->get_bucket_unique_count( 'zebra' ), 0 );
!
! test_assert_equal( $b->get_word_count(), 14002 );
!
! test_assert( -e 'corpus/zebra' );
! test_assert( -e 'corpus/zebra/table' );
!
! open FILE, "<corpus/zebra/table";
! my $line = <FILE>;
! test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
! close FILE;
!
! # rename_bucket
!
! test_assert( !$b->rename_bucket( 'none', 'some' ) );
! test_assert( $b->rename_bucket( 'zebra', 'zeotrope' ) );
!
! @buckets = $b->get_buckets();
! test_assert_equal( $#buckets, 3 );
! test_assert_equal( $buckets[0], 'other' );
! test_assert_equal( $buckets[1], 'personal' );
! test_assert_equal( $buckets[2], 'spam' );
! test_assert_equal( $buckets[3], 'zeotrope' );
!
! test_assert_equal( $b->get_bucket_parameter( 'zeotrope', 'count' ), 0 );
! test_assert_equal( $b->get_bucket_parameter( 'zeotrope', 'subject' ), 1 );
! test_assert_equal( $b->get_bucket_parameter( 'zeotrope', 'quarantine' ), 0 );
!
! test_assert_equal( $b->get_bucket_word_count( 'zeotrope' ), 0 );
! test_assert_equal( $b->get_bucket_unique_count( 'zeotrope' ), 0 );
!
! test_assert_equal( $b->get_word_count(), 14002 );
!
! test_assert( -e 'corpus/zeotrope' );
! test_assert( -e 'corpus/zeotrope/table' );
!
! open FILE, "<corpus/zeotrope/table";
! $line = <FILE>;
! test_assert_regexp( $line, '__CORPUS__ __VERSION__ 1' );
! close FILE;
!
! # add_message_to_bucket
!
! # remove_message_from_bucket
!
! # add_messages_to_bucket
!
! # delete_bucket
!
! test_assert( !$b->delete_bucket( 'zebrazerba' ) );
! test_assert( $b->delete_bucket( 'zeotrope' ) );
! test_assert( !( -e 'corpus/zeotrope/table' ) );
! test_assert( !( -e 'corpus/zeotrope' ) );
!
! @buckets = $b->get_buckets();
! test_assert_equal( $#buckets, 2 );
! test_assert_equal( $buckets[0], 'other' );
! test_assert_equal( $buckets[1], 'personal' );
! test_assert_equal( $buckets[2], 'spam' );
!
!
# getting and setting values
***************
*** 49,59 ****
test_assert_equal( $b->get_value_( 'personal', 'foo' ), -log(10) );
! # test the API functions
! my @buckets = $b->get_buckets();
! test_assert_equal( $buckets[0], '' );
! test_assert_equal( $buckets[1], '' );
! test_assert_equal( $buckets[2], '' );
!
! # glob the tests directory for files called TestMailParse\d+.msg which consist of messages
# to be parsed with the resulting classification in TestMailParse.cls
--- 218,222 ----
test_assert_equal( $b->get_value_( 'personal', 'foo' ), -log(10) );
! # glob the tests directory for files called TestMailParse\d+.msg which consist of messages
# to be parsed with the resulting classification in TestMailParse.cls
***************
*** 70,74 ****
close CLASS;
}
!
test_assert_equal( $b->classify( $class_test ), $class, $class_test );
}
--- 233,237 ----
close CLASS;
}
!
test_assert_equal( $b->classify( $class_test ), $class, $class_test );
}
Index: TestMailParse.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse.tst,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** TestMailParse.tst 26 Jul 2003 22:53:24 -0000 1.15
--- TestMailParse.tst 27 Jul 2003 01:37:58 -0000 1.16
***************
*** 40,46 ****
$b->logger( $l );
-
$b->initialize();
! $b->start();
my $cl = new Classifier::MailParse;
--- 40,45 ----
$b->logger( $l );
$b->initialize();
! test_assert( $b->start() );
my $cl = new Classifier::MailParse;
***************
*** 206,213 ****
if ( $check ne $html ) {
! open FILE, ">$color_test.expecting";
print FILE $check;
close FILE;
! open FILE, ">$color_test.got";
print FILE $html;
close FILE;
--- 205,212 ----
if ( $check ne $html ) {
! open FILE, ">$color_test.expecting.html";
print FILE $check;
close FILE;
! open FILE, ">$color_test.got.html";
print FILE $html;
close FILE;
|
|
From: <jgr...@us...> - 2003-07-27 01:38:01
|
Update of /cvsroot/popfile/engine/Classifier
In directory sc8-pr-cvs1:/tmp/cvs-serv21492/Classifier
Modified Files:
Bayes.pm
Log Message:
Tests for Bayes API functions
Index: Bayes.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v
retrieving revision 1.171
retrieving revision 1.172
diff -C2 -d -r1.171 -r1.172
*** Bayes.pm 26 Jul 2003 14:59:46 -0000 1.171
--- Bayes.pm 27 Jul 2003 01:37:58 -0000 1.172
***************
*** 351,354 ****
--- 351,357 ----
foreach my $bucket (@buckets) {
+
+ next if ( lc($bucket) ne $bucket );
+
my $color = '';
***************
*** 413,420 ****
# Loads an individual bucket
#
# ---------------------------------------------------------------------------------------------
sub load_bucket_
{
! my ($self, $bucket) = @_;
$bucket =~ /([[:alpha:]0-9-_]+)$/;
--- 416,425 ----
# Loads an individual bucket
#
+ # $bucket The bucket name
+ #
# ---------------------------------------------------------------------------------------------
sub load_bucket_
{
! my ( $self, $bucket ) = @_;
$bucket =~ /([[:alpha:]0-9-_]+)$/;
***************
*** 941,949 ****
# write_line__
#
! # Writes a line to a file and parses it
#
# $file File handle for file to write line to
# $line The line to write
! # $class The current classification
#
# ---------------------------------------------------------------------------------------------
--- 946,954 ----
# write_line__
#
! # Writes a line to a file and parses it unless the classification is already known
#
# $file File handle for file to write line to
# $line The line to write
! # $class (optional) The current classification
#
# ---------------------------------------------------------------------------------------------
***************
*** 1315,1319 ****
my $value = $self->get_value_( $bucket, $word );
! return int( exp( $value ) * $self->get_bucket_word_count( $bucket ) + 0.5 );
}
--- 1320,1328 ----
my $value = $self->get_value_( $bucket, $word );
! if ( $value == 0 ) {
! return 0;
! } else {
! return int( exp( $value ) * $self->get_bucket_word_count( $bucket ) + 0.5 );
! }
}
***************
*** 1469,1473 ****
if ( !defined( $self->{total__}{$bucket} ) ) {
! return;
}
--- 1478,1482 ----
if ( !defined( $self->{total__}{$bucket} ) ) {
! return 0;
}
***************
*** 1481,1484 ****
--- 1490,1495 ----
$self->load_word_matrix_();
+
+ return 1;
}
***************
*** 1498,1502 ****
if ( !defined( $self->{total__}{$old_bucket} ) ) {
! return;
}
--- 1509,1513 ----
if ( !defined( $self->{total__}{$old_bucket} ) ) {
! return 0;
}
***************
*** 1504,1507 ****
--- 1515,1520 ----
$self->load_word_matrix_();
+
+ return 1;
}
|
|
From: <xue...@us...> - 2003-07-27 00:19:09
|
Update of /cvsroot/popfile/windows
In directory sc8-pr-cvs1:/tmp/cvs-serv9613
Modified Files:
CBP.nsh installer.nsi
Log Message:
Use consistent format for message boxes.
Index: CBP.nsh
===================================================================
RCS file: /cvsroot/popfile/windows/CBP.nsh,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** CBP.nsh 21 Jul 2003 14:20:25 -0000 1.18
--- CBP.nsh 27 Jul 2003 00:19:04 -0000 1.19
***************
*** 1220,1224 ****
name_exists:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_CBP_MBDUPERR_1) $\"${CBP_L_CREATE_NAME}$\" $(PFI_LANG_CBP_MBDUPERR_2)$\n$\n\
$(PFI_LANG_CBP_MBDUPERR_3)"
goto get_next_bucket_cmd
--- 1220,1225 ----
name_exists:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_CBP_MBDUPERR_1) $\"${CBP_L_CREATE_NAME}$\" $(PFI_LANG_CBP_MBDUPERR_2)\
! $\r$\n$\r$\n\
$(PFI_LANG_CBP_MBDUPERR_3)"
goto get_next_bucket_cmd
***************
*** 1226,1230 ****
too_many:
MessageBox MB_OK|MB_ICONINFORMATION \
! "$(PFI_LANG_CBP_MBMAXERR_1) ${CBP_C_MAX_BNCOUNT} $(PFI_LANG_CBP_MBMAXERR_2)$\n$\n\
$(PFI_LANG_CBP_MBMAXERR_3) ${CBP_C_MAX_BNCOUNT} $(PFI_LANG_CBP_MBMAXERR_2)"
goto get_next_bucket_cmd
--- 1227,1232 ----
too_many:
MessageBox MB_OK|MB_ICONINFORMATION \
! "$(PFI_LANG_CBP_MBMAXERR_1) ${CBP_C_MAX_BNCOUNT} $(PFI_LANG_CBP_MBMAXERR_2)\
! $\r$\n$\r$\n\
$(PFI_LANG_CBP_MBMAXERR_3) ${CBP_C_MAX_BNCOUNT} $(PFI_LANG_CBP_MBMAXERR_2)"
goto get_next_bucket_cmd
***************
*** 1232,1237 ****
bad_name:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_CBP_MBNAMERR_1) $\"${CBP_L_CREATE_NAME}$\" $(PFI_LANG_CBP_MBNAMERR_2)$\n$\n\
! $(PFI_LANG_CBP_MBNAMERR_3)$\n$\n\
$(PFI_LANG_CBP_MBNAMERR_4)"
goto get_next_bucket_cmd
--- 1234,1241 ----
bad_name:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_CBP_MBNAMERR_1) $\"${CBP_L_CREATE_NAME}$\" $(PFI_LANG_CBP_MBNAMERR_2)\
! $\r$\n$\r$\n\
! $(PFI_LANG_CBP_MBNAMERR_3)\
! $\r$\n$\r$\n\
$(PFI_LANG_CBP_MBNAMERR_4)"
goto get_next_bucket_cmd
***************
*** 1241,1246 ****
IntCmp ${CBP_L_COUNT} 1 too_few
MessageBox MB_YESNO|MB_ICONQUESTION \
! "${CBP_L_COUNT} $(PFI_LANG_CBP_MBDONE_1)$\n$\n\
! $(PFI_LANG_CBP_MBDONE_2)$\n$\n\
$(PFI_LANG_CBP_MBDONE_3)" IDYES finished_buckets
goto get_next_bucket_cmd
--- 1245,1252 ----
IntCmp ${CBP_L_COUNT} 1 too_few
MessageBox MB_YESNO|MB_ICONQUESTION \
! "${CBP_L_COUNT} $(PFI_LANG_CBP_MBDONE_1)\
! $\r$\n$\r$\n\
! $(PFI_LANG_CBP_MBDONE_2)\
! $\r$\n$\r$\n\
$(PFI_LANG_CBP_MBDONE_3)" IDYES finished_buckets
goto get_next_bucket_cmd
***************
*** 1248,1252 ****
need_buckets:
MessageBox MB_OK|MB_ICONINFORMATION \
! "$(PFI_LANG_CBP_MBCONTERR_1)$\n$\n\
$(PFI_LANG_CBP_MBCONTERR_2)"
goto get_next_bucket_cmd
--- 1254,1259 ----
need_buckets:
MessageBox MB_OK|MB_ICONINFORMATION \
! "$(PFI_LANG_CBP_MBCONTERR_1)\
! $\r$\n$\r$\n\
$(PFI_LANG_CBP_MBCONTERR_2)"
goto get_next_bucket_cmd
***************
*** 1268,1272 ****
MessageBox MB_OK|MB_ICONEXCLAMATION \
"$(PFI_LANG_CBP_MBMAKERR_1) ${CBP_L_RESULT} $(PFI_LANG_CBP_MBMAKERR_2) ${CBP_L_COUNT} \
! $(PFI_LANG_CBP_MBMAKERR_3)$\n$\n$(PFI_LANG_CBP_MBMAKERR_4)"
finished_now:
--- 1275,1281 ----
MessageBox MB_OK|MB_ICONEXCLAMATION \
"$(PFI_LANG_CBP_MBMAKERR_1) ${CBP_L_RESULT} $(PFI_LANG_CBP_MBMAKERR_2) ${CBP_L_COUNT} \
! $(PFI_LANG_CBP_MBMAKERR_3)\
! $\r$\n$\r$\n\
! $(PFI_LANG_CBP_MBMAKERR_4)"
finished_now:
Index: installer.nsi
===================================================================
RCS file: /cvsroot/popfile/windows/installer.nsi,v
retrieving revision 1.93
retrieving revision 1.94
diff -C2 -d -r1.93 -r1.94
*** installer.nsi 23 Jul 2003 18:31:13 -0000 1.93
--- installer.nsi 27 Jul 2003 00:19:04 -0000 1.94
***************
*** 93,105 ****
--- 93,111 ----
!define C_RELEASE_NOTES "..\engine\${C_README}"
+ ;-----------------------------------------
; Root directory for the Perl files used to build the installer
+ ;-----------------------------------------
!define C_PERL_DIR "C:\Perl"
+ ;-----------------------------------------
; Delay (in milliseconds) used after issuing a POPFile 'shutdown' request
+ ;-----------------------------------------
!define C_SHUTDOWN_DELAY 1500
+ ;-----------------------------------------
; Define PFI_VERBOSE to get more compiler output
+ ;-----------------------------------------
# !define PFI_VERBOSE
***************
*** 202,206 ****
; (2) New style with 'I accept/I do not accept' radio buttons below the license window
; (3) Classic style with the 'Next' button replaced by an 'Agree' button
! ; (to get the 'Classic' style, comment-out the CHECKBOX and the RADIOBUTTONS 'defines')
!define MUI_LICENSEPAGE_CHECKBOX
--- 208,212 ----
; (2) New style with 'I accept/I do not accept' radio buttons below the license window
; (3) Classic style with the 'Next' button replaced by an 'Agree' button
! ; (to get the 'Classic' style, comment-out the CHECKBOX and the RADIOBUTTONS 'defines')
!define MUI_LICENSEPAGE_CHECKBOX
***************
*** 424,428 ****
SearchPath ${G_NOTEPAD} notepad.exe
MessageBox MB_YESNO|MB_ICONQUESTION \
! "$(PFI_LANG_MBRELNOTES_1)$\r$\n$\r$\n$(PFI_LANG_MBRELNOTES_2)" IDNO exit
StrCmp ${G_NOTEPAD} "" use_file_association
ExecWait 'notepad.exe "$PLUGINSDIR\release.txt"'
--- 430,436 ----
SearchPath ${G_NOTEPAD} notepad.exe
MessageBox MB_YESNO|MB_ICONQUESTION \
! "$(PFI_LANG_MBRELNOTES_1)\
! $\r$\n$\r$\n\
! $(PFI_LANG_MBRELNOTES_2)" IDNO exit
StrCmp ${G_NOTEPAD} "" use_file_association
ExecWait 'notepad.exe "$PLUGINSDIR\release.txt"'
***************
*** 498,504 ****
IfFileExists "$INSTDIR\stopwords" 0 copy_stopwords
MessageBox MB_YESNO|MB_ICONQUESTION \
! "POPFile 'stopwords' $(PFI_LANG_MBSTPWDS_1)$\r$\n$\r$\n\
! $(PFI_LANG_MBSTPWDS_2)$\r$\n$\r$\n\
! $(PFI_LANG_MBSTPWDS_3) 'stopwords.bak')$\r$\n$\r$\n\
$(PFI_LANG_MBSTPWDS_4) 'stopwords.default')" IDNO copy_default_stopwords
IfFileExists "$INSTDIR\stopwords.bak" 0 make_backup
--- 506,515 ----
IfFileExists "$INSTDIR\stopwords" 0 copy_stopwords
MessageBox MB_YESNO|MB_ICONQUESTION \
! "POPFile 'stopwords' $(PFI_LANG_MBSTPWDS_1)\
! $\r$\n$\r$\n\
! $(PFI_LANG_MBSTPWDS_2)\
! $\r$\n$\r$\n\
! $(PFI_LANG_MBSTPWDS_3) 'stopwords.bak')\
! $\r$\n$\r$\n\
$(PFI_LANG_MBSTPWDS_4) 'stopwords.default')" IDNO copy_default_stopwords
IfFileExists "$INSTDIR\stopwords.bak" 0 make_backup
***************
*** 524,528 ****
"$(PFI_LANG_MBCFGBK_1) 'popfile.cfg' $(PFI_LANG_MBCFGBK_2) ('popfile.cfg.bak').\
$\r$\n$\r$\n\
! $(PFI_LANG_MBCFGBK_3)$\r$\n$\r$\n\
$(PFI_LANG_MBCFGBK_4)" IDNO update_config
SetFileAttributes "$INSTDIR\popfile.cfg.bak" NORMAL
--- 535,540 ----
"$(PFI_LANG_MBCFGBK_1) 'popfile.cfg' $(PFI_LANG_MBCFGBK_2) ('popfile.cfg.bak').\
$\r$\n$\r$\n\
! $(PFI_LANG_MBCFGBK_3)\
! $\r$\n$\r$\n\
$(PFI_LANG_MBCFGBK_4)" IDNO update_config
SetFileAttributes "$INSTDIR\popfile.cfg.bak" NORMAL
***************
*** 1155,1160 ****
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBUNINST_1) '$INSTDIR'$\r$\n$\r$\n\
! $(PFI_LANG_OPTIONS_MBUNINST_2)$\r$\n$\r$\n\
($(PFI_LANG_OPTIONS_MBUNINST_3))" IDNO continue
--- 1167,1174 ----
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBUNINST_1) '$INSTDIR'\
! $\r$\n$\r$\n\
! $(PFI_LANG_OPTIONS_MBUNINST_2)\
! $\r$\n$\r$\n\
($(PFI_LANG_OPTIONS_MBUNINST_3))" IDNO continue
***************
*** 1258,1263 ****
bad_pop3:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBPOP3_1) $\"${G_POP3}$\"'.$\n$\n\
! $(PFI_LANG_OPTIONS_MBPOP3_2)$\n$\n\
$(PFI_LANG_OPTIONS_MBPOP3_3)"
Goto bad_exit
--- 1272,1279 ----
bad_pop3:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBPOP3_1) $\"${G_POP3}$\"'.\
! $\r$\n$\r$\n\
! $(PFI_LANG_OPTIONS_MBPOP3_2)\
! $\r$\n$\r$\n\
$(PFI_LANG_OPTIONS_MBPOP3_3)"
Goto bad_exit
***************
*** 1273,1278 ****
bad_gui:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBGUI_1) $\"${G_GUI}$\".$\n$\n\
! $(PFI_LANG_OPTIONS_MBGUI_2)$\n$\n\
$(PFI_LANG_OPTIONS_MBGUI_3)"
Goto bad_exit
--- 1289,1296 ----
bad_gui:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBGUI_1) $\"${G_GUI}$\".\
! $\r$\n$\r$\n\
! $(PFI_LANG_OPTIONS_MBGUI_2)\
! $\r$\n$\r$\n\
$(PFI_LANG_OPTIONS_MBGUI_3)"
Goto bad_exit
***************
*** 1280,1284 ****
ports_must_differ:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBDIFF_1)$\n$\n\
$(PFI_LANG_OPTIONS_MBDIFF_2)"
--- 1298,1303 ----
ports_must_differ:
MessageBox MB_OK|MB_ICONEXCLAMATION \
! "$(PFI_LANG_OPTIONS_MBDIFF_1)\
! $\r$\n$\r$\n\
$(PFI_LANG_OPTIONS_MBDIFF_2)"
***************
*** 1812,1816 ****
IfFileExists $INSTDIR\popfile.pl skip_confirmation
MessageBox MB_YESNO|MB_ICONSTOP|MB_DEFBUTTON2 \
! "$(un.PFI_LANG_MBNOTFOUND_1) '$INSTDIR'.$\r$\n$\r$\n\
$(un.PFI_LANG_MBNOTFOUND_2)" IDYES skip_confirmation
Abort "$(un.PFI_LANG_ABORT_1)"
--- 1831,1836 ----
IfFileExists $INSTDIR\popfile.pl skip_confirmation
MessageBox MB_YESNO|MB_ICONSTOP|MB_DEFBUTTON2 \
! "$(un.PFI_LANG_MBNOTFOUND_1) '$INSTDIR'.\
! $\r$\n$\r$\n\
$(un.PFI_LANG_MBNOTFOUND_2)" IDYES skip_confirmation
Abort "$(un.PFI_LANG_ABORT_1)"
|
|
From: <jgr...@us...> - 2003-07-26 23:52:47
|
Update of /cvsroot/popfile/engine/UI
In directory sc8-pr-cvs1:/tmp/cvs-serv6124/UI
Modified Files:
HTML.pm HTTP.pm
Log Message:
parse_form__ should be protected not private
Index: HTML.pm
===================================================================
RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v
retrieving revision 1.184
retrieving revision 1.185
diff -C2 -d -r1.184 -r1.185
*** HTML.pm 26 Jul 2003 18:28:28 -0000 1.184
--- HTML.pm 26 Jul 2003 23:52:44 -0000 1.185
***************
*** 348,352 ****
if ( $command =~ /GET/i ) {
if ( $url =~ s/\?(.*)// ) {
! $self->parse_form__( $1 );
}
}
--- 348,352 ----
if ( $command =~ /GET/i ) {
if ( $url =~ s/\?(.*)// ) {
! $self->parse_form_( $1 );
}
}
***************
*** 358,362 ****
if ( $command =~ /POST/i ) {
$content =~ s/[\r\n]//g;
! $self->parse_form__( $content );
}
--- 358,362 ----
if ( $command =~ /POST/i ) {
$content =~ s/[\r\n]//g;
! $self->parse_form_( $content );
}
***************
*** 391,395 ****
$url = $self->{form_}{redirect};
if ( $url =~ s/\?(.*)// ) {
! $self->parse_form__( $1 );
}
} else {
--- 391,395 ----
$url = $self->{form_}{redirect};
if ( $url =~ s/\?(.*)// ) {
! $self->parse_form_( $1 );
}
} else {
***************
*** 421,425 ****
if ( $k ne 'session' ) {
! # If we are dealing with an array of values (see parse_form__
# for details) then we need to unpack it into separate entries),
# we ignore non-array values since all values have an array equivalent
--- 421,425 ----
if ( $k ne 'session' ) {
! # If we are dealing with an array of values (see parse_form_
# for details) then we need to unpack it into separate entries),
# we ignore non-array values since all values have an array equivalent
Index: HTTP.pm
===================================================================
RCS file: /cvsroot/popfile/engine/UI/HTTP.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** HTTP.pm 26 Jul 2003 18:28:28 -0000 1.9
--- HTTP.pm 26 Jul 2003 23:52:44 -0000 1.10
***************
*** 187,196 ****
# $content Any non-header data in the HTTP command
#
- # Takes a URL and splits it into the URL portion and form arguments specified in the command
- # filling out the %form hash with the form elements and their values. Checks the session
- # key and refuses access unless it matches. Serves up a small set of specific urls that are
- # the main UI pages and then any GIF file in the POPFile directory and CSS files in the skins
- # subdirectory
- #
# ---------------------------------------------------------------------------------------------
sub handle_url
--- 187,190 ----
***************
*** 203,212 ****
# ---------------------------------------------------------------------------------------------
#
! # parse_form__ - parse form data and fill in $self->{form_}
#
# $arguments The text of the form arguments (e.g. foo=bar&baz=fou)
#
# ---------------------------------------------------------------------------------------------
! sub parse_form__
{
my ( $self, $arguments ) = @_;
--- 197,206 ----
# ---------------------------------------------------------------------------------------------
#
! # parse_form_ - parse form data and fill in $self->{form_}
#
# $arguments The text of the form arguments (e.g. foo=bar&baz=fou)
#
# ---------------------------------------------------------------------------------------------
! sub parse_form_
{
my ( $self, $arguments ) = @_;
***************
*** 250,254 ****
#
# ---------------------------------------------------------------------------------------------
-
sub url_encode_
{
--- 244,247 ----
|
|
From: <jgr...@us...> - 2003-07-26 22:53:27
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1:/tmp/cvs-serv29488/tests Modified Files: TestMailParse.tst TestMailParse015.clr TestMailParse022.cam TestMailParse022.msg TestMailParse022.wrd Added Files: TestMailParse023.cam TestMailParse023.cls TestMailParse023.msg TestMailParse023.wrd Log Message: Completed test suite for MailParse, now have 100% coverage; fixed some bugs and removed dead code --- NEW FILE: TestMailParse023.cam --- From: "Willie Eason" <5x8...@ma...> MIME-Version: 1.0 Content-Type: multipart/report; boundary="popfile933=3.msg" Subject: [spam] X-Text-Classification: spam X-POPFile-Link: http://127.0.0.1:8080/jump_to_message?view=popfile0=0.msg --popfile933=3.msg Content-Type: text/plain POPFile has quarantined a message. It is attached to this email. --popfile933=3.msg MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="B7D3BB6_FC.9DA81." --B7D3BB6_FC.9DA81. MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="B7D3BB6_FC.9DA80." --B7D3BB6_FC.9DA80. Content-Type: text/html; Content-Transfer-Encoding: quoted-printable <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY BGCOLOR=3D"#FFFFFF" TEXT=3D"#000000" LINK=3D"#0000FF" VLINK=3D"#8000= 80"> <font color=3D000000 size=3D1> grecian <center> <table bgcolor=3D0078B3 width=3D700> <tr><td align=3Dcenter> <font size=3D7 face=3Darial color=3DFF0080> Toon Action<br> <a href=3D"http://www.27meg.com/~site0004/t1"> <img src=3D"http://www.27meg.com/~site0004/marge.gif" border=3D0><br> <a href=3D"http://www.27meg.com/~site0004/t1"> <font size=3D5 face=3Darial color=3DFFFF00> Full Access for $1.95</a> <br><br> <font size=3D7 face=3Darial color=3DFF0080> Orgasmic Anal<br> </td></tr> <tr><td> <center> <table border=3D0> <tr> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a1.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Tight </td> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a2.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Anal <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a3.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Sex </td> </tr> </table> <br> </td></tr> <tr><td align=3Dcenter> <br><br> <font size=3D7 face=3Darial color=3DFF0080> Young Candy<br> <center> <table border=3D0> <tr> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y1.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Young </td> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y2.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Younger <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y3.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Youngest </td> </tr> </table> <tr><td align=3Dcenter> <font size=3D7 face=3Darial color=3DFF0080> Super Sex Master<br> <a href=3D"http://www.27meg.com/~site0004/s1"> <img src=3D"http://www.27meg.com/~site0004/ss.jpg" border=3D0><br> <a href=3D"http://www.27meg.com/~site0004/s1"> <font size=3D5 face=3Darial color=3DFFFF00> Learn the Secrets of Super Sex</a> <br><br> </td></tr> </table> <br><br> <font color=3D000000 size=3D1> archetype <br><br> <br><br> <FONT face=3Darial size=3D1 color=3D000000> Removal Instructions<BR> We are sending you this newsletter because you requested it on joining one of our membership sites or directly from one of our previou= s newsletters. <BR><BR>If you would like to be removed from future mailings please <A href=3D"http://www.27meg.com/~site0004/cgi-bin/stuff.cgi">click here.</= A> transference cy c moz zingwtd lgav zlvegnj i bxinvqqayv cckljon rk </BODY> </HTML> dyrgndij evjqe zbfutlu b g awxy kgxf utu hd --B7D3BB6_FC.9DA80.-- --B7D3BB6_FC.9DA81.-- --popfile933=3.msg-- --- NEW FILE: TestMailParse023.cls --- spam --- NEW FILE: TestMailParse023.msg --- From: "Willie Eason" <5x8...@ma...> MIME-Version: 1.0 Content-Type: multipart/report; boundary="popfile933=3.msg" --popfile933=3.msg Content-Type: text/plain POPFile has quarantined a message. It is attached to this email. --popfile933=3.msg MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="B7D3BB6_FC.9DA81." --B7D3BB6_FC.9DA81. MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="B7D3BB6_FC.9DA80." --B7D3BB6_FC.9DA80. Content-Type: text/html; Content-Transfer-Encoding: quoted-printable <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY BGCOLOR=3D"#FFFFFF" TEXT=3D"#000000" LINK=3D"#0000FF" VLINK=3D"#8000= 80"> <font color=3D000000 size=3D1> grecian <center> <table bgcolor=3D0078B3 width=3D700> <tr><td align=3Dcenter> <font size=3D7 face=3Darial color=3DFF0080> Toon Action<br> <a href=3D"http://www.27meg.com/~site0004/t1"> <img src=3D"http://www.27meg.com/~site0004/marge.gif" border=3D0><br> <a href=3D"http://www.27meg.com/~site0004/t1"> <font size=3D5 face=3Darial color=3DFFFF00> Full Access for $1.95</a> <br><br> <font size=3D7 face=3Darial color=3DFF0080> Orgasmic Anal<br> </td></tr> <tr><td> <center> <table border=3D0> <tr> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a1.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Tight </td> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a2.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Anal <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/a1"> <img src=3D"http://www.27meg.com/~site0004/a3.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Sex </td> </tr> </table> <br> </td></tr> <tr><td align=3Dcenter> <br><br> <font size=3D7 face=3Darial color=3DFF0080> Young Candy<br> <center> <table border=3D0> <tr> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y1.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Young </td> <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y2.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Younger <td align=3Dcenter valign=3Dbottom> <a href=3D"http://www.27meg.com/~site0004/y1"> <img src=3D"http://www.27meg.com/~site0004/y3.jpg" border=3D0><br> <font size=3D5 face=3Darial color=3DFFFF00> Youngest </td> </tr> </table> <tr><td align=3Dcenter> <font size=3D7 face=3Darial color=3DFF0080> Super Sex Master<br> <a href=3D"http://www.27meg.com/~site0004/s1"> <img src=3D"http://www.27meg.com/~site0004/ss.jpg" border=3D0><br> <a href=3D"http://www.27meg.com/~site0004/s1"> <font size=3D5 face=3Darial color=3DFFFF00> Learn the Secrets of Super Sex</a> <br><br> </td></tr> </table> <br><br> <font color=3D000000 size=3D1> archetype <br><br> <br><br> <FONT face=3Darial size=3D1 color=3D000000> Removal Instructions<BR> We are sending you this newsletter because you requested it on joining one of our membership sites or directly from one of our previou= s newsletters. <BR><BR>If you would like to be removed from future mailings please <A href=3D"http://www.27meg.com/~site0004/cgi-bin/stuff.cgi">click here.</= A> transference cy c moz zingwtd lgav zlvegnj i bxinvqqayv cckljon rk </BODY> </HTML> dyrgndij evjqe zbfutlu b g awxy kgxf utu hd --B7D3BB6_FC.9DA80.-- --B7D3BB6_FC.9DA81.-- --popfile933=3.msg-- --- NEW FILE: TestMailParse023.wrd --- #000000 1 #ffffff 1 000000 3 0078b3 1 27meg.com 11 access 1 action 1 anal 2 archetype 1 attached 1 awxy 1 because 1 bxinvqqayv 1 candy 1 cckljon 1 click 1 directly 1 dyrgndij 1 email 1 encoding:quotedprintable 1 evjqe 1 ff0080 4 ffff00 8 from:5x8...@ma... 1 from:eason 1 from:mail2honey.com 1 from:willie 1 full 1 future 1 grecian 1 header:Content-Transfer-Encoding 1 header:Content-Type 5 header:From 1 header:MIME-Version 3 here 1 html:backcolor#FFFFFF 1 html:backcolor0078B3 1 html:fontcolor#000000 1 html:fontcolor000000 3 html:fontcolorFF0080 4 html:fontcolorFFFF00 8 html:fontsize1 3 html:fontsize5 8 html:fontsize7 4 html:imgremotesrc 8 html:td 10 instructions 1 joining 1 kgxf 1 learn 1 lgav 1 like 1 mailings 1 master 1 membership 1 moz 1 newsletter 1 newsletters 1 one 2 orgasmic 1 please 1 popfile 1 previou 1 quarantined 1 removal 1 removed 1 requested 1 secrets 1 sending 1 sex 3 sites 1 super 2 tight 1 toon 1 transference 1 utu 1 www.27meg.com 11 young 2 younger 1 youngest 1 zbfutlu 1 zingwtd 1 zlvegnj 1 Index: TestMailParse.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestMailParse.tst,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TestMailParse.tst 26 Jul 2003 21:47:01 -0000 1.14 --- TestMailParse.tst 26 Jul 2003 22:53:24 -0000 1.15 *************** *** 203,207 **** $check =~ s/[\r\n]*//g; close HTML; ! test_assert_equal( $check, $html ); } --- 203,216 ---- $check =~ s/[\r\n]*//g; close HTML; ! test_assert_equal( $check, $html, $color_test ); ! ! if ( $check ne $html ) { ! open FILE, ">$color_test.expecting"; ! print FILE $check; ! close FILE; ! open FILE, ">$color_test.got"; ! print FILE $html; ! close FILE; ! } } *************** *** 252,253 **** --- 261,266 ---- test_assert_equal( $cl->first20(), ' Take Control of Your Computer With This Top of the Line Software Norton SystemWorks Software Suite Professional Edition Includes Six' ); + # test splitline quoted-printable handling + + test_assert_equal( $cl->splitline( '=3Chtml=3E', 'quoted-Printable' ), '<html>' ); + test_assert_equal( $cl->splitline( '=3Chtml=3E', '' ), '=3Chtml=3E' ); Index: TestMailParse015.clr =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestMailParse015.clr,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestMailParse015.clr 26 Jul 2003 21:17:19 -0000 1.1 --- TestMailParse015.clr 26 Jul 2003 22:53:24 -0000 1.2 *************** *** 1 **** ! <tt><b><font color="black">Return-Path</font></b>: <<b><font color="brown">wen...@ms...</font></b>><br /><b><font color="black">Received</font></b>: from <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk (<b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk [<b><font color="green">213.38.80.6</font></b>]) by <b><font color="green">walnut.<b><font color="green">he.net</font></b></font></b> (8.8.6/8.8.2) with ESMTP id IAA29761 for <<b><font color="green">jg...@ex...</font></b>>; Fri, 24 Jan 2003 08:52:24 -0800<br /><b><font color="black">From</font></b>: <b><font color="brown">wendyoufp@<b><font color="brown">msn.com</font></b></font></b><br /><b><font color="black">Received</font></b>: from <b><font color="brown">msn.com</font></b> (nn...@ad... [<b><font color="brown">66.125.127.84</font></b>])<br /> by <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk (8.9.3/8.9.3/<b><font color="black">Debian</font></b>/<b><font color="black">GNU</font></b>) with SMTP id QAA05835<br /><b><font color="black">X-Authentication-Warning</font></b>: <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk: <b><font color="brown">Host</font></b> nn...@ad... [<b><font color="brown">66.125.127.84</font></b>] <b><font color="brown">claimed</font></b> to be <b><font color="brown">msn.com</font></b><br /><b><font color="black">Message-ID</font></b>: <000111d7ed07$cbd54352$146...@vy...><br /><b><font color="black">Subject</font></b>: <b><font color="brown">Mooo</font></b><br /><b><font color="black">Date</font></b>: Sat, 25 Jan 2003 02:42:48 -1100<br /><b><font color="black">MIME-Version</font></b>: 1.0<br /><b><font color="black">Content-Type</font></b>: multipart/mixed;<br /> boundary="----=_NextPart_000_00C3_68A82A2C.D7041A60"<br /><b><font color="black">X-Priority</font></b>: 3<br /><b><font color="black">X-Mailer</font></b>: <b><font color="brown">AOL</font></b> 7.0 for <b><font color="green">Windows</font></b> US sub 118<br /><b><font color="black">Importance</font></b>: <b><font color="brown">Normal</font></b><br /><b><font color="black">X-UIDL</font></b>: &Tb"!2d_!!]9M!!OK]!!<br /><br />------=_NextPart_000_00C3_68A82A2C.D7041A60<br /><b><font color="black">Content-Type</font></b>: text/html;<br /> charset="<b><font color="brown">iso-8859-1</font></b>"<br /><b><font color="black">Content-Transfer-Encoding</font></b>: base64<br /><br /><br />PGh0bWw+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KLmNvbnRv<br />dXIgew0KCWJvcmRlcjogMnB4IGluc2V0ICM2NjAwMzM7DQoJYmFja2dyb3Vu<br />ZC1jb2xvcjogIzY5M0YzMjsNCglmb250LWZhbWlseTogdmVyZGFuYTsNCglm<br />b250LXNpemU6IDE2cHg7DQoJY29sb3I6ICNDQ0ZGMDA7DQp9DQoudGV4dCB7<br />DQoJZm9udC1mYW1pbHk6IHZlcmRhbmE7DQoJY29sb3I6ICNDQ0ZGMDA7DQoJ<br />Zm9udC1zaXplOiAxMnB4Ow0KfQ0KLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg0K<br />DQo8Ym9keSBsaW5rPSIjRkZGRkZGIiBhbGluaz0iI0ZGRkZGRiIgdmxpbms9<br />IiNGRkZGRkYiPg0KPHRhYmxlIHdpZHRoPSI1NzMiIGJvcmRlcj0iMCIgYWxp<br />Z249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjEwIiBjZWxsc3BhY2luZz0iMTAi<br />Pg0KICA8dHI+DQogICAgPHRkIHdpZHRoPSI1MzMiIGNsYXNzPSJjb250b3Vy<br />Ij48ZGl2IGFsaWduPSJjZW50ZXIiPg0KICAgICAgICA8dGFibGUgd2lkdGg9<br />IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5n<br />PSIwIj4NCiAgICAgICAgICA8dHI+IA0KICAgICAgICAgICAgPHRkIGNsYXNz<br />PSJ0ZXh0Ij4mbmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAg<br />ICAgPHRyPiANCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dCI+PGRpdiBh<br />bGlnbj0iY2VudGVyIj48c3Ryb25nPjxmb250IHNpemU9IjUiPkJhbm5lZCAN<br />CiAgICAgICAgICAgICAgICBFeGNsdXNpdmUgRkFSTVlBUkQgY29udGVudDwv<br />Zm9udD48L3N0cm9uZz48L2Rpdj48L3RkPg0KICAgICAgICAgIDwvdHI+DQog<br />ICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0Ij4m<br />bmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPiAN<br />CiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dCI+Jm5ic3A7PC90ZD4NCiAg<br />ICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4gDQogICAgICAgICAgICA8<br />dGQgY2xhc3M9InRleHQiPiA8ZGl2IGFsaWduPSJjZW50ZXIiPiANCiAgICAg<br />ICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4gDQogICAgICAgICAgICAg<br />ICAgICA8ZGl2IGFsaWduPSJqdXN0aWZ5Ij48Zm9udCBjb2xvcj0iI0ZGRkZG<br />RiI+IA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij48<br />Zm9udCBzaXplPSIzIj48c3Ryb25nPldhdGNoIGFzIHRoZXNlIHdvbWFuIA0K<br />ICAgICAgICAgICAgICAgICAgICAgIGZyb20gYXJvdW5kIHRoZSB3b3JsZCBn<br />ZXQgZG93biBhbmQgZGlydHkgd2l0aCB0aGUgcGlncy4gDQogICAgICAgICAg<br />ICAgICAgICAgICAgUmlkZSB0aGUgYmxhY2sgc3RhbGxpb25zLCBhbmQgZ2V0<br />IHRoZWlyIGJ1c2ggbGlja2VkIGJ5IGxpdHRsZSANCiAgICAgICAgICAgICAg<br />ICAgICAgICB0aW1teSdzIGRvZyBGaWRvLiA8L3N0cm9uZz48L2ZvbnQ+PC9k<br />aXY+DQogICAgICAgICAgICAgICAgICAgIDwvZm9udD48L2Rpdj4NCiAgICAg<br />ICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAg<br />ICAgICAgICAgIDxwIGFsaWduPSJsZWZ0Ij48c3Ryb25nPjxmb250IGNvbG9y<br />PSIjRkZGRkZGIiBzaXplPSIzIj5XaXRoIGEgdGVhbSANCiAgICAgICAgICAg<br />ICAgICBvZiA0NiBnaXJscywgNiBwaG90b2dyYXBoZXJzLCA0IHZpZGVvZ3Jh<br />cGhlcnMgd2Ugc2V0IG9mZiB0byBhIA0KICAgICAgICAgICAgICAgIGZhcm0g<br />d2UgaGFkIHJlbnRlZCBmcm9tIGEgbG9jYWwgZmFybWVyLiA0NSBhY3Jlcywg<br />YW5kIGFsbCB0aGUgDQogICAgICAgICAgICAgICAgcHJpdmFjeSBpbiB0aGUg<br />d29ybGQuIFRoZSBtb3N0IGJlYXV0aWZ1bCBmYXJtIGFuaW1hbHMgd2UgaGF2<br />ZSANCiAgICAgICAgICAgICAgICBldmVyIHNlZW4uIFdpdGggdGhpcyB3ZSBz<br />dGFydGVkIHNob290aW5nIHRoZSBjb250ZW50LCByYW4gbGl2ZSANCiAgICAg<br />ICAgICAgICAgICBmZWVkcyBmcm9tIG91ciBmYXJtIHRvIG91ciBtZW1iZXJz<br />LCB0b29rIHJlcXVlc3QgZm9yIHRoZSBuZXh0IA0KICAgICAgICAgICAgICAg<br />IHBob3Rvc2hvb3QuPC9mb250Pjwvc3Ryb25nPjwvcD4NCiAgICAgICAgICAg<br />ICAgPHAgYWxpZ249ImxlZnQiPjxzdHJvbmc+PGZvbnQgY29sb3I9IiNGRkZG<br />RkYiIHNpemU9IjMiPldlIGhhdmUgd2hhdCANCiAgICAgICAgICAgICAgICBv<br />dXIgbWVtYmVycyBjYWxsICZxdW90O3RoZSBtb3N0IGFsbCBhcm91bmQsIGNv<br />bnRlbnQgZmlsbGVkIGZhcm15YXJkIA0KICAgICAgICAgICAgICAgIHNpdGUg<br />b3V0IHRoZXJlJnF1b3Q7LjwvZm9udD48L3N0cm9uZz48L3A+DQogICAgICAg<br />ICAgICAgIDxwIGFsaWduPSJsZWZ0Ij48c3Ryb25nPjxmb250IGNvbG9yPSIj<br />RkZGRkZGIiBzaXplPSIzIj48YnI+DQogICAgICAgICAgICAgICAgWW91IGRv<br />bnQgaGF2ZSB0byB0YWtlIG91ciB3b3JkIGZvciBpdCwgdmlzaXQgb3VyIHNp<br />dGUgZm9yIHlvdXJzZWxmLiANCiAgICAgICAgICAgICAgICBMZXQgeW91cnNl<br />bGYgYmUgdGFrZW4gaW4gYnkgb3VyIGJlYXV0aWZ1bCB3b21hbiwgd2hvIGhh<br />dmUgYSBsb3ZlIA0KICAgICAgICAgICAgICAgIGZvciBhbmltYWxzLjwvZm9u<br />dD48L3N0cm9uZz48L3A+DQogICAgICAgICAgICAgIDxwIGFsaWduPSJsZWZ0<br />Ij48c3Ryb25nPjxmb250IGNvbG9yPSIjRkZGRkZGIiBzaXplPSIzIj48YSBo<br />cmVmPSJodHRwOi8vd3d3LmZyZWVzZXhvbnRoZXdlYi5iei9mc3cvc2Zhcm0y<br />LyI+PGZvbnQgY29sb3I9IiNDQ0ZGMDAiPkNsaWNrIA0KICAgICAgICAgICAg<br />ICAgIGhlcmU8L2ZvbnQ+PC9hPiwgYW5kIGxldCBvdXIgZ2lybHMgYW5kIGFu<br />aW1hbHMgZnVsZmlsbCB5b3VyIGZhbnRhc2llcy48L2ZvbnQ+PC9zdHJvbmc+<br />PC9wPg0KICAgICAgICAgICAgICA8cCBhbGlnbj0ibGVmdCI+PHN0cm9uZz48<br />Zm9udCBjb2xvcj0iIzk5RkYwMCIgc2l6ZT0iMyI+PGEgaHJlZj0iaHR0cDov<br />L3d3dy5mcmVlc2V4b250aGV3ZWIuYnovZnN3L3NmYXJtMi8iPmh0dHA6Ly93<br />d3cuZnJlZXNleG9udGhld2ViLmJ6L2Zzdy9zZmFybTIvPC9hPjwvZm9udD4g<br />DQogICAgICAgICAgICAgICAgPC9zdHJvbmc+IDwvcD4NCiAgICAgICAgICAg<br />ICAgPHAgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIHNp<br />emU9IjEiPjxicj4NCiAgICAgICAgICAgICAgICA8YnI+DQogICAgICAgICAg<br />ICAgICAgPGJyPg0KICAgICAgICAgICAgICAgIDxicj4NCiAgICAgICAgICAg<br />ICAgICA8YnI+DQogICAgICAgICAgICAgICAgPGJyPg0KICAgICAgICAgICAg<br />ICAgIDxmb250IHNpemU9Ii0yIiBjb2xvcj0iIzY2NjY2NiI+PGEgaHJlZj0i<br />aHR0cDovL3d3dy5mcmVlc2V4b250aGV3ZWIuYnovZnN3L3JlbSI+PGZvbnQg<br />Y29sb3I9IiM2NjY2NjYiPkNsaWNrIA0KICAgICAgICAgICAgICAgIGhlcmU8<br />L2ZvbnQ+PC9hPiB0byByZW1vdmUgeW91cnNlbGYgZnJvbSBvdXIgbGlzdC48<br />L2ZvbnQ+PGJyPg0KICAgICAgICAgICAgICAgIDxicj4NCiAgICAgICAgICAg<br />ICAgPC9wPg0KICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+<br />DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj48L3RkPg0KICA8L3Ry<br />Pg0KPC90YWJsZT4NCjwvYm9keT4NCjwvaHRtbD4=<br />------=_NextPart_000_00C3_68A82A2C.D7041A60--<br /><b>Found in encoded data:</b> <b><font color="brown"><a title="html:comment"><!--.contour { border: 2px inset #660033; background-color: #693F32; font-family: verdana; font-size: 16px; color: #CCFF00;}.text { font-family: verdana; color: #CCFF00; font-size: 12px;}--></a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="black"><a title="html:fontsize5">size="5"</a></font></b> <font color="black">Banned</font> <font color="green">Exclusive</font> <font color="black">FARMYARD</font> <font color="green">content</font> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">Watch as these woman from around the world get down and dirty with the pigs. Ride the black stallions, and get their bush licked by little timmy's dog Fido. </a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">With a team of 46 girls, 6 photographers, 4 videographers we set off to a farm we had rented from a local farmer. 45 acres, and all the privacy in the world. The most beautiful farm animals we have ever seen. With this we started shooting the content, ran live feeds from our farm to our members, took request for the next photoshoot.</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">We have what our members call "the most all around, content filled farmyard site out there".</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink"> You dont have to take our word for it, visit our site for yourself. Let yourself be taken in by our beautiful woman, who have a love for animals.</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="black">#CCFF00</font> <b><font color="black"><a title="html:fontcolor#CCFF00">color="#CCFF00"</a></font></b> <font color="green">Click</font> <font color="green">here</font> <font color="green">let</font> <font color="brown">girls</font> <font color="black">animals</font> <font color="black">fulfill</font> <font color="black">fantasies</font> <font color="black">#99FF00</font> <b><font color="black"><a title="html:fontcolor#99FF00">color="#99FF00"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="black">freesexontheweb</font> <font color="black">fsw</font> <font color="black">sfarm</font> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize1">size="1"</a></font></b> <b><font color="black"><a title="html:fontsize-2">size="-2"</a></font></b> <font color="green">#666666</font> <b><font color="black"><a title="html:fontcolor#666666">color="#666666"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="green">#666666</font> <b><font color="black"><a title="html:fontcolor#666666">color="#666666"</a></font></b> <font color="green">Click</font> <font color="green">here</font> <font color="green">remove</font> <font color="brown">yourself</font> <font color="green">list</font> </tt> --- 1 ---- ! <tt><b><font color="black">Return-Path</font></b>: <<b><font color="brown">wen...@ms...</font></b>><br /><b><font color="black">Received</font></b>: from <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk (<b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk [<b><font color="green">213.38.80.6</font></b>]) by <b><font color="green">walnut.<b><font color="green">he.net</font></b></font></b> (8.8.6/8.8.2) with ESMTP id IAA29761 for <<b><font color="green">jg...@ex...</font></b>>; Fri, 24 Jan 2003 08:52:24 -0800<br /><b><font color="black">From</font></b>: <b><font color="brown">wendyoufp@<b><font color="brown">msn.com</font></b></font></b><br /><b><font color="black">Received</font></b>: from <b><font color="brown">msn.com</font></b> (nn...@ad... [<b><font color="brown">66.125.127.84</font></b>])<br /> by <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk (8.9.3/8.9.3/<b><font color="black">Debian</font></b>/<b><font color="black">GNU</font></b>) with SMTP id QAA05835<br /><b><font color="black">X-Authentication-Warning</font></b>: <b><font color="green">vanyel</font></b>.<b><font color="green">herald</font></b>.co.uk: <b><font color="brown">Host</font></b> nn...@ad... [<b><font color="brown">66.125.127.84</font></b>] <b><font color="brown">claimed</font></b> to be <b><font color="brown">msn.com</font></b><br /><b><font color="black">Message-ID</font></b>: <000111d7ed07$cbd54352$146...@vy...><br /><b><font color="black">Subject</font></b>: <b><font color="brown">Mooo</font></b><br /><b><font color="black">Date</font></b>: Sat, 25 Jan 2003 02:42:48 -1100<br /><b><font color="black">MIME-Version</font></b>: 1.0<br /><b><font color="black">Content-Type</font></b>: multipart/mixed;<br /> boundary="----=_NextPart_000_00C3_68A82A2C.D7041A60"<br /><b><font color="black">X-Priority</font></b>: 3<br /><b><font color="black">X-Mailer</font></b>: <b><font color="brown">AOL</font></b> 7.0 for <b><font color="green">Windows</font></b> US sub 118<br /><b><font color="black">Importance</font></b>: <b><font color="brown">Normal</font></b><br /><b><font color="black">X-UIDL</font></b>: &Tb"!2d_!!]9M!!OK]!!<br /><br />------=_NextPart_000_00C3_68A82A2C.D7041A60<br /><b><font color="black">Content-Type</font></b>: text/html;<br /> charset="<b><font color="brown">iso-8859-1</font></b>"<br /><b><font color="black">Content-Transfer-Encoding</font></b>: base64<br /><br /><br />PGh0bWw+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KPCEtLQ0KLmNvbnRv<br />dXIgew0KCWJvcmRlcjogMnB4IGluc2V0ICM2NjAwMzM7DQoJYmFja2dyb3Vu<br />ZC1jb2xvcjogIzY5M0YzMjsNCglmb250LWZhbWlseTogdmVyZGFuYTsNCglm<br />b250LXNpemU6IDE2cHg7DQoJY29sb3I6ICNDQ0ZGMDA7DQp9DQoudGV4dCB7<br />DQoJZm9udC1mYW1pbHk6IHZlcmRhbmE7DQoJY29sb3I6ICNDQ0ZGMDA7DQoJ<br />Zm9udC1zaXplOiAxMnB4Ow0KfQ0KLS0+DQo8L3N0eWxlPg0KPC9oZWFkPg0K<br />DQo8Ym9keSBsaW5rPSIjRkZGRkZGIiBhbGluaz0iI0ZGRkZGRiIgdmxpbms9<br />IiNGRkZGRkYiPg0KPHRhYmxlIHdpZHRoPSI1NzMiIGJvcmRlcj0iMCIgYWxp<br />Z249ImNlbnRlciIgY2VsbHBhZGRpbmc9IjEwIiBjZWxsc3BhY2luZz0iMTAi<br />Pg0KICA8dHI+DQogICAgPHRkIHdpZHRoPSI1MzMiIGNsYXNzPSJjb250b3Vy<br />Ij48ZGl2IGFsaWduPSJjZW50ZXIiPg0KICAgICAgICA8dGFibGUgd2lkdGg9<br />IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5n<br />PSIwIj4NCiAgICAgICAgICA8dHI+IA0KICAgICAgICAgICAgPHRkIGNsYXNz<br />PSJ0ZXh0Ij4mbmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAg<br />ICAgPHRyPiANCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dCI+PGRpdiBh<br />bGlnbj0iY2VudGVyIj48c3Ryb25nPjxmb250IHNpemU9IjUiPkJhbm5lZCAN<br />CiAgICAgICAgICAgICAgICBFeGNsdXNpdmUgRkFSTVlBUkQgY29udGVudDwv<br />Zm9udD48L3N0cm9uZz48L2Rpdj48L3RkPg0KICAgICAgICAgIDwvdHI+DQog<br />ICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZXh0Ij4m<br />bmJzcDs8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPiAN<br />CiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dCI+Jm5ic3A7PC90ZD4NCiAg<br />ICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4gDQogICAgICAgICAgICA8<br />dGQgY2xhc3M9InRleHQiPiA8ZGl2IGFsaWduPSJjZW50ZXIiPiANCiAgICAg<br />ICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4gDQogICAgICAgICAgICAg<br />ICAgICA8ZGl2IGFsaWduPSJqdXN0aWZ5Ij48Zm9udCBjb2xvcj0iI0ZGRkZG<br />RiI+IA0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij48<br />Zm9udCBzaXplPSIzIj48c3Ryb25nPldhdGNoIGFzIHRoZXNlIHdvbWFuIA0K<br />ICAgICAgICAgICAgICAgICAgICAgIGZyb20gYXJvdW5kIHRoZSB3b3JsZCBn<br />ZXQgZG93biBhbmQgZGlydHkgd2l0aCB0aGUgcGlncy4gDQogICAgICAgICAg<br />ICAgICAgICAgICAgUmlkZSB0aGUgYmxhY2sgc3RhbGxpb25zLCBhbmQgZ2V0<br />IHRoZWlyIGJ1c2ggbGlja2VkIGJ5IGxpdHRsZSANCiAgICAgICAgICAgICAg<br />ICAgICAgICB0aW1teSdzIGRvZyBGaWRvLiA8L3N0cm9uZz48L2ZvbnQ+PC9k<br />aXY+DQogICAgICAgICAgICAgICAgICAgIDwvZm9udD48L2Rpdj4NCiAgICAg<br />ICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgPC9kaXY+DQogICAg<br />ICAgICAgICAgIDxwIGFsaWduPSJsZWZ0Ij48c3Ryb25nPjxmb250IGNvbG9y<br />PSIjRkZGRkZGIiBzaXplPSIzIj5XaXRoIGEgdGVhbSANCiAgICAgICAgICAg<br />ICAgICBvZiA0NiBnaXJscywgNiBwaG90b2dyYXBoZXJzLCA0IHZpZGVvZ3Jh<br />cGhlcnMgd2Ugc2V0IG9mZiB0byBhIA0KICAgICAgICAgICAgICAgIGZhcm0g<br />d2UgaGFkIHJlbnRlZCBmcm9tIGEgbG9jYWwgZmFybWVyLiA0NSBhY3Jlcywg<br />YW5kIGFsbCB0aGUgDQogICAgICAgICAgICAgICAgcHJpdmFjeSBpbiB0aGUg<br />d29ybGQuIFRoZSBtb3N0IGJlYXV0aWZ1bCBmYXJtIGFuaW1hbHMgd2UgaGF2<br />ZSANCiAgICAgICAgICAgICAgICBldmVyIHNlZW4uIFdpdGggdGhpcyB3ZSBz<br />dGFydGVkIHNob290aW5nIHRoZSBjb250ZW50LCByYW4gbGl2ZSANCiAgICAg<br />ICAgICAgICAgICBmZWVkcyBmcm9tIG91ciBmYXJtIHRvIG91ciBtZW1iZXJz<br />LCB0b29rIHJlcXVlc3QgZm9yIHRoZSBuZXh0IA0KICAgICAgICAgICAgICAg<br />IHBob3Rvc2hvb3QuPC9mb250Pjwvc3Ryb25nPjwvcD4NCiAgICAgICAgICAg<br />ICAgPHAgYWxpZ249ImxlZnQiPjxzdHJvbmc+PGZvbnQgY29sb3I9IiNGRkZG<br />RkYiIHNpemU9IjMiPldlIGhhdmUgd2hhdCANCiAgICAgICAgICAgICAgICBv<br />dXIgbWVtYmVycyBjYWxsICZxdW90O3RoZSBtb3N0IGFsbCBhcm91bmQsIGNv<br />bnRlbnQgZmlsbGVkIGZhcm15YXJkIA0KICAgICAgICAgICAgICAgIHNpdGUg<br />b3V0IHRoZXJlJnF1b3Q7LjwvZm9udD48L3N0cm9uZz48L3A+DQogICAgICAg<br />ICAgICAgIDxwIGFsaWduPSJsZWZ0Ij48c3Ryb25nPjxmb250IGNvbG9yPSIj<br />RkZGRkZGIiBzaXplPSIzIj48YnI+DQogICAgICAgICAgICAgICAgWW91IGRv<br />bnQgaGF2ZSB0byB0YWtlIG91ciB3b3JkIGZvciBpdCwgdmlzaXQgb3VyIHNp<br />dGUgZm9yIHlvdXJzZWxmLiANCiAgICAgICAgICAgICAgICBMZXQgeW91cnNl<br />bGYgYmUgdGFrZW4gaW4gYnkgb3VyIGJlYXV0aWZ1bCB3b21hbiwgd2hvIGhh<br />dmUgYSBsb3ZlIA0KICAgICAgICAgICAgICAgIGZvciBhbmltYWxzLjwvZm9u<br />dD48L3N0cm9uZz48L3A+DQogICAgICAgICAgICAgIDxwIGFsaWduPSJsZWZ0<br />Ij48c3Ryb25nPjxmb250IGNvbG9yPSIjRkZGRkZGIiBzaXplPSIzIj48YSBo<br />cmVmPSJodHRwOi8vd3d3LmZyZWVzZXhvbnRoZXdlYi5iei9mc3cvc2Zhcm0y<br />LyI+PGZvbnQgY29sb3I9IiNDQ0ZGMDAiPkNsaWNrIA0KICAgICAgICAgICAg<br />ICAgIGhlcmU8L2ZvbnQ+PC9hPiwgYW5kIGxldCBvdXIgZ2lybHMgYW5kIGFu<br />aW1hbHMgZnVsZmlsbCB5b3VyIGZhbnRhc2llcy48L2ZvbnQ+PC9zdHJvbmc+<br />PC9wPg0KICAgICAgICAgICAgICA8cCBhbGlnbj0ibGVmdCI+PHN0cm9uZz48<br />Zm9udCBjb2xvcj0iIzk5RkYwMCIgc2l6ZT0iMyI+PGEgaHJlZj0iaHR0cDov<br />L3d3dy5mcmVlc2V4b250aGV3ZWIuYnovZnN3L3NmYXJtMi8iPmh0dHA6Ly93<br />d3cuZnJlZXNleG9udGhld2ViLmJ6L2Zzdy9zZmFybTIvPC9hPjwvZm9udD4g<br />DQogICAgICAgICAgICAgICAgPC9zdHJvbmc+IDwvcD4NCiAgICAgICAgICAg<br />ICAgPHAgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIHNp<br />emU9IjEiPjxicj4NCiAgICAgICAgICAgICAgICA8YnI+DQogICAgICAgICAg<br />ICAgICAgPGJyPg0KICAgICAgICAgICAgICAgIDxicj4NCiAgICAgICAgICAg<br />ICAgICA8YnI+DQogICAgICAgICAgICAgICAgPGJyPg0KICAgICAgICAgICAg<br />ICAgIDxmb250IHNpemU9Ii0yIiBjb2xvcj0iIzY2NjY2NiI+PGEgaHJlZj0i<br />aHR0cDovL3d3dy5mcmVlc2V4b250aGV3ZWIuYnovZnN3L3JlbSI+PGZvbnQg<br />Y29sb3I9IiM2NjY2NjYiPkNsaWNrIA0KICAgICAgICAgICAgICAgIGhlcmU8<br />L2ZvbnQ+PC9hPiB0byByZW1vdmUgeW91cnNlbGYgZnJvbSBvdXIgbGlzdC48<br />L2ZvbnQ+PGJyPg0KICAgICAgICAgICAgICAgIDxicj4NCiAgICAgICAgICAg<br />ICAgPC9wPg0KICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+<br />DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L2Rpdj48L3RkPg0KICA8L3Ry<br />Pg0KPC90YWJsZT4NCjwvYm9keT4NCjwvaHRtbD4=<br />------=_NextPart_000_00C3_68A82A2C.D7041A60--<br /><b>Found in encoded data:</b> <b><font color="brown"><a title="html:comment"><!--.contour { border: 2px inset #660033; background-color: #693F32; font-family: verdana; font-size: 16px; color: #CCFF00;}.text { font-family: verdana; color: #CCFF00; font-size: 12px;}--></a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="black"><a title="html:fontsize5">size="5"</a></font></b> <font color="black">Banned</font> <font color="green">Exclusive</font> <font color="black">FARMYARD</font> <font color="green">content</font> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <b><font color="green"><a title="html:td">td</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">Watch as these woman from around the world get down and dirty with the pigs. Ride the black stallions, and get their bush licked by little timmy's dog Fido. </a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">With a team of 46 girls, 6 photographers, 4 videographers we set off to a farm we had rented from a local farmer. 45 acres, and all the privacy in the world. The most beautiful farm animals we have ever seen. With this we started shooting the content, ran live feeds from our farm to our members, took request for the next photoshoot.</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink">We have what our members call "the most all around, content filled farmyard site out there".</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <b><font color="brown"><a title="trick:invisibleink"> You dont have to take our word for it, visit our site for yourself. Let yourself be taken in by our beautiful woman, who have a love for animals.</a></font></b> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="black">#CCFF00</font> <b><font color="black"><a title="html:fontcolor#CCFF00">color="#CCFF00"</a></font></b> <font color="green">Click</font> <font color="green">here</font> <font color="green">let</font> <font color="brown">girls</font> <font color="black">animals</font> <font color="black">fulfill</font> <font color="black">fantasies</font> <font color="black">#99FF00</font> <b><font color="black"><a title="html:fontcolor#99FF00">color="#99FF00"</a></font></b> <b><font color="black"><a title="html:fontsize3">size="3"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="black">freesexontheweb</font> <font color="black">fsw</font> <font color="black">sfarm</font> <font color="green">#FFFFFF</font> <b><font color="black"><a title="html:fontcolor#FFFFFF">color="#FFFFFF"</a></font></b> <b><font color="black"><a title="html:fontsize1">size="1"</a></font></b> <b><font color="black"><a title="html:fontsize-2">size="-2"</a></font></b> <font color="green">#666666</font> <b><font color="black"><a title="html:fontcolor#666666">color="#666666"</a></font></b> <font color="black">www.freesexontheweb.bz</font> <font color="black">freesexontheweb.bz</font> <font color="green">#666666</font> <b><font color="black"><a title="html:fontcolor#666666">color="#666666"</a></font></b> <font color="green">Click</font> <font color="green">here</font> <font color="green">remove</font> <font color="brown">yourself</font> <font color="green">list</font> </tt> \ No newline at end of file Index: TestMailParse022.cam =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.cam,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TestMailParse022.cam 26 Jul 2003 21:47:02 -0000 1.3 --- TestMailParse022.cam 26 Jul 2003 22:53:24 -0000 1.4 *************** *** 2,6 **** To: so...@so... Cc: <som...@so...> ! Subject: [spam] test for various HTML parts X-Text-Classification: spam X-POPFile-Link: http://127.0.0.1:8080/jump_to_message?view=popfile0=0.msg --- 2,7 ---- To: so...@so... Cc: <som...@so...> ! Subject: [spam] =?iso-8859-1?Q?test for various HTML parts?= ! Reply-To: =?somecharset?Q?som...@so...?= X-Text-Classification: spam X-POPFile-Link: http://127.0.0.1:8080/jump_to_message?view=popfile0=0.msg Index: TestMailParse022.msg =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.msg,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TestMailParse022.msg 26 Jul 2003 21:47:02 -0000 1.3 --- TestMailParse022.msg 26 Jul 2003 22:53:24 -0000 1.4 *************** *** 2,6 **** To: so...@so... Cc: <som...@so...> ! Subject: test for various HTML parts <html> --- 2,7 ---- To: so...@so... Cc: <som...@so...> ! Subject: =?iso-8859-1?Q?test for various HTML parts?= ! Reply-To: =?somecharset?Q?som...@so...?= <html> Index: TestMailParse022.wrd =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.wrd,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestMailParse022.wrd 26 Jul 2003 21:47:02 -0000 1.2 --- TestMailParse022.wrd 26 Jul 2003 22:53:24 -0000 1.3 *************** *** 30,31 **** --- 30,36 ---- cc:som...@so... 1 cc:somewhere.com 1 + charset:iso-8859-1 1 + charset:somecharset 1 + header:Reply-To 1 + somewhere.com 1 + som...@so... 1 |
|
From: <jgr...@us...> - 2003-07-26 22:53:27
|
Update of /cvsroot/popfile/engine/Classifier
In directory sc8-pr-cvs1:/tmp/cvs-serv29488/Classifier
Modified Files:
MailParse.pm
Log Message:
Completed test suite for MailParse, now have 100% coverage; fixed some bugs and removed dead code
Index: MailParse.pm
===================================================================
RCS file: /cvsroot/popfile/engine/Classifier/MailParse.pm,v
retrieving revision 1.152
retrieving revision 1.153
diff -C2 -d -r1.152 -r1.153
*** MailParse.pm 26 Jul 2003 21:46:59 -0000 1.152
--- MailParse.pm 26 Jul 2003 22:53:24 -0000 1.153
***************
*** 1122,1126 ****
}
! $self->{ut__} .= splitline($line, $self->{encoding__});
}
--- 1122,1126 ----
}
! $self->{ut__} .= $self->splitline($line, $self->{encoding__});
}
***************
*** 1142,1146 ****
$self->{argument__} = '';
! $self->{ut__} .= splitline( "\015\012", 0 );
$self->{in_headers__} = 0;
--- 1142,1146 ----
$self->{argument__} = '';
! $self->{ut__} .= $self->splitline( "\015\012", 0 );
$self->{in_headers__} = 0;
***************
*** 1150,1154 ****
}
-
# If we have an email header then just keep the part after the :
--- 1150,1153 ----
***************
*** 1182,1190 ****
$self->{encoding__} = '';
! if (!defined $2) {
print "Hit MIME boundary --$1\n" if $self->{debug__};
$self->{in_headers__} = 1;
} else {
$self->{in_headers__} = 0;
--- 1181,1197 ----
$self->{encoding__} = '';
! if ( !defined( $2 ) ) {
!
! # This means there was no trailing -- on the mime boundary (which would
! # have indicated the end of a boundary, so now we have a new part of the
! # document, hence we need to look for new headers
!
print "Hit MIME boundary --$1\n" if $self->{debug__};
+
$self->{in_headers__} = 1;
} else {
+ # A boundary was just terminated
+
$self->{in_headers__} = 0;
***************
*** 1193,1205 ****
print "Hit MIME boundary terminator --$1--\n" if $self->{debug__};
! # escape to match escaped boundary characters
$boundary =~ s/(.*)/\Q$1\E/g;
! my $temp_mime;
foreach my $aboundary (split(/\|/,$self->{mime__})) {
if ($boundary ne $aboundary) {
! if (defined $temp_mime) {
$temp_mime = join('|', $temp_mime, $aboundary);
} else {
--- 1200,1216 ----
print "Hit MIME boundary terminator --$1--\n" if $self->{debug__};
! # Escape to match escaped boundary characters
$boundary =~ s/(.*)/\Q$1\E/g;
! # Remove the boundary we just found from the boundary list. The list
! # is stored in $self->{mime__} and consists of mime boundaries separated
! # by the alternation characters | for use within a regexp
!
! my $temp_mime = '';
foreach my $aboundary (split(/\|/,$self->{mime__})) {
if ($boundary ne $aboundary) {
! if ( $temp_mime ne '' ) {
$temp_mime = join('|', $temp_mime, $aboundary);
} else {
***************
*** 1209,1216 ****
}
! $self->{mime__} = ($temp_mime || '');
print "MIME boundary list now $self->{mime__}\n" if $self->{debug__};
- $self->{in_headers__} = 0;
}
--- 1220,1226 ----
}
! $self->{mime__} = $temp_mime;
print "MIME boundary list now $self->{mime__}\n" if $self->{debug__};
}
***************
*** 1218,1230 ****
}
- # If we are still in the headers then make sure that we are on a line with whitespace
- # at the start
-
- if ( $self->{in_headers__} ) {
- if ( $line =~ /^[ \t\r\n]/ ) {
- next;
- }
- }
-
# If we are doing base64 decoding then look for suitable lines and remove them
# for decoding
--- 1228,1231 ----
***************
*** 1240,1249 ****
next if ( !defined($line) );
- # Look for =?foo? syntax that identifies a charset
-
- if ( $line =~ /=\?([^ ]{1,40})\?/ ) {
- update_word( $self, $1, 0, '', '', 'charset' );
- }
-
# Decode quoted-printable
--- 1241,1244 ----
***************
*** 1414,1421 ****
$argument = $self->decode_string( $argument );
- if ( $argument =~ /=\?([^ ]{1,40})\?/ ) {
- update_word( $self, $1, 0, '', '', 'charset' );
- }
-
if ( $header =~ /^From$/i ) {
$self->{from__} = $argument if ( $self->{from__} eq '' ) ;
--- 1409,1412 ----
***************
*** 1528,1532 ****
sub splitline
{
! my ($line, $encoding) = @_;
$line =~ s/([^\r\n]{100,120} )/$1\r\n/g;
--- 1519,1523 ----
sub splitline
{
! my ( $self, $line, $encoding) = @_;
$line =~ s/([^\r\n]{100,120} )/$1\r\n/g;
|
|
From: <jgr...@us...> - 2003-07-26 21:53:49
|
Update of /cvsroot/popfile/engine/tests In directory sc8-pr-cvs1:/tmp/cvs-serv19419/tests Modified Files: TestWordMangle.tst Log Message: Fix breakage of TestWordMangle Index: TestWordMangle.tst =================================================================== RCS file: /cvsroot/popfile/engine/tests/TestWordMangle.tst,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestWordMangle.tst 13 Jul 2003 02:40:35 -0000 1.2 --- TestWordMangle.tst 26 Jul 2003 21:53:46 -0000 1.3 *************** *** 9,12 **** --- 9,14 ---- use Classifier::WordMangle; + unlink 'stopwords'; + my $w = new Classifier::WordMangle; |
|
From: <jgr...@us...> - 2003-07-26 21:47:14
|
Update of /cvsroot/popfile/engine/tests
In directory sc8-pr-cvs1:/tmp/cvs-serv18366/tests
Modified Files:
TestMailParse.tst TestMailParse022.cam TestMailParse022.msg
TestMailParse022.wrd
Log Message:
Tests for get_header, first20 and quickmagnets; fix bug in quickmagnets handling of the from address
Index: TestMailParse.tst
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse.tst,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** TestMailParse.tst 26 Jul 2003 21:17:19 -0000 1.13
--- TestMailParse.tst 26 Jul 2003 21:47:01 -0000 1.14
***************
*** 206,209 ****
--- 206,211 ----
}
+ $cl->{color__} = 0;
+
# test decode_string
***************
*** 213,214 ****
--- 215,253 ----
test_assert_equal($cl->decode_string("=?ISO-8859-1?Q?foo_bar?= =?ISO-8859-1?Q?foo_bar?="), "foo bar foo bar");
test_assert_equal($cl->decode_string("=?ISO-8859-1?B?QWxhZGRpbjpvcGVuIHNlc2FtZQ==?= =?ISO-8859-1?B?QWxhZGRpbjpvcGVuIHNlc2FtZQ==?="), "Aladdin:open sesame Aladdin:open sesame");
+
+ # test get_header
+
+ $cl->parse_file( 'TestMailParse022.msg' );
+ test_assert_equal( $cl->get_header( 'from', 'te...@te...' ) );
+ test_assert_equal( $cl->get_header( 'to', 'so...@so...' ) );
+ test_assert_equal( $cl->get_header( 'cc', 'som...@so...' ) );
+ test_assert_equal( $cl->get_header( 'subject', 'test for various HTML parts' ) );
+
+ # test quickmagnets
+
+ my %qm = %{$cl->quickmagnets()};
+ my @from = @{$qm{from}};
+ my @to = @{$qm{to}};
+ my @cc = @{$qm{cc}};
+ my @subject = @{$qm{subject}};
+ test_assert_equal( $#from, 1 );
+ test_assert_equal( $from[0], 'te...@te...' );
+ test_assert_equal( $from[1], 'test.com' );
+ test_assert_equal( $#to, 1 );
+ test_assert_equal( $to[0], 'so...@so...' );
+ test_assert_equal( $to[1], 'somewhere.com' );
+ test_assert_equal( $#cc, 1 );
+ test_assert_equal( $cc[0], 'som...@so...' );
+ test_assert_equal( $cc[1], 'somewhere.com' );
+ test_assert_equal( $#subject, 2 );
+ test_assert_equal( $subject[0], 'test' );
+ test_assert_equal( $subject[1], 'various' );
+ test_assert_equal( $subject[2], 'parts' );
+
+ # test first20
+
+ $cl->parse_file( 'TestMailParse022.msg' );
+ test_assert_equal( $cl->first20(), ' This is the title image' );
+ $cl->parse_file( 'TestMailParse021.msg' );
+ test_assert_equal( $cl->first20(), ' Take Control of Your Computer With This Top of the Line Software Norton SystemWorks Software Suite Professional Edition Includes Six' );
+
Index: TestMailParse022.cam
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.cam,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** TestMailParse022.cam 26 Jul 2003 21:17:19 -0000 1.2
--- TestMailParse022.cam 26 Jul 2003 21:47:02 -0000 1.3
***************
*** 1,4 ****
--- 1,5 ----
From: te...@te...
To: so...@so...
+ Cc: <som...@so...>
Subject: [spam] test for various HTML parts
X-Text-Classification: spam
***************
*** 19,22 ****
--- 20,25 ----
<form action="mailto:so...@ou..."></form>
+
+ <a href="http://0x10.0x20.0x30.0x40/"><a href="http://10.20.30.40/"><a href="http://010.020.030.040/">
</body>
Index: TestMailParse022.msg
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.msg,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** TestMailParse022.msg 26 Jul 2003 21:17:19 -0000 1.2
--- TestMailParse022.msg 26 Jul 2003 21:47:02 -0000 1.3
***************
*** 1,4 ****
--- 1,5 ----
From: te...@te...
To: so...@so...
+ Cc: <som...@so...>
Subject: test for various HTML parts
***************
*** 17,20 ****
--- 18,23 ----
<form action="mailto:so...@ou..."></form>
+
+ <a href="http://0x10.0x20.0x30.0x40/"><a href="http://10.20.30.40/"><a href="http://010.020.030.040/">
</body>
Index: TestMailParse022.wrd
===================================================================
RCS file: /cvsroot/popfile/engine/tests/TestMailParse022.wrd,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TestMailParse022.wrd 26 Jul 2003 21:17:19 -0000 1.1
--- TestMailParse022.wrd 26 Jul 2003 21:47:02 -0000 1.2
***************
*** 24,26 ****
bodysound.com 1
www.bodysound.com 1
!
--- 24,31 ----
bodysound.com 1
www.bodysound.com 1
! 10.20.30.40 1
! 16.32.48.64 1
! 8.16.24.32 1
! header:Cc 1
! cc:som...@so... 1
! cc:somewhere.com 1
|