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: <ssc...@us...> - 2003-04-26 09:43:26
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv32380 Modified Files: Bayes.pm Log Message: prevent duplicates, header saving and message over-writing when toptoo is enabled [ 701390 ] -toptoo 1 results in duplicates in history [ 705448 ] Right Classification, Wrong Headers Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.137 retrieving revision 1.138 diff -C2 -d -r1.137 -r1.138 *** Bayes.pm 26 Apr 2003 04:22:54 -0000 1.137 --- Bayes.pm 26 Apr 2003 09:43:20 -0000 1.138 *************** *** 772,775 **** --- 772,776 ---- # $nosave - indicates that the message downloaded should not be saved in the history # $class - if we already know the classification + # $echo - 1 to echo to the client, 0 to supress, defaults to 1 # # Returns a classification if it worked, otherwise returns an empty string *************** *** 778,782 **** sub classify_and_modify { ! my ( $self, $mail, $client, $dcount, $mcount, $nosave, $class ) = @_; my $msg_subject = ''; # The message subject --- 779,785 ---- sub classify_and_modify { ! my ( $self, $mail, $client, $dcount, $mcount, $nosave, $class, $echo ) = @_; ! ! $echo = 1 unless (defined $echo); my $msg_subject = ''; # The message subject *************** *** 843,859 **** $message_size += length $line; print TEMP $fileline; ! ! if ( $line =~ /^Subject:(.*)/i ) { ! $msg_subject = $1; ! $msg_subject =~ s/(\012|\015)//g; ! next; ! } ! ! # Strip out the X-Text-Classification header that is in an incoming message ! if ( ( $line =~ /^X-Text-Classification:/i ) == 0 ) { ! if ( $msg_subject eq '' ) { ! $msg_head_before .= $line; ! } else { ! $msg_head_after .= $line; } } --- 846,867 ---- $message_size += length $line; print TEMP $fileline; ! ! # If there is no echoing occuring, it doesn't matter what we do to these ! ! if ($echo) { ! ! if ( $line =~ /^Subject:(.*)/i ) { ! $msg_subject = $1; ! $msg_subject =~ s/(\012|\015)//g; ! next; ! } ! ! # Strip out the X-Text-Classification header that is in an incoming message ! if ( ( $line =~ /^X-Text-Classification:/i ) == 0 ) { ! if ( $msg_subject eq '' ) { ! $msg_head_before .= $line; ! } else { ! $msg_head_after .= $line; ! } } } *************** *** 871,875 **** # Check to see if too much time has passed and we need to keep the mail client happy if ( time > ( $last_timeout + 2 ) ) { ! print $client "X-POPFile-TimeoutPrevention: $timeout_count$eol" if ( !$nosave ); $timeout_count += 1; $last_timeout = time; --- 879,883 ---- # Check to see if too much time has passed and we need to keep the mail client happy if ( time > ( $last_timeout + 2 ) ) { ! print $client "X-POPFile-TimeoutPrevention: $timeout_count$eol" if ( $echo ); $timeout_count += 1; $last_timeout = time; *************** *** 925,929 **** # Echo the text of the message to the client ! if ( !$nosave ) { # If the bucket is quarantined then we'll treat it specially by changing the message header to contain --- 933,937 ---- # Echo the text of the message to the client ! if ( $echo ) { # If the bucket is quarantined then we'll treat it specially by changing the message header to contain *************** *** 967,979 **** if ( $got_full_body == 0 ) { ! $self->echo_to_dot_( $mail, $client ) if ( !$nosave ); } else { if ( $classification ne 'unclassified' ) { ! if ( $self->{parameters__}{$classification}{quarantine} == 1 ) { print $client "$eol--$temp_file$eol"; ! } } ! print $client ".$eol" if ( !$nosave ); } --- 975,987 ---- if ( $got_full_body == 0 ) { ! $self->echo_to_dot_( $mail, $client ) if ( $echo ); } else { if ( $classification ne 'unclassified' ) { ! if ( ( $self->{parameters__}{$classification}{quarantine} == 1 ) && $echo ) { print $client "$eol--$temp_file$eol"; ! } } ! print $client ".$eol" if ( $echo ); } |
From: <ssc...@us...> - 2003-04-26 04:22:57
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv15476 Modified Files: Bayes.pm Log Message: fix several magnet display issues Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.136 retrieving revision 1.137 diff -C2 -d -r1.136 -r1.137 *** Bayes.pm 25 Apr 2003 07:02:05 -0000 1.136 --- Bayes.pm 26 Apr 2003 04:22:54 -0000 1.137 *************** *** 541,545 **** if ( $noattype =~ m/\Q$regex\E/i ) { ! $self->{scores__} = "<b>Magnet Used</b><p>Classified to <font color=\"$self->{colors__}{$bucket}\">$bucket</font> because of magnet $type: $magnet</p>"; $self->{magnet_used__} = 1; $self->{magnet_detail__} = "$type: $magnet"; --- 541,545 ---- if ( $noattype =~ m/\Q$regex\E/i ) { ! $self->{scores__} = "<b>Magnet Used</b><p>Classified to <font color=\"$self->{colors__}{$bucket}\">$bucket</font> because of magnet $type: " . Classifier::MailParse::splitline($magnet,0) . "</p>"; $self->{magnet_used__} = 1; $self->{magnet_detail__} = "$type: $magnet"; |
From: <ssc...@us...> - 2003-04-26 04:21:37
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv15210 Modified Files: HTML.pm Log Message: fix several magnet display issues Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.144 retrieving revision 1.145 diff -C2 -d -r1.144 -r1.145 *** HTML.pm 21 Apr 2003 20:54:00 -0000 1.144 --- HTML.pm 26 Apr 2003 04:21:31 -0000 1.145 *************** *** 1318,1325 **** --- 1318,1333 ---- # to validate, must replace & with & # stan todo note: come up with a smarter regex, this one's a bludgeon + # another todo: Move this stuff into a function to make text + # safe for inclusion in a form field my $validatingMagnet = $magnet; $validatingMagnet =~ s/&/&/g; $validatingMagnet =~ s/</</g; $validatingMagnet =~ s/>/>/g; + + # escape quotation characters to avoid orphan data within tags + # todo: function to make arbitrary data safe for inclusion within + # a html tag attribute (inside double-quotes) + + $validatingMagnet =~ s/\"/\"\;/g; $body .= ">\n<td><select name=\"type$i\" id=\"magnetsAddType\">\n"; *************** *** 1328,1332 **** $body .= "<option value=\"$mtype\" $selected>\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; } ! $body .= "</select>: <input type=\"text\" name=\"text$i\" value=\"$validatingMagnet\" /></td>\n"; $body .= "<td><select name=\"bucket$i\" id=\"magnetsAddBucket\">\n"; --- 1336,1340 ---- $body .= "<option value=\"$mtype\" $selected>\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; } ! $body .= "</select>: <input type=\"text\" name=\"text$i\" value=\"$validatingMagnet\" size=\"" . length($magnet) . "\" /></td>\n"; $body .= "<td><select name=\"bucket$i\" id=\"magnetsAddBucket\">\n"; *************** *** 2837,2841 **** $body .= "</select>\n"; } else { ! $body .= " ($self->{language__}{History_MagnetUsed}: $self->{history__}{$mail_file}{magnet})"; } } --- 2845,2849 ---- $body .= "</select>\n"; } else { ! $body .= " ($self->{language__}{History_MagnetUsed}: " . splitline( $self->{history__}{$mail_file}{magnet}, 0 ) . ")"; } } *************** *** 2937,2940 **** --- 2945,2953 ---- } + $body .= "</td>\n"; + + $body .= "<td class=\"openMessageCloser\">"; + $body .= "<a class=\"messageLink\" href=\"/history?start_message=$start_message&session=$self->{session_key__}&sort=$self->{form_}{sort}&search=$self->{form_}{search}&filter=$self->{form_}{filter}\">\n"; + $body .= "<span class=\"historyLabel\">$self->{language__}{Close}</span>\n</a>\n"; $body .= "</td>\n</tr>\n</table>\n"; *************** *** 2943,2953 **** $body .= "<table class=\"openMessageTable\" cellpadding=\"10%\" cellspacing=\"0\" width=\"100%\" summary=\"$self->{language__}{History_OpenMessageSummary}\">\n"; - # Close button - - # $body .= "<tr>\n<td class=\"openMessageCloser\">"; - # $body .= "<a class=\"messageLink\" href=\"/history?start_message=$start_message&session=$self->{session_key__}&sort=$self->{form_}{sort}&search=$self->{form_}{search}&filter=$self->{form_}{filter}\">\n"; - # $body .= "<span class=\"historyLabel\">$self->{language__}{Close}</span>\n</a>\n"; - # $body .= "</td>\n</tr>\n"; - $body .= "<tr><td>"; $body .= "<form id=\"HistoryMainForm\" action=\"/history\" method=\"POST\">\n"; --- 2956,2959 ---- *************** *** 2979,2983 **** $body .= "</select>\n<input type=\"submit\" class=\"reclassifyButton\" name=\"change\" value=\"$self->{language__}{Reclassify}\" />"; } else { ! $body .= " ($self->{language__}{History_MagnetUsed}: $self->{history__}{$mail_file}{magnet})"; } } --- 2985,2989 ---- $body .= "</select>\n<input type=\"submit\" class=\"reclassifyButton\" name=\"change\" value=\"$self->{language__}{Reclassify}\" />"; } else { ! $body .= " ($self->{language__}{History_MagnetUsed}: " . splitline( $self->{history__}{$mail_file}{magnet} , 0) . ")"; } } *************** *** 3370,3373 **** --- 3376,3407 ---- $self->{dynamic_ui__}{$type}{$name} = $object; + } + + # --------------------------------------------------------------------------------------------- + # + # splitline - Escapes characters so a line will print as plain-text within a HTML document. + # + # $line The line to escape + # $encoding The value of any current encoding scheme + # + # --------------------------------------------------------------------------------------------- + + sub splitline + { + my ($line, $encoding) = @_; + $line =~ s/([^\r\n]{100,120} )/$1\r\n/g; + $line =~ s/([^ \r\n]{120})/$1\r\n/g; + + $line =~ s/</</g; + $line =~ s/>/>/g; + + if ( $encoding =~ /quoted\-printable/i ) { + $line =~ s/=3C/</g; + $line =~ s/=3E/>/g; + } + + $line =~ s/\t/ /g; + + return $line; } |
From: <xue...@us...> - 2003-04-25 11:25:40
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv24910 Modified Files: installer.nsi Log Message: Improved the popfile.cfg port extraction. Simplified the "StrCheckDecimal" function (using CBP approach). Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** installer.nsi 22 Apr 2003 21:45:24 -0000 1.36 --- installer.nsi 25 Apr 2003 11:25:36 -0000 1.37 *************** *** 453,462 **** StrCpy ${L_CMPRE} ${L_LNE} 10 StrCmp ${L_CMPRE} "pop3_port " got_pop3_port StrCpy ${L_CMPRE} ${L_LNE} 8 StrCmp ${L_CMPRE} "ui_port " got_ui_port - - StrCpy ${L_CMPRE} ${L_LNE} 10 - StrCmp ${L_CMPRE} "html_port " got_html_port FileWrite ${L_CLEANCFG} ${L_LNE} --- 453,460 ---- StrCpy ${L_CMPRE} ${L_LNE} 10 StrCmp ${L_CMPRE} "pop3_port " got_pop3_port + StrCmp ${L_CMPRE} "html_port " got_html_port StrCpy ${L_CMPRE} ${L_LNE} 8 StrCmp ${L_CMPRE} "ui_port " got_ui_port FileWrite ${L_CLEANCFG} ${L_LNE} *************** *** 891,928 **** Function StrCheckDecimal ! Exch $0 ; Original string ! Push $1 ; Final string ! Push $2 ; Current character ! Push $3 ; ASCII code of current char ! Push $4 ; Char equiv of ASCII code in $3 StrCpy $1 "" ! Loop: ! StrCpy $2 $0 1 ; Get next character ! StrCmp $2 "" Done StrCpy $0 $0 "" 1 ! StrCpy $3 48 ; 48 = ASCII code for '0' ! ! Loop2: ! IntFmt $4 %c $3 ; Get character from current ASCII code ! StrCmp $2 $4 ValidChar IntOp $3 $3 + 1 ! StrCmp $3 58 NotDigit Loop2 ; 58 = ASCII code one beyond '9' ! ! ValidChar: ! StrCpy $1 $1$2 ; Append to the final string ! Goto Loop ! ! NotDigit: ! StrCpy $1 "" ; Invalid char found so return empty string now ! ! Done: ! StrCpy $0 $1 ; Return the final string Pop $4 Pop $3 Pop $2 Pop $1 ! Exch $0 FunctionEnd --- 889,931 ---- Function StrCheckDecimal ! !define DECIMAL_DIGIT "0123456789" ! ! Exch $0 ; The input string ! Push $1 ; Holds the result: either "" (if input is invalid) or the input string (if valid) ! Push $2 ; A character from the input string ! Push $3 ; The offset to a character in the "validity check" string ! Push $4 ; A character from the "validity check" string ! Push $5 ; Holds the current "validity check" string StrCpy $1 "" ! next_input_char: ! StrCpy $2 $0 1 ; Get the next character from the input string ! StrCmp $2 "" done ! StrCpy $5 ${DECIMAL_DIGIT}$2 ; Add it to end of "validity check" to guarantee a match StrCpy $0 $0 "" 1 ! StrCpy $3 -1 ! ! next_valid_char: IntOp $3 $3 + 1 ! StrCpy $4 $5 1 $3 ; Extract next "valid" character (from "validity check" string) ! StrCmp $2 $4 0 next_valid_char ! IntCmp $3 10 invalid 0 invalid ; If match is with the char we added, input string is bad ! StrCpy $1 $1$4 ; Add "valid" character to the result ! goto next_input_char ! ! invalid: ! StrCpy $1 "" ! ! done: ! StrCpy $0 $1 ; Result is either a string of decimal digits or "" ! Pop $5 Pop $4 Pop $3 Pop $2 Pop $1 ! Exch $0 ; place result on top of the stack ! ! !undef DECIMAL_DIGIT FunctionEnd |
From: <ssc...@us...> - 2003-04-25 07:02:11
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv12139 Modified Files: Bayes.pm MailParse.pm Log Message: compact quickmagnets display, add entire From header data to quickmagnets Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.135 retrieving revision 1.136 diff -C2 -d -r1.135 -r1.136 *** Bayes.pm 21 Apr 2003 20:53:58 -0000 1.135 --- Bayes.pm 25 Apr 2003 07:02:05 -0000 1.136 *************** *** 631,661 **** if ($self->{wordscores__} && defined($ui) ) { ! my @qm = @{$self->{parser__}->quickmagnets()}; my %language = $ui->language(); my $session_key = $ui->session_key(); ! if ( $#qm >= 0 ) { my @buckets = $self->get_buckets(); my $i = 0; ! $self->{scores__} .= "<form action=\"/magnets\" method=\"POST\">\n"; $self->{scores__} .= "<input type=\"hidden\" name=\"session\" value=\"$session_key\" />"; ! $self->{scores__} .= "<input type=\"hidden\" name=\"count\" value=\"" . ($#qm+1) . "\" />"; $self->{scores__} .= "<hr><b>$language{QuickMagnets}</b><p>\n<table class=\"top20Words\">\n<tr>\n<th scope=\"col\">$language{Magnet}</th>\n<th>$language{Magnet_Always}</th>\n"; ! while ( $#qm >= 0 ) { ! my $type = shift @qm; ! my $text = shift @qm; ! $i += 1; ! ! $self->{scores__} .= "<tr><td scope=\"col\">$type: $text</td><td>"; ! $self->{scores__} .= "<input type=\"hidden\" name=\"type$i\" id=\"magnetsAddType\" value=\"$type\"/>"; ! $self->{scores__} .= "<input type=\"hidden\" name=\"text$i\" id=\"magnetsAddText\" value=\"$text\"/>"; ! $self->{scores__} .= "<select name=\"bucket$i\" id=\"magnetsAddBucket\">\n<option value=\"\"></option>\n"; ! ! foreach my $bucket (@buckets) { ! $self->{scores__} .= "<option value=\"$bucket\">$bucket</option>\n"; ! } ! ! $self->{scores__} .= "</select></td></tr>"; } --- 631,673 ---- if ($self->{wordscores__} && defined($ui) ) { ! my %qm = %{$self->{parser__}->quickmagnets()}; ! my $mlen = scalar(keys %{$self->{parser__}->quickmagnets()}); my %language = $ui->language(); my $session_key = $ui->session_key(); ! if ( $mlen >= 0 ) { my @buckets = $self->get_buckets(); my $i = 0; ! $self->{scores__} .= "<form action=\"/magnets\" method=\"get\">\n"; $self->{scores__} .= "<input type=\"hidden\" name=\"session\" value=\"$session_key\" />"; ! $self->{scores__} .= "<input type=\"hidden\" name=\"count\" value=\"" . ($mlen + 1) . "\" />"; $self->{scores__} .= "<hr><b>$language{QuickMagnets}</b><p>\n<table class=\"top20Words\">\n<tr>\n<th scope=\"col\">$language{Magnet}</th>\n<th>$language{Magnet_Always}</th>\n"; + + my %types = get_magnet_types(); + + foreach my $type ( keys %types ) { ! if (defined $qm{$type}) ! { ! $i += 1; ! ! ! $self->{scores__} .= "<tr><td scope=\"col\">$type: "; ! $self->{scores__} .= "<select name=\"text$i\" id=\"\">\n"; ! ! foreach my $magnet ( 0 .. $#{$qm{$type}} ) { ! $self->{scores__} .= "<option>" . Classifier::MailParse::splitline(@{$qm{$type}}[$magnet], 0) . "</option>\n"; ! } ! $self->{scores__} .= "</select>\n"; ! $self->{scores__} .= "</td><td>"; ! $self->{scores__} .= "<input type=\"hidden\" name=\"type$i\" id=\"magnetsAddType\" value=\"$type\"/>"; ! $self->{scores__} .= "<select name=\"bucket$i\" id=\"magnetsAddBucket\">\n<option value=\"\"></option>\n"; ! ! foreach my $bucket (@buckets) { ! $self->{scores__} .= "<option value=\"$bucket\">$bucket</option>\n"; ! } ! ! $self->{scores__} .= "</select></td></tr>"; ! } } Index: MailParse.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/MailParse.pm,v retrieving revision 1.115 retrieving revision 1.116 diff -C2 -d -r1.115 -r1.116 *** MailParse.pm 20 Apr 2003 22:19:06 -0000 1.115 --- MailParse.pm 25 Apr 2003 07:02:06 -0000 1.116 *************** *** 64,68 **** # a magnet type to a magnet string, e.g. from => po...@jg... ! $self->{quickmagnets__} = (); # These store the current HTML background color and font color to --- 64,68 ---- # a magnet type to a magnet string, e.g. from => po...@jg... ! $self->{quickmagnets__} = {}; # These store the current HTML background color and font color to *************** *** 181,185 **** if ( $prefix =~ /(from|to|cc|subject)/i ) { ! push @{$self->{quickmagnets__}}, ($prefix, $word); } --- 181,185 ---- if ( $prefix =~ /(from|to|cc|subject)/i ) { ! push @{$self->{quickmagnets__}{$prefix}}, $word; } *************** *** 1171,1179 **** $self->{from__} = $argument if ( $self->{from__} eq '' ) ; $prefix = 'from'; } if ( $header =~ /^To$/i ) { $prefix = 'to'; ! $self->{to__} = $argument if ( $self->{to__} eq '' ); } --- 1171,1180 ---- $self->{from__} = $argument if ( $self->{from__} eq '' ) ; $prefix = 'from'; + push @{$self->{quickmagnets__}{$prefix}}, $argument if ($argument ne ''); } if ( $header =~ /^To$/i ) { $prefix = 'to'; ! $self->{to__} = $argument if ( $self->{to__} eq '' ); } |
From: <jgr...@us...> - 2003-04-24 23:08:04
|
Update of /cvsroot/popfile/engine/skins In directory sc8-pr-cvs1:/tmp/cvs-serv16094 Added Files: windows.css Log Message: Added new skin --- NEW FILE: windows.css --- /* Windows skin emulates the look and feel of the Windows GUI without loading any graphics. Almost all the colors are system colors so the skin fits right in with your color scheme. It looks best by far in Mozilla 1.3 on any OS. IE 6 is ok but doesn't show the full effect, IE 5 is ugly but usable. Opera 7.10 and KDE Konqueror 3.04 are pretty good. Konqueror 2, and Mac OS9 IE 5 are not bad. Its does well on OS X's Safari 1.0 beta Opera, and IE 5. It seems on most all Mac browsers the "title bar" is not working correctly due to the way they handle system colors. Original design by Joseph Connors (TexasFett) <wi...@te...>, but wouldn't look nearly as good without Dan Martin (Kraelen). Thanks Dan. CSS2 sytle comments are below the line they apply to. CSS1 style comments are hacks to make the skin look better on certain browsers that ignore CSS1 commenting. But that means its not fully valid CSS2. Last Major Update: 3-29-03 Minor IE 6 Update: 4-19-03 */ body { background-color: Background; font: caption; /* set the system fonts for everything. */ margin-top: 1%; margin-left: 1%; margin-right: 1%; margin-bottom: 1em; } .shell { border-style: outset; border-color: ActiveBorder; border-width: 2px; background-color: ThreeDFace; width: 100%; padding: 0; } .shellTop { /* Was really getting in our way, got around it with absolute positioning. */ padding: 0; margin: 0; } .naked { color: ButtonText; background-color: transparent; font-weight: normal; } td.naked { padding: 0; margin: 0; border: 0; } a:link { color: darkblue; text-decoration: none; } a:visited { color: darkblue; text-decoration: none; } A:link:hover, A:visited:hover { text-decoration: underline; } submit { color: ButtonText; background-color: ThreeDFace; } table.head { top: 0; position: absolute; /* fixes shellTop "border" around head on Moz but causes problems with Opera */ // position: relative; /* this hack fixes the head on IE and Konq, they ignore CSS1 style comments */ margin: 1%; width: 98%; color: ButtonText; background-color: ActiveCaption; border: 2px outset ActiveBorder; } td.settingsPanel { border: 2px groove ActiveBorder; padding: 5px; /* want about 5px hoizontal betwen boxes on bucket page but doens't work */ } td.head { font-weight: bold; color: CaptionText; width: 50%; /* fix for Opera as long as the window is wide enough */ } .head { margin: 0px; } .head a { text-decoration: none; color: ActiveCaption; // color: CaptionText; /* hack that fixes head on IE and Konq, they ignore CSS1 style comments */ vertical-align: middle; } .head a:after { content:" X "; font-weight: bold; border: 1px outset ActiveBorder; color: ButtonText; background-color: ButtonFace; } .head a:hover { color: red; text-decoration: none; } .menu { padding: 0; margin: 0; } table.menu { padding-top: 20px; } .menu A, .menu A:hover { color: ButtonText; text-decoration: none; font-weight: normal; } .menuSelected A { Color: ButtonText; background-color: ThreeDFace; border-style: outset outset none; border-color: ActiveBorder; border-width: 2px; padding-top: 1px; padding-left: 5px; padding-right: 5px; padding-bottom: 6px; text-decoration: none; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; border-radius-topleft: 5px; border-radius-topright: 5px; } .menuSelected { padding: 0; } .menuStandard { padding-top: 6px; padding-left: 0px; padding-right: 0px; } .menuStandard A { color: ButtonText; background-color: ThreeDFace; border-style: outset outset none; border-color: ActiveBorder; border-width: 2px; padding-top: 1px; padding-left: 5px; padding-right: 5px; padding-bottom: 1px; text-decoration: none; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; border-radius-topleft: 5px; border-radius-topright: 5px; } .menuSpacer { width: 0; margin: 0; padding: 0; } .menuIndent { font-size: 0; width: 0; margin: 0; padding: 0; } .menu* a:hover { /* required for Konqueror to not show default hover color */ text-decoration: none; color: ButtonText; } .menu* a:visited { /* required for IE 6 to leave the visited menu text black */ text-decoration: none; color: ButtonText; } h2 { font-weight: bold; font-size: 1.2em; } tr.rowEven { background-color: transparent; /* If you would like more color try lightblue. */ } tr.rowOdd { background-color: lightgrey; /* Try AppWorkspace if you would like a system color along with transparent */ } tr.rowHighlighted { background-color: InfoBackground; } tr.rowEven:hover { background-color: InfoBackground; } tr.rowOdd:hover { background-color: InfoBackground; } .footer { color: InfoText; margin-top: 1em; border: 1px solid black; background-color: InfoBackground; margin-left: 20%; margin-right: 20%; font-weight: normal; } td.footerBody { text-align: center; padding: 2px; } td.stabColor01 { border: 1px outset ActiveBorder; } td.accuracy0to49 { background-color: red; color: black; } td.accuracy50to93 { background-color: yellow; color: black; } td.accuracy94to100 { background-color: green; color: black; } td.historyNavigatorTop { text-align: right; padding-right: 0.5em; } td.historyNavigatorBottom { text-align: right; padding-right: 0.5em; padding-bottom: 1em; } .historyWidgetsTop { border-top: none; border-bottom: none; width: 100%; } .historyTable { border-top: none; border-bottom: none; width: 100%; } .openMessageTable, .lookupResultsTable { border-width: 2px; border-style: inset; } .openMessageCloser { text-align: right; font-size: larger; font-weight: bold; } .openMessageBody { font-size: 1em; text-align: left; } div.error01 { background-color: transparent; color: red; font-size: larger; } div.error02 { background-color: transparent; color: red; } div.securityExplanation { margin-left: 0.8em; margin-right: 0.8em; margin-bottom: 0.8em; margin-top: 0; font-size: 95%; } span.graphFont { font-size: 95%; } /* - uncomment this section if you want On text to be bold span.bucketsWidgetStateOn { font-weight: bold; } span.configWidgetStateOn { font-weight: bold; } span.securityWidgetStateOn { font-weight: bold; } */ /* - uncomment this section for small version and adjust the percent as needed * { font-size: 98%; } */ |
From: <jgr...@us...> - 2003-04-22 21:45:34
|
Update of /cvsroot/popfile/windows In directory sc8-pr-cvs1:/tmp/cvs-serv30059 Modified Files: installer.nsi ioA.ini ioB.ini Log Message: Merge patch that adds checking of the port values to the installer Index: installer.nsi =================================================================== RCS file: /cvsroot/popfile/windows/installer.nsi,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** installer.nsi 15 Apr 2003 21:31:18 -0000 1.35 --- installer.nsi 22 Apr 2003 21:45:24 -0000 1.36 *************** *** 1,9 **** ! ; ! ; Copyright (c) 2001-2003 John Graham-Cumming ! ; ! ; Modified to work with NSIS v2.0b1 ! !define MUI_PRODUCT "POPFile" ! !define MUI_VERSION "0.18.1" ! !include "MUI.nsh" #---------------------------------------------------------------------------------------- --- 1,20 ---- [...1111 lines suppressed...] MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." --- 1101,1105 ---- Delete $INSTDIR\*.* ; this would be skipped if the user hits no RMDir /r $INSTDIR ! IfFileExists $INSTDIR 0 Removed MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." *************** *** 636,639 **** SectionEnd ! ;eof ! --- 1110,1114 ---- SectionEnd ! #-------------------------------------------------------------------------- ! # End of 'installer.nsi' ! #-------------------------------------------------------------------------- Index: ioA.ini =================================================================== RCS file: /cvsroot/popfile/windows/ioA.ini,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ioA.ini 19 Feb 2003 21:45:53 -0000 1.8 --- ioA.ini 22 Apr 2003 21:45:27 -0000 1.9 *************** *** 1,3 **** ! ; This "ioA.ini" file has been tested using NSIS v2.0b1 and Windows 98SE [Settings] --- 1,12 ---- ! #------------------------------------------------------------------- ! # ! # ioA.ini --- This file is used by "installer.nsi", the NSIS script ! # used to create the Windows installer for POPFile. ! # This file defines the layout of the custom page ! # used to choose the port and startup options. ! # ! # Copyright (c) 2001-2003 John Graham-Cumming ! # ! #------------------------------------------------------------------- [Settings] *************** *** 6,10 **** [Field 1] Type=label ! Text=Choose the default port number for POP3 connections (110 recommended). Left=0 Right=-1 --- 15,19 ---- [Field 1] Type=label ! Text=Choose the default port number for POP3 connections (110 recommended) Left=0 Right=-1 *************** *** 22,26 **** [Field 3] Type=label ! Text=Choose the default port number for user interface connections (8080 recommended) Left=0 Right=-1 --- 31,35 ---- [Field 3] Type=label ! Text=Choose the default port number for 'User Interface' connections (8080 recommended) Left=0 Right=-1 *************** *** 59,60 **** --- 68,73 ---- Top=115 Bottom=125 + + #-------------------- + # End of ioA.ini + #-------------------- Index: ioB.ini =================================================================== RCS file: /cvsroot/popfile/windows/ioB.ini,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ioB.ini 27 Feb 2003 00:05:18 -0000 1.4 --- ioB.ini 22 Apr 2003 21:45:28 -0000 1.5 *************** *** 1,77 **** ! [Settings] ! NumFields=10 ! NextButtonText=Next > ! ! [Field 1] ! Type=label ! Text=POPFile has detected the following Outlook Express email account and can automatically configure it to work with POPFile ! Left=0 ! Right=-1 ! Top=0 ! Bottom=20 ! ! [Field 2] ! Type=checkbox ! Text=Reconfigure this account to work with POPFile ! Left=0 ! Right=-1 ! Top=20 ! Bottom=40 ! ! [Field 3] ! Type=label ! Text=Email address: ! Left=16 ! Right=300 ! Top=59 ! Bottom=75 ! ! [Field 4] ! Type=label ! Text=POP3 server: ! Left=16 ! Right=300 ! Top=75 ! Bottom=91 ! ! [Field 5] ! Type=label ! Text=POP3 username: ! Left=16 ! Right=300 ! Top=91 ! Bottom=107 ! ! [Field 6] ! Type=label ! Text=If you uninstall POPFile the original settings will be restored ! Left=0 ! Right=-1 ! Top=118 ! Bottom=137 ! ! [Field 7] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=59 ! Bottom=75 ! ! [Field 8] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=75 ! Bottom=91 ! ! [Field 9] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=91 ! Bottom=107 [Field 10] --- 1,90 ---- ! #------------------------------------------------------------------- ! # ! # ioB.ini --- This file is used by "installer.nsi", the NSIS script ! # used to create the Windows installer for POPFile. ! # This file defines the layout of the custom page ! # used to configure Outlook Express accounts. ! # ! # Copyright (c) 2001-2003 John Graham-Cumming ! # ! #------------------------------------------------------------------- ! ! [Settings] ! NumFields=10 ! NextButtonText=Next > ! BackEnabled=0 ! CancelEnabled=0 ! ! [Field 1] ! Type=label ! Text=POPFile has detected the following Outlook Express email account and can automatically configure it to work with POPFile ! Left=0 ! Right=-1 ! Top=0 ! Bottom=20 ! ! [Field 2] ! Type=checkbox ! Text=Reconfigure this account to work with POPFile ! Left=0 ! Right=-1 ! Top=20 ! Bottom=40 ! ! [Field 3] ! Type=label ! Text=Email address: ! Left=16 ! Right=300 ! Top=59 ! Bottom=75 ! ! [Field 4] ! Type=label ! Text=POP3 server: ! Left=16 ! Right=300 ! Top=75 ! Bottom=91 ! ! [Field 5] ! Type=label ! Text=POP3 username: ! Left=16 ! Right=300 ! Top=91 ! Bottom=107 ! ! [Field 6] ! Type=label ! Text=If you uninstall POPFile the original settings will be restored ! Left=0 ! Right=-1 ! Top=118 ! Bottom=137 ! ! [Field 7] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=59 ! Bottom=75 ! ! [Field 8] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=75 ! Bottom=91 ! ! [Field 9] ! Type=label ! Text= ! Left=96 ! Right=300 ! Top=91 ! Bottom=107 [Field 10] *************** *** 83,84 **** --- 96,100 ---- Bottom=110 + #-------------------- + # End of ioB.ini + #-------------------- |
From: <jgr...@us...> - 2003-04-21 20:54:34
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv22382/Classifier Modified Files: Bayes.pm Log Message: Fix bug where clicking on a empty bucket caused a crash; added new clear_bucket API; added new Remove All Words button to bucket page; change the get_scores and clear_scores APIs to be a standard scores getter/setter as in the style of POPFile::Module Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.134 retrieving revision 1.135 diff -C2 -d -r1.134 -r1.135 *** Bayes.pm 21 Apr 2003 08:56:51 -0000 1.134 --- Bayes.pm 21 Apr 2003 20:53:58 -0000 1.135 *************** *** 1026,1030 **** my ( $self, $bucket ) = @_; ! return $self->{matrix__}{$bucket}; } --- 1026,1034 ---- my ( $self, $bucket ) = @_; ! if ( $self->get_bucket_word_count( $bucket ) > 0 ) { ! return $self->{matrix__}{$bucket}; ! } else { ! return (); ! } } *************** *** 1117,1121 **** } - $self->log_( "get_bucket_parameter( $bucket, $parameter ) is $param "); return $param; } --- 1121,1124 ---- *************** *** 1137,1142 **** my ( $self, $bucket, $parameter, $value ) = @_; - $self->log_( "set_bucket_parameter( $bucket, $parameter ) to $value "); - $self->{parameters__}{$bucket}{$parameter} = $value; $self->write_parameters(); --- 1140,1143 ---- *************** *** 1415,1418 **** --- 1416,1440 ---- # --------------------------------------------------------------------------------------------- # + # clear_bucket + # + # Removes all words from a bucket + # + # $bucket The bucket to clear + # + # --------------------------------------------------------------------------------------------- + + sub clear_bucket + { + my ( $self, $bucket ) = @_; + + my $bucket_directory = $self->config_( 'corpus' ) . "/$bucket"; + + unlink( "$bucket_directory/table" ); + + $self->load_word_matrix_(); + } + + # --------------------------------------------------------------------------------------------- + # # clear_magnets # *************** *** 1543,1592 **** } ! # --------------------------------------------------------------------------------------------- ! # ! # get_scores - Gets the HTMLized (for now) listing of word scores ! # ! # --------------------------------------------------------------------------------------------- ! ! sub get_scores ! { ! my ( $self ) = @_; ! ! return $self->{scores__}; ! } ! ! # --------------------------------------------------------------------------------------------- ! # ! # clear_scores - clears the listing of word scores ! # ! # --------------------------------------------------------------------------------------------- ! ! sub clear_scores ! { ! my ( $self ) = @_; ! ! $self->{scores__} = ''; ! ! } ! ! ! # --------------------------------------------------------------------------------------------- ! # ! # wordscores - Enables and disables the saving of word scores ! # ! # $value 1 for enabled, 0 for disabled ! # ! # --------------------------------------------------------------------------------------------- sub wordscores { my ( $self, $value ) = @_; ! $self->{wordscores__} = $value if (defined $value); - return $self->{wordscores__}; } 1; --- 1565,1585 ---- } ! # GETTERS/SETTERS sub wordscores { my ( $self, $value ) = @_; ! $self->{wordscores__} = $value if (defined $value); return $self->{wordscores__}; } + sub scores + { + my ( $self, $value ) = @_; + $self->{scores__} = $value if (defined $value); + return $self->{scores__}; + } 1; |
From: <jgr...@us...> - 2003-04-21 20:54:07
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv22382/languages Modified Files: English.msg Log Message: Fix bug where clicking on a empty bucket caused a crash; added new clear_bucket API; added new Remove All Words button to bucket page; change the get_scores and clear_scores APIs to be a standard scores getter/setter as in the style of POPFile::Module Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** English.msg 20 Apr 2003 21:09:07 -0000 1.30 --- English.msg 21 Apr 2003 20:54:01 -0000 1.31 *************** *** 239,242 **** --- 239,243 ---- SingleBucket_Message1 Click a letter in the index to see the list of words that start with that letter. Click any word to lookup its probability for all buckets. SingleBucket_Unique %s unique + SingleBucket_ClearBucket Remove All Words Session_Title POPFile Session Expired |
From: <jgr...@us...> - 2003-04-21 20:54:05
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv22382/UI Modified Files: HTML.pm Log Message: Fix bug where clicking on a empty bucket caused a crash; added new clear_bucket API; added new Remove All Words button to bucket page; change the get_scores and clear_scores APIs to be a standard scores getter/setter as in the style of POPFile::Module Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.143 retrieving revision 1.144 diff -C2 -d -r1.143 -r1.144 *** HTML.pm 21 Apr 2003 09:05:48 -0000 1.143 --- HTML.pm 21 Apr 2003 20:54:00 -0000 1.144 *************** *** 1425,1428 **** --- 1425,1433 ---- $body .= "<td></td>\n<td align=\"right\">$percent</td>\n<td></td>\n</tr>\n</table>\n"; + $body .= "<form action=\"/buckets\"><input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />"; + $body .= "<input type=\"hidden\" name=\"bucket\" value=\"$self->{form_}{showbucket}\" />"; + $body .= "<input type=\"submit\" name=\"clearbucket\" value=\"$self->{language__}{SingleBucket_ClearBucket}\" />"; + $body .= "</form>"; + $body .= "<h2 class=\"buckets\">"; $body .= sprintf( $self->{language__}{SingleBucket_WordTable}, "<font color=\"" . $self->{classifier__}->get_bucket_color($self->{form_}{showbucket}) . "\">$self->{form_}{showbucket}" ) ; *************** *** 1430,1467 **** $body .= "<tr><td colspan=2>"; ! for my $i (@{$self->{classifier__}->get_bucket_word_list($self->{form_}{showbucket})}) { if ( defined($i) ) { ! my $j = $i; ! $j =~ /^\|(.)/; ! my $first = $1; ! if ( defined( $self->{form_}{showletter} ) && ( $first eq $self->{form_}{showletter} ) ) { ! # Split the entries on the double bars ! my %temp; ! while ( $j =~ m/\G\|(.*?) L?\-?[\.\d]+\|/g ) { ! my $word = $1; ! $temp{$word} = int( exp( $self->{classifier__}->get_value_( $self->{form_}{showbucket}, $word ) ) * $bucket_count + 1 ); ! } ! $body .= "</td></tr><tr><td colspan=2> </td></tr><tr>\n<td valign=\"top\">\n<b>$first</b>\n</td>\n<td valign=\"top\">\n<table><tr valign=\"top\">"; ! my $count = 0; ! for my $word (sort { $temp{$b} <=> $temp{$a} } keys %temp) { ! $body .= "</tr><tr valign=\"top\">" if ( ( $count % 6 ) == 0 ); ! $body .= "<td><a class=\"wordListLink\" href=\"\/buckets\?session=$self->{session_key__}\&lookup=Lookup\&word=$word#Lookup\"><b>$word</b><\/a></td><td>$temp{$word}</td><td> </td>"; ! $count += 1; ! } ! $body .= "</tr></table></td>\n</tr>\n<tr><td colspan=2> </td></tr><tr><td colspan=2>"; ! } else { ! $j = ''; ! $body .= "<a href=/buckets?session=$self->{session_key__}\&showbucket=$self->{form_}{showbucket}\&showletter=$first><b>$first</b></a>\n"; ! } } } --- 1435,1474 ---- $body .= "<tr><td colspan=2>"; ! if ( $self->{classifier__}->get_bucket_word_count( $self->{form_}{showbucket} ) > 0 ) { ! for my $i (@{$self->{classifier__}->get_bucket_word_list($self->{form_}{showbucket})}) { if ( defined($i) ) { ! my $j = $i; ! $j =~ /^\|(.)/; ! my $first = $1; ! if ( defined( $self->{form_}{showletter} ) && ( $first eq $self->{form_}{showletter} ) ) { ! # Split the entries on the double bars ! my %temp; ! while ( $j =~ m/\G\|(.*?) L?\-?[\.\d]+\|/g ) { ! my $word = $1; ! $temp{$word} = int( exp( $self->{classifier__}->get_value_( $self->{form_}{showbucket}, $word ) ) * $bucket_count + 1 ); ! } ! $body .= "</td></tr><tr><td colspan=2> </td></tr><tr>\n<td valign=\"top\">\n<b>$first</b>\n</td>\n<td valign=\"top\">\n<table><tr valign=\"top\">"; ! my $count = 0; ! for my $word (sort { $temp{$b} <=> $temp{$a} } keys %temp) { ! $body .= "</tr><tr valign=\"top\">" if ( ( $count % 6 ) == 0 ); ! $body .= "<td><a class=\"wordListLink\" href=\"\/buckets\?session=$self->{session_key__}\&lookup=Lookup\&word=$word#Lookup\"><b>$word</b><\/a></td><td>$temp{$word}</td><td> </td>"; ! $count += 1; ! } ! $body .= "</tr></table></td>\n</tr>\n<tr><td colspan=2> </td></tr><tr><td colspan=2>"; ! } else { ! $j = ''; ! $body .= "<a href=/buckets?session=$self->{session_key__}\&showbucket=$self->{form_}{showbucket}\&showletter=$first><b>$first</b></a>\n"; ! } } + } } *************** *** 1550,1553 **** --- 1557,1564 ---- my ( $self, $client ) = @_; + if ( defined( $self->{form_}{clearbucket} ) ) { + $self->{classifier__}->clear_bucket( $self->{form_}{bucket} ); + } + if ( defined($self->{form_}{reset_stats}) ) { $self->global_config_( 'mcount', 0 ); *************** *** 3031,3036 **** $self->{classifier__}->wordscores( 0 ); ! $body .= $self->{classifier__}->get_scores(); ! $self->{classifier__}->clear_scores(); # Close button --- 3042,3047 ---- $self->{classifier__}->wordscores( 0 ); ! $body .= $self->{classifier__}->scores(); ! $self->{classifier__}->scores(''); # Close button |
From: <ssc...@us...> - 2003-04-21 09:05:52
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv31840 Modified Files: HTML.pm Log Message: comment out upper close button on single message view Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.142 retrieving revision 1.143 diff -C2 -d -r1.142 -r1.143 *** HTML.pm 21 Apr 2003 09:03:05 -0000 1.142 --- HTML.pm 21 Apr 2003 09:05:48 -0000 1.143 *************** *** 2934,2941 **** # Close button ! $body .= "<tr>\n<td class=\"openMessageCloser\">"; ! $body .= "<a class=\"messageLink\" href=\"/history?start_message=$start_message&session=$self->{session_key__}&sort=$self->{form_}{sort}&search=$self->{form_}{search}&filter=$self->{form_}{filter}\">\n"; ! $body .= "<span class=\"historyLabel\">$self->{language__}{Close}</span>\n</a>\n"; ! $body .= "</td>\n</tr>\n"; $body .= "<tr><td>"; --- 2934,2941 ---- # Close button ! # $body .= "<tr>\n<td class=\"openMessageCloser\">"; ! # $body .= "<a class=\"messageLink\" href=\"/history?start_message=$start_message&session=$self->{session_key__}&sort=$self->{form_}{sort}&search=$self->{form_}{search}&filter=$self->{form_}{filter}\">\n"; ! # $body .= "<span class=\"historyLabel\">$self->{language__}{Close}</span>\n</a>\n"; ! # $body .= "</td>\n</tr>\n"; $body .= "<tr><td>"; |
From: <ssc...@us...> - 2003-04-21 09:03:09
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv30268 Modified Files: HTML.pm Log Message: fix classing (skinning) of next/previous buttons Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.141 retrieving revision 1.142 diff -C2 -d -r1.141 -r1.142 *** HTML.pm 20 Apr 2003 21:09:06 -0000 1.141 --- HTML.pm 21 Apr 2003 09:03:05 -0000 1.142 *************** *** 2908,2912 **** # navigator ! $body .= "<td>\n"; if ( $index > 0 ) { --- 2908,2912 ---- # navigator ! $body .= "<td class=\"historyNavigatorTop\">\n"; if ( $index > 0 ) { |
From: <ssc...@us...> - 2003-04-21 08:56:54
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv26881 Modified Files: Bayes.pm Log Message: fix warnings in new wordlist display due to array index boundary error Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.133 retrieving revision 1.134 diff -C2 -d -r1.133 -r1.134 *** Bayes.pm 20 Apr 2003 23:34:06 -0000 1.133 --- Bayes.pm 21 Apr 2003 08:56:51 -0000 1.134 *************** *** 683,687 **** $self->{scores__} .= "<tr>\n<th scope=\"col\">$language{Word}</th><th> </th><th scope=\"col\">$language{Count}</th><th> </th>\n"; ! foreach my $ix (0..(@buckets > 7? 7: @buckets)) { my $bucket = $ranking[$ix]; my $bucketcolor = $self->get_bucket_color( $bucket ); --- 683,687 ---- $self->{scores__} .= "<tr>\n<th scope=\"col\">$language{Word}</th><th> </th><th scope=\"col\">$language{Count}</th><th> </th>\n"; ! foreach my $ix (0..($#buckets > 7? 7: $#buckets)) { my $bucket = $ranking[$ix]; my $bucketcolor = $self->get_bucket_color( $bucket ); *************** *** 711,715 **** my $base_probability = $self->get_value_( $ranking[0], $word ); ! foreach my $ix (0..(@buckets > 7? 7: @buckets)) { my $bucket = $ranking[$ix]; my $probability = get_value_( $self, $bucket, $word ); --- 711,715 ---- my $base_probability = $self->get_value_( $ranking[0], $word ); ! foreach my $ix (0..($#buckets > 7? 7: $#buckets)) { my $bucket = $ranking[$ix]; my $probability = get_value_( $self, $bucket, $word ); |
From: <jgr...@us...> - 2003-04-20 23:34:42
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv9964/Classifier Modified Files: Bayes.pm Log Message: Make quarantined messages have MIME-Version header and closing MIME boundary Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.132 retrieving revision 1.133 diff -C2 -d -r1.132 -r1.133 *** Bayes.pm 20 Apr 2003 21:12:33 -0000 1.132 --- Bayes.pm 20 Apr 2003 23:34:06 -0000 1.133 *************** *** 933,936 **** --- 933,937 ---- print $client "X-Text-Classification: $classification$eol" if ( $self->global_config_( 'xtc' ) ); print $client 'X-POPFile-Link: ' . $xpl if ( $self->global_config_( 'xpl' ) ); + print $client "MIME-Version: 1.0$eol"; print $client "Content-Type: multipart/report; boundary=\"$temp_file\"$eol$eol--$temp_file$eol"; print $client "Content-Type: text/plain$eol$eol"; *************** *** 956,959 **** --- 957,966 ---- $self->echo_to_dot_( $mail, $client ) if ( !$nosave ); } else { + if ( $classification ne 'unclassified' ) { + if ( $self->{parameters__}{$classification}{quarantine} == 1 ) { + print $client "$eol--$temp_file$eol"; + } + } + print $client ".$eol" if ( !$nosave ); } |
From: <ssc...@us...> - 2003-04-20 22:21:57
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv18083 Modified Files: Tag: v0/18/1 MailParse.pm Log Message: make an important part of hostname decoding case insensitive Index: MailParse.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/MailParse.pm,v retrieving revision 1.91.2.4 retrieving revision 1.91.2.5 diff -C2 -d -r1.91.2.4 -r1.91.2.5 *** MailParse.pm 11 Apr 2003 01:19:32 -0000 1.91.2.4 --- MailParse.pm 20 Apr 2003 22:21:53 -0000 1.91.2.5 *************** *** 528,532 **** $authinfo = $1 if ( $url =~ s/^([[:alpha:]0-9\-_\.\;\:\&\=\+\$\,]+)(\@|\%40)// ); ! if ( $url =~ s/^(([[:alpha:]0-9\-_]+\.)+)(com|edu|gov|int|mil|net|org|aero|biz|coop|info|museum|name|pro|[[:alpha:]]{2})([^[:alpha:]0-9\-_\.]|$)/$4/ ) { $host = "$1$3"; $hostform = "name"; --- 528,532 ---- $authinfo = $1 if ( $url =~ s/^([[:alpha:]0-9\-_\.\;\:\&\=\+\$\,]+)(\@|\%40)// ); ! if ( $url =~ s/^(([[:alpha:]0-9\-_]+\.)+)(com|edu|gov|int|mil|net|org|aero|biz|coop|info|museum|name|pro|[[:alpha:]]{2})([^[:alpha:]0-9\-_\.]|$)/$4/i ) { $host = "$1$3"; $hostform = "name"; |
From: <ssc...@us...> - 2003-04-20 22:19:10
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv17221 Modified Files: MailParse.pm Log Message: make an important part of hostname decoding case insensitive Index: MailParse.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/MailParse.pm,v retrieving revision 1.114 retrieving revision 1.115 diff -C2 -d -r1.114 -r1.115 *** MailParse.pm 18 Apr 2003 18:58:23 -0000 1.114 --- MailParse.pm 20 Apr 2003 22:19:06 -0000 1.115 *************** *** 567,571 **** $authinfo = $1 if ( $url =~ s/^([[:alpha:]0-9\-_\.\;\:\&\=\+\$\,]+)(\@|\%40)// ); ! if ( $url =~ s/^(([[:alpha:]0-9\-_]+\.)+)(com|edu|gov|int|mil|net|org|aero|biz|coop|info|museum|name|pro|[[:alpha:]]{2})([^[:alpha:]0-9\-_\.]|$)/$4/ ) { $host = "$1$3"; $hostform = "name"; --- 567,571 ---- $authinfo = $1 if ( $url =~ s/^([[:alpha:]0-9\-_\.\;\:\&\=\+\$\,]+)(\@|\%40)// ); ! if ( $url =~ s/^(([[:alpha:]0-9\-_]+\.)+)(com|edu|gov|int|mil|net|org|aero|biz|coop|info|museum|name|pro|[[:alpha:]]{2})([^[:alpha:]0-9\-_\.]|$)/$4/i ) { $host = "$1$3"; $hostform = "name"; |
From: <jgr...@us...> - 2003-04-20 21:13:41
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv28901 Modified Files: Deutsch.msg Log Message: New German version Index: Deutsch.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/Deutsch.msg,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Deutsch.msg 15 Apr 2003 21:26:28 -0000 1.13 --- Deutsch.msg 20 Apr 2003 21:13:36 -0000 1.14 *************** *** 1,247 **** ! # Copyright (c) 2001-2003 John Graham-Cumming ! ! # Identify the language and character set used for the interface ! ! LanguageCode de ! LanguageCharset ISO-8859-1 ! ! # This is used to get the appropriate subdirectory for the manual ! ManualLanguage de ! ! # Common words that are used on their own all over the interface ! Apply Anwenden ! On Ein ! Off Aus ! TurnOn Einschalten ! TurnOff Ausschalten ! Add Hinzufügen ! Remove Entfernen ! Previous Zurück ! Next Weiter ! From Absender ! Subject Betreff ! Classification Einstufung ! Reclassify Neu einstufen ! Undo widerrufen ! Close Schließen ! Find Suchen ! Filter Filter ! Yes Ja ! No Nein ! ChangeToYes Ändern in Ja ! ChangeToNo Ändern in Nein ! Bucket Kategorie ! Magnet Magnet ! Delete Löschen ! Create Erstellen ! To Empfänger ! Total Insgesamt ! Rename Umbenennen ! Frequency Häufigkeit ! Probability Wahrscheinlichkeit ! Score Auswertung ! Lookup Nachschlagen ! ! # The header and footer that appear on every UI page ! Header_Title POPFile Kontrollzentrum ! Header_Shutdown Herunterfahren ! Header_History Verlauf ! Header_Buckets Kategorie ! Header_Configuration Konfiguration ! Header_Advanced Erweitert ! Header_Security Sicherheit ! Header_Magnets Magnete ! Footer_HomePage POPFile Homepage ! Footer_Manual Handbuch ! Footer_Forums Foren ! Footer_FeedMe Spenden ! Footer_RequestFeature Funktionalität vorschlagen ! Footer_MailingList Mailing Liste ! ! Configuration_Error1 Das Trennzeichen muß ein einzelnes Zeichen sein. ! Configuration_Error2 Der Port für das Kontrollzentrum muß zwischen 1 und 65535 liegen. ! Configuration_Error3 Der POP3 Port muß zwischen 1 und 65535 liegen. ! Configuration_Error4 Die Seitengröße muß zwischen 1 und 1000 liegen. ! Configuration_Error5 Die Anzahl der Tage im Verlauf muß zwischen 1 und 366 liegen. ! Configuration_Error6 Der TCP Timeout muß zwischen 10 und 300 liegen. ! Configuration_Error7 Der XML-RPC Port muß zwischen 1 und 65535 liegen. ! Configuration_POP3Port POP3 Port ! Configuration_POP3Update Neuer POP3 Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_XMLRPCUpdate Neuer XML-RPC Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_XMLRPCPort XML-RPC Port ! Configuration_SMTPPort SMTP Port ! Configuration_SMTPUpdate Neuer SMPT Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_NNTPPort NNTP Port ! Configuration_NNTPUpdate Neuer NNTP Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_POP3Separator POP3 Server:Port:Benutzer Trennzeichen ! Configuration_NNTPSeparator NNTP Server:Port:Benutzer Trennzeichen ! Configuration_POP3SepUpdate Neues POP3 Trennzeichen: %s ! Configuration_NNTPSepUpdate Neues NNTP Trennzeichen: %s ! Configuration_UI Web Port für Kontrollzentrum ! Configuration_UIUpdate Neuer Web Port für Kontrollzentrum: %s - Dieser Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_History Anzahl Nachrichten pro Seite ! Configuration_HistoryUpdate Neue Anzahl Nachrichten pro Seite: %s ! Configuration_Days Nachrichten x Tage im Verlauf speichern ! Configuration_DaysUpdate Nachrichten werden nun %s Tage im Verlauf gespeichert ! Configuration_UserInterface Benutzeroberfläche ! Configuration_Skins Skins ! Configuration_SkinsChoose Skin auswählen ! Configuration_Language Sprache ! Configuration_LanguageChoose Sprache auswählen ! Configuration_ListenPorts Moduleinstellungen ! Configuration_HistoryView Verlaufsansicht ! Configuration_TCPTimeout Verbindungstimeout ! Configuration_TCPTimeoutSecs Verbindungstimeout in Sekunden ! Configuration_TCPTimeoutUpdate Neuer Verbidungstimeout: %s ! Configuration_ClassificationInsertion Einstufung anzeigen ! Configuration_SubjectLine Betreff-Zeile ändern ! Configuration_XTCInsertion X-Text-Classification einfügen ! Configuration_XPLInsertion X-POPFile-Link einfügen ! Configuration_Logging Protokollierung ! Configuration_None Keine Ausgabe ! Configuration_ToScreen Auf den Bildschirm ! Configuration_ToFile In eine Datei ! Configuration_ToScreenFile Bildschirm und Datei ! Configuration_LoggerOutput Protokoll ausgeben ! Configuration_GeneralSkins Skins ! Configuration_SmallSkins kleine Skins ! Configuration_TinySkins sehr kleine Skins ! ! Advanced_Error1 '%s' ist bereits in der Liste der ignorierten Wörter ! Advanced_Error2 Ignorierte Wörtern können nur alphanumerische, ., _, -, oder @ Zeichen enthalten ! Advanced_Error3 '%s' zu den ignorierten Wörtern hinzugefügt ! Advanced_Error4 '%s' ist nicht in der Liste der ignorierten Wörter ! Advanced_Error5 '%s' von der Liste der ignorierten Wörter entfernt ! Advanced_StopWords Ignorierte Wörter ! Advanced_Message1 POPFile ignoriert die folgenden, häufig verwendeten Wörter: ! Advanced_AddWord Wort hinzufügen ! Advanced_RemoveWord Wort löschen ! ! History_Filter (zeige nur Kategorie <font color="%s">%s</font>) ! History_Search (gesuchter Absender/Betreff: %s) ! History_Title Letzte Nachrichten ! History_Jump zu Nachricht gehen ! History_ShowAll Alle anzeigen ! History_ShouldBe Sollte sein ! History_NoFrom kein Absender angegeben ! History_NoSubject kein Betreff ! History_ClassifyAs eingestuft als ! History_MagnetUsed Magnet benutzt ! History_ChangedTo Geändert: <font color="%s">%s ! History_Already Bereits neu eingestuft als <font color="%s">%s</font> ! History_RemoveAll Alle entfernen ! History_RemovePage Diese Seite entfernen ! History_Remove Um Einträge im Verlauf zu löschen, klicken Sie auf ! History_SearchMessage Nach Absender/Betreff suchen ! History_NoMessages keine Nachrichten ! History_ShowMagnet magnetisiert ! History_Magnet (zeige nur durch Magnet eingestufte Nachrichten) ! History_ResetSearch Zurücksetzen ! ! Password_Title Paßwort ! Password_Enter Paßwort eingeben ! Password_Go Anmelden ! Password_Error1 Falsches Paßwort ! ! Security_Error1 Der Port muß zwischen 1 und 65535 liegen. ! Security_Stealth Stealth Modus/Serverbetrieb ! Security_NoStealthMode Nein (Stealth Modus) ! Security_ExplainStats (Wenn Sie diese Funktion einschalten, sendet POPFile täglich die drei folgenden Werte an ein Skript auf www.usethesource.com: bc (Anzahl von Ihnen eingerichteter Kategorien), mc (Anzahl von POPFile eingestufter Nachrichten) und ec (Anzahl der Einstufungsfehler). Diese werden in einer Datei gespeichert und benutzt, um öffentliche Statistiken darüber zu erstellen, wie POPFile genutzt wird und wie gut es dabei funktioniert. Die Daten werden etwa 5 Tage auf dem Server gespeichert und dann gelöscht. Zuordnungen zwischen IP-Adressen und statistischen Daten werden nicht gespeichert.) ! Security_ExplainUpdate (Wenn Sie diese Funktion einschalten, sendet POPFile täglich die drei folgenden Werte an ein Skript auf www.usethesource.com: ma (die Hauptversionsnummer der POPFile-Installation), mi (die Nebenversionsnummer der POPFile-Installation) und bn (die build-Nummer der POPFile-Installation). POPFile erhält die Antwort in Form einer Grafik, die am Kopf einer Seite erscheint, wenn eine neue Version verfügbar ist. Die Daten werden etwa 5 Tage auf dem Server gespeichert und dann gelöscht. Zuordnungen zwischen IP-Adressen und statistischen Daten werden nicht gespeichert.) ! Security_PasswordTitle Paßwort für Benutzeroberfläche ! Security_Password Paßwort ! Security_PasswordUpdate Neues Paßwort: %s ! Security_AUTHTitle externe Server ! Security_SecureServer POP3 SPA/AUTH Server ! Security_SecureServerUpdate Neuer POP3 SPA/AUTH Server: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SecurePort POP3 SPA/AUTH Port ! Security_SecurePortUpdate Neuer POP3 SPA/AUTH Port %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SMTPServer externer SMTP Server ! Security_SMTPServerUpdate Neuer externer SMTP Server: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SMTPPort externer SMTP port ! Security_SMTPPortUpdate Neuer externer SMTP Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_POP3 POP3 Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_SMTP SMTP Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFILE) ! Security_NNTP NNTP Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_UI HTTP (Benutzeroberfläche) Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_XMLRPC XML-RPC Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_UpdateTitle Automatisch auf Updates prüfen ! Security_Update Täglich nach POPFile Updates suchen ! Security_StatsTitle Statistik Report ! Security_Stats Täglich Statistiken senden ! ! Magnet_Error1 Magnet '%s' existiert bereits in Kategorie '%s' ! Magnet_Error2 Neuer Magnet '%s' kollidiert mit Magnet '%s' in Kategorie '%s' und könnte unklare Ergebnisse verursachen. Magnet wurde nicht unzugefügt. ! Magnet_Error3 Erstelle neuen Magnet '%s' in Kategorie '%s' ! Magnet_CurrentMagnets Aktuelle Magnete ! Magnet_Message1 Die folgenden Magnete ordnen neue Post zwingend in eine angegebene Kategorie ein. ! Magnet_CreateNew Neuen Magnet erstellen ! Magnet_Explanation Drei Typen von Magneten sind verfügbar: <ul><li>Absenderadresse oder -name:</b> z.B.: ha...@fi..., um eine bestimmte Adresse zu erfassen, <br />firma.de, um jeden zu erfassen, der von firma.de sendet, <br />Hans Mustermann, um eine bestimmte Person zu erfassen; Hans erfaßt jeden Hans</li><li><b>Empfängeradresse oder -name:</b> Wie beim Absender-Magnet nur für die Empfängeradresse der Nachricht.</li><li><b>Wörter im Betreff:</b> z.B.: "Hallo", um alle Nachrichten mit "Hallo" im Betreff zu erfassen</li></ul> ! Magnet_MagnetType Typ des Magnets ! Magnet_Value Wert ! Magnet_Always Immer dieser Kategorie zuordnen ! ! Bucket_Error1 Kategorienamen können nur Kleinbuchstaben von a bis z, - oder _ enthalten ! Bucket_Error2 Kategoriename %s existiert bereits ! Bucket_Error3 Kategorie %s erstellt ! Bucket_Error4 Bitte geben Sie ein nicht-leeres Wort ein ! Bucket_Error5 Kategorie %s in %s umbenannt ! Bucket_Error6 Kategorie %s gelöscht ! Bucket_Title Zusammenfassung ! Bucket_BucketName Kategoriename ! Bucket_WordCount Wortanzahl ! Bucket_WordCounts Wortanzahl ! Bucket_UniqueWords verschiedene Wörter ! Bucket_SubjectModification Betreff ändern ! Bucket_ChangeColor Farbe ändern ! Bucket_NotEnoughData Nicht genügend Daten ! Bucket_ClassificationAccuracy Genauigkeit ! Bucket_EmailsClassified Nachrichten klassifiziert ! Bucket_EmailsClassifiedUpper Nachrichten klassifiziert ! Bucket_ClassificationErrors Einstufungsfehler ! Bucket_Accuracy Genauigkeit ! Bucket_ClassificationCount Anzahl Einstufungen ! Bucket_ResetStatistics Statistiken zurücksetzen ! Bucket_LastReset Läuft seit ! Bucket_CurrentColor Derzeitige Farbe von %s ist %s ! Bucket_SetColorTo Setze Farbe von %s auf %s ! Bucket_Maintenance Verwaltung ! Bucket_CreateBucket Erstelle Kategorie ! Bucket_DeleteBucket Lösche Kategorie ! Bucket_RenameBucket Benenne Kategorie um ! Bucket_Lookup Nachschlagen ! Bucket_LookupMessage Wort in Kategorie nachschlagen ! Bucket_LookupMessage2 Ergebnis für ! Bucket_LookupMostLikely <b>%s</b> erscheint am wahrscheinlichsten in <font color="%s">%s</font> ! Bucket_DoesNotAppear <p><b>%s</b> erscheint in keiner Kategorie ! Bucket_DisabledGlobally Global deaktiviert ! Bucket_To in ! Bucket_Quarantine Quarantäne ! ! SingleBucket_Title Details für %s ! SingleBucket_WordCount Anzahl Worte in dieser Kategorie ! SingleBucket_TotalWordCount Anzahl Worte insgesamt ! SingleBucket_Percentage Anteil an der Gesamtzahl ! SingleBucket_WordTable Worttabelle für %s ! SingleBucket_Message1 Klicken Sie auf einen Buchstaben, um eine Liste der Wörter aufzurufen, die mit diesem beginnen. Klicken Sie auf ein beliebiges Wort, um die Wahrscheinlichkeit seines Erscheinens für alle Kategorien anzusehen. ! SingleBucket_Unique %s verschiedene ! ! Session_Title POPFile Sitzung abgelaufen ! Session_Error Ihre POPFile-Sitzung ist abgelaufen. Dies könnte dadurch verursacht worden sein, daß Sie POPFile neu gestartet haben, das Kontrollzentrum aber noch im Browser geöffnet war. Bitte klicken Sie auf einen der oben angezeigten Verweise, um mit der Benutzung von POPFile weitermachen zu können. ! ! Header_MenuSummary Diese Tabelle ist das Navigationsmenü, das Zugang zu den einzelnen Bereichen des Kontrollzentrums bietet. ! History_MainTableSummary Diese Tabelle zeigt Absender und Betreff der letzten empfangenen Nachrichten an und ermöglicht es, diese durchzusehen und zu reklassifizieren. Ein Klick auf den Betreff zeigt die vollständige Nachricht an sowie Details, warum diese so und nicht anders klassifiziert wurde. Die Spalte "Sollte sein" ermöglicht es, anzugeben, in welche Kategorie die Nachricht gehört bzw. entsprechende Änderungen rückgängig zu machen. Die Spalte "Delete" ermöglicht es, einzelne Nachrichten aus dem Verlauf zu löschen, falls Sie diese nicht mehr benötigen. ! History_OpenMessageSummary Diese Tabelle enthält den kompletten Text einer Nachricht. Die Wörter sind entsprechend der Kategorie eingefärbt, in die sie am wahrscheinlichsten passen. ! Bucket_MainTableSummary Diese Tabelle bietet einen Überblick über die einzelnen Kategorien. Jede Reihe zeigt Name, Gesamtzahl der Wörter und die Anzahl verschiedener Wörter pro Kategorie an, ob die Betreff-Zeile der Nachricht bei der Klassifizierung geändert wird, ob die Nachrichten dieser Kategorie in Quarantäne gestellt werden sollen, sowie eine Tabelle zur Auswahl einer Farbe, in der alle zu dieser Kategorie gehörenden Elemente im Kontrollzentrum dargestellt werden sollen. ! Bucket_StatisticsTableSummary Diese Tabelle zeigt drei verschiedene Statistiken bezüglich POPFiles Gesamtleistung an. Die erste: Wie fehlerfrei ist die Einordnung in die entsprechenden Kategorien? Die zweite: Wie viele Nachrichten wurden analysiert und wie wurden sie eingeordnet? Die dritte: Wie viele Wörter gehören zu jeder Kategorie und wie hoch ist der Prozentsatz zur Gesamtzahl? ! Bucket_MaintenanceTableSummary Diese Tabelle enthält Formulare zum Erstellen, Löschen und Umbenennen von Kategorien und um die relative Wahrscheinlichkeit der Wörter in jeder einzelnen Kategorie nachzuschlagen. ! Bucket_AccuracyChartSummary Diese Tabelle stellt die Genauigkeit der Nachrichten-Sortierung grafisch dar. ! Bucket_BarChartSummary Diese Tabelle stellt einen Prozentanteil grafisch dar. Sie wird sowohl für die Anzahl der eingestuften Nachrichten als auch für die Gesamtzahl der Wörter genutzt. ! Bucket_LookupResultsSummary Diese Tabelle stellt die Wahrscheinlichkeiten bezüglich jedes angegebenen Wortes dar. Für jede Kategorie wird folgendes angezeigt: Die Häufigkeit, mit der das Wort auftritt, die Wahrscheinlichkeit, daß es in dieser Kategorie auftritt und die Auswirkungen auf die Punktzahl der Kategorie insgesamt, falls das Wort in einer Nachricht auftaucht. ! Bucket_WordListTableSummary Diese Tabelle bietet eine Liste aller Wörter einer bestimmten Kategorie - reihenweise sortiert nach dem ersten Buchstaben. ! Magnet_MainTableSummary Diese Tabelle zeigt eine Liste der Magnete an, die dazu benutzt werden, um Nachrichten automatisch nach festen Kriterien zu sortieren. Jede Reihe zeigt an, wie der Magnet definiert ist, in welche Kategorie er einsortiert und eine Schaltfläche, um den Magnet zu löschen. ! Configuration_MainTableSummary Diese Tabelle enthält einige Formulare zur Konfiguration von POPFile. ! Configuration_InsertionTableSummary Diese Tabelle enthält Schaltflächen zur Konfiguration, ob bestimmte Änderungen an Kopfzeilen oder Betreff der Nachricht gemacht werden sollen, bevor diese an das entsprechende Programm weitergegeben wird. ! Security_MainTableSummary Diese Tabelle bietet Einstellungsmöglichkeiten, die die Sicherheit von POPFile insgesamt betreffen, ob es automatisch auf neue Versionen prüfen soll oder ob Statistiken über die Leistung von POPFile an eine zentrale Datenbank zwecks der Erstellung von Gesamtstatistiken geschickt werden sollen. ! Advanced_MainTableSummary Diese Tabelle enthält eine Liste von Wörtern, die POPFile ignoriert, wenn es eine Nachricht analysiert. Dies betrifft Wörter, die besonders häufig in Nachrichten auftauchen. Diese sind reihenweise alphabetisch nach dem ersten Buchstaben sortiert. ! --- 1,257 ---- ! # Copyright (c) 2001-2003 John Graham-Cumming ! ! # Identify the language and character set used for the interface ! ! LanguageCode de ! LanguageCharset ISO-8859-1 ! ! # This is used to get the appropriate subdirectory for the manual ! ManualLanguage de ! ! # Common words that are used on their own all over the interface ! Apply Anwenden ! On Ein ! Off Aus ! TurnOn Einschalten ! TurnOff Ausschalten ! Add Hinzufügen ! Remove Entfernen ! Previous Zurück ! Next Weiter ! From Absender ! Subject Betreff ! Classification Einstufung ! Reclassify Neu einstufen ! Probability Wahrscheinlichkeit ! Scores Auswertung ! QuickMagnets Blitz-Magnete ! Undo widerrufen ! Close Schließen ! Find Suchen ! Filter Filter ! Yes Ja ! No Nein ! ChangeToYes Ändern in Ja ! ChangeToNo Ändern in Nein ! Bucket Kategorie ! Magnet Magnet ! Delete Löschen ! Create Erstellen ! To Empfänger ! Total Insgesamt ! Rename Umbenennen ! Frequency Häufigkeit ! Probability Wahrscheinlichkeit ! Score Auswertung ! Lookup Nachschlagen ! Word Wort ! Count Anzahl ! ! # The header and footer that appear on every UI page ! Header_Title POPFile Kontrollzentrum ! Header_Shutdown Herunterfahren ! Header_History Verlauf ! Header_Buckets Kategorie ! Header_Configuration Konfiguration ! Header_Advanced Erweitert ! Header_Security Sicherheit ! Header_Magnets Magnete ! Footer_HomePage POPFile Homepage ! Footer_Manual Handbuch ! Footer_Forums Foren ! Footer_FeedMe Spenden ! Footer_RequestFeature Funktionalität vorschlagen ! Footer_MailingList Mailing Liste ! ! Configuration_Error1 Das Trennzeichen muß ein einzelnes Zeichen sein. ! Configuration_Error2 Der Port für das Kontrollzentrum muß zwischen 1 und 65535 liegen. ! Configuration_Error3 Der POP3 Port muß zwischen 1 und 65535 liegen. ! Configuration_Error4 Die Seitengröße muß zwischen 1 und 1000 liegen. ! Configuration_Error5 Die Anzahl der Tage im Verlauf muß zwischen 1 und 366 liegen. ! Configuration_Error6 Der TCP Timeout muß zwischen 10 und 300 liegen. ! Configuration_Error7 Der XML-RPC Port muß zwischen 1 und 65535 liegen. ! Configuration_POP3Port POP3 Port ! Configuration_POP3Update Neuer POP3 Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_XMLRPCUpdate Neuer XML-RPC Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_XMLRPCPort XML-RPC Port ! Configuration_SMTPPort SMTP Port ! Configuration_SMTPUpdate Neuer SMPT Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_NNTPPort NNTP Port ! Configuration_NNTPUpdate Neuer NNTP Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_POP3Separator POP3 Server:Port:Benutzer Trennzeichen ! Configuration_NNTPSeparator NNTP Server:Port:Benutzer Trennzeichen ! Configuration_POP3SepUpdate Neues POP3 Trennzeichen: %s ! Configuration_NNTPSepUpdate Neues NNTP Trennzeichen: %s ! Configuration_UI Web Port für Kontrollzentrum ! Configuration_UIUpdate Neuer Web Port für Kontrollzentrum: %s - Dieser Änderung wird erst nach einem Neustart von POPFile wirksam. ! Configuration_History Anzahl Nachrichten pro Seite ! Configuration_HistoryUpdate Neue Anzahl Nachrichten pro Seite: %s ! Configuration_Days Nachrichten x Tage im Verlauf speichern ! Configuration_DaysUpdate Nachrichten werden nun %s Tage im Verlauf gespeichert ! Configuration_UserInterface Benutzeroberfläche ! Configuration_Skins Skins ! Configuration_SkinsChoose Skin auswählen ! Configuration_Language Sprache ! Configuration_LanguageChoose Sprache auswählen ! Configuration_ListenPorts Moduleinstellungen ! Configuration_HistoryView Verlaufsansicht ! Configuration_TCPTimeout Verbindungstimeout ! Configuration_TCPTimeoutSecs Verbindungstimeout in Sekunden ! Configuration_TCPTimeoutUpdate Neuer Verbidungstimeout: %s ! Configuration_ClassificationInsertion Einstufung anzeigen ! Configuration_SubjectLine Betreff-Zeile ändern ! Configuration_XTCInsertion X-Text-Classification einfügen ! Configuration_XPLInsertion X-POPFile-Link einfügen ! Configuration_Logging Protokollierung ! Configuration_None Keine Ausgabe ! Configuration_ToScreen Auf den Bildschirm ! Configuration_ToFile In eine Datei ! Configuration_ToScreenFile Bildschirm und Datei ! Configuration_LoggerOutput Protokoll ausgeben ! Configuration_GeneralSkins Skins ! Configuration_SmallSkins kleine Skins ! Configuration_TinySkins sehr kleine Skins ! Configuration_CurrentLogFile <aktuelle Protokolldatei> ! ! Advanced_Error1 '%s' ist bereits in der Liste der ignorierten Wörter ! Advanced_Error2 Ignorierte Wörtern können nur alphanumerische, ., _, -, oder @ Zeichen enthalten ! Advanced_Error3 '%s' zu den ignorierten Wörtern hinzugefügt ! Advanced_Error4 '%s' ist nicht in der Liste der ignorierten Wörter ! Advanced_Error5 '%s' von der Liste der ignorierten Wörter entfernt ! Advanced_StopWords Ignorierte Wörter ! Advanced_Message1 POPFile ignoriert die folgenden, häufig verwendeten Wörter: ! Advanced_AddWord Wort hinzufügen ! Advanced_RemoveWord Wort löschen ! ! History_Filter (zeige nur Kategorie <font color="%s">%s</font>) ! History_Search (gesuchter Absender/Betreff: %s) ! History_Title Aktuelle Nachrichten ! History_Jump zu Nachricht gehen ! History_ShowAll Alle anzeigen ! History_ShouldBe Sollte sein ! History_NoFrom kein Absender angegeben ! History_NoSubject kein Betreff ! History_ClassifyAs eingestuft als ! History_MagnetUsed Magnet benutzt ! History_ChangedTo Geändert: <font color="%s">%s ! History_Already Bereits neu eingestuft als <font color="%s">%s</font> ! History_RemoveAll Alle entfernen ! History_RemovePage Diese Seite entfernen ! History_Remove Um Einträge im Verlauf zu löschen, klicken Sie auf ! History_SearchMessage Nach Absender/Betreff suchen ! History_NoMessages keine Nachrichten ! History_ShowMagnet magnetisiert ! History_Magnet (zeige nur durch Magnet eingestufte Nachrichten) ! History_ResetSearch Zurücksetzen ! ! Password_Title Paßwort ! Password_Enter Paßwort eingeben ! Password_Go Anmelden ! Password_Error1 Falsches Paßwort ! ! Security_Error1 Der Port muß zwischen 1 und 65535 liegen. ! Security_Stealth Stealth Modus/Serverbetrieb ! Security_NoStealthMode Nein (Stealth Modus) ! Security_ExplainStats (Wenn Sie diese Funktion einschalten, sendet POPFile täglich die drei folgenden Werte an ein Skript auf www.usethesource.com: bc (Anzahl von Ihnen eingerichteter Kategorien), mc (Anzahl von POPFile eingestufter Nachrichten) und ec (Anzahl der Einstufungsfehler). Diese werden in einer Datei gespeichert und benutzt, um öffentliche Statistiken darüber zu erstellen, wie POPFile genutzt wird und wie gut es dabei funktioniert. Die Daten werden etwa 5 Tage auf dem Server gespeichert und dann gelöscht. Zuordnungen zwischen IP-Adressen und statistischen Daten werden nicht gespeichert.) ! Security_ExplainUpdate (Wenn Sie diese Funktion einschalten, sendet POPFile täglich die drei folgenden Werte an ein Skript auf www.usethesource.com: ma (die Hauptversionsnummer der POPFile-Installation), mi (die Nebenversionsnummer der POPFile-Installation) und bn (die build-Nummer der POPFile-Installation). POPFile erhält die Antwort in Form einer Grafik, die am Kopf einer Seite erscheint, wenn eine neue Version verfügbar ist. Die Daten werden etwa 5 Tage auf dem Server gespeichert und dann gelöscht. Zuordnungen zwischen IP-Adressen und statistischen Daten werden nicht gespeichert.) ! Security_PasswordTitle Paßwort für Benutzeroberfläche ! Security_Password Paßwort ! Security_PasswordUpdate Neues Paßwort: %s ! Security_AUTHTitle externe Server ! Security_SecureServer POP3 SPA/AUTH Server ! Security_SecureServerUpdate Neuer POP3 SPA/AUTH Server: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SecurePort POP3 SPA/AUTH Port ! Security_SecurePortUpdate Neuer POP3 SPA/AUTH Port %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SMTPServer externer SMTP Server ! Security_SMTPServerUpdate Neuer externer SMTP Server: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_SMTPPort externer SMTP port ! Security_SMTPPortUpdate Neuer externer SMTP Port: %s - Diese Änderung wird erst nach einem Neustart von POPFile wirksam. ! Security_POP3 POP3 Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_SMTP SMTP Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFILE) ! Security_NNTP NNTP Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_UI HTTP (Benutzeroberfläche) Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_XMLRPC XML-RPC Verbindungen von fremden Rechnern erlauben (erfordert Neustart von POPFile) ! Security_UpdateTitle Automatisch auf Updates prüfen ! Security_Update Täglich nach POPFile Updates suchen ! Security_StatsTitle Statistik Report ! Security_Stats Täglich Statistiken senden ! ! Magnet_Error1 Magnet '%s' existiert bereits in Kategorie '%s' ! Magnet_Error2 Neuer Magnet '%s' kollidiert mit Magnet '%s' in Kategorie '%s' und könnte unklare Ergebnisse verursachen. Magnet wurde nicht unzugefügt. ! Magnet_Error3 Erstelle neuen Magnet '%s' in Kategorie '%s' ! Magnet_CurrentMagnets Aktuelle Magnete ! Magnet_Message1 Die folgenden Magnete ordnen neue Post zwingend in eine angegebene Kategorie ein. ! Magnet_CreateNew Neuen Magnet erstellen ! Magnet_Explanation Drei Typen von Magneten sind verfügbar: <ul><li>Absenderadresse oder -name:</b> z.B.: ha...@fi..., um eine bestimmte Adresse zu erfassen, <br />firma.de, um jeden zu erfassen, der von firma.de sendet, <br />Hans Mustermann, um eine bestimmte Person zu erfassen; Hans erfaßt jeden Hans</li><li><b>Empfängeradresse oder -name:</b> Wie beim Absender-Magnet nur für die Empfängeradresse der Nachricht.</li><li><b>Wörter im Betreff:</b> z.B.: "Hallo", um alle Nachrichten mit "Hallo" im Betreff zu erfassen</li></ul> ! Magnet_MagnetType Typ des Magnets ! Magnet_Value Wert ! Magnet_Always Immer dieser Kategorie zuordnen ! ! Bucket_Error1 Kategorienamen können nur Kleinbuchstaben von a bis z, - oder _ enthalten ! Bucket_Error2 Kategoriename %s existiert bereits ! Bucket_Error3 Kategorie %s erstellt ! Bucket_Error4 Bitte geben Sie ein nicht-leeres Wort ein ! Bucket_Error5 Kategorie %s in %s umbenannt ! Bucket_Error6 Kategorie %s gelöscht ! Bucket_Title Zusammenfassung ! Bucket_BucketName Kategoriename ! Bucket_WordCount Wortanzahl ! Bucket_WordCounts Wortanzahl ! Bucket_UniqueWords verschiedene Wörter ! Bucket_SubjectModification Betreff ändern ! Bucket_ChangeColor Farbe ändern ! Bucket_NotEnoughData Nicht genügend Daten ! Bucket_ClassificationAccuracy Genauigkeit ! Bucket_EmailsClassified Nachrichten klassifiziert ! Bucket_EmailsClassifiedUpper Nachrichten klassifiziert ! Bucket_ClassificationErrors Einstufungsfehler ! Bucket_Accuracy Genauigkeit ! Bucket_ClassificationCount Anzahl Einstufungen ! Bucket_ClassificationFP fehlerhaft Positive ! Bucket_ClassificationFN fehlerhaft Negative ! Bucket_ResetStatistics Statistiken zurücksetzen ! Bucket_LastReset Läuft seit ! Bucket_CurrentColor Derzeitige Farbe von %s ist %s ! Bucket_SetColorTo Setze Farbe von %s auf %s ! Bucket_Maintenance Verwaltung ! Bucket_CreateBucket Erstelle Kategorie ! Bucket_DeleteBucket Lösche Kategorie ! Bucket_RenameBucket Benenne Kategorie um ! Bucket_Lookup Nachschlagen ! Bucket_LookupMessage Wort in Kategorie nachschlagen ! Bucket_LookupMessage2 Ergebnis für ! Bucket_LookupMostLikely <b>%s</b> erscheint am wahrscheinlichsten in <font color="%s">%s</font> ! Bucket_DoesNotAppear <p><b>%s</b> erscheint in keiner Kategorie ! Bucket_DisabledGlobally Global deaktiviert ! Bucket_To in ! Bucket_Quarantine Quarantäne ! ! SingleBucket_Title Details für %s ! SingleBucket_WordCount Anzahl Worte in dieser Kategorie ! SingleBucket_TotalWordCount Anzahl Worte insgesamt ! SingleBucket_Percentage Anteil an der Gesamtzahl ! SingleBucket_WordTable Worttabelle für %s ! SingleBucket_Message1 Klicken Sie auf einen Buchstaben, um eine Liste der Wörter aufzurufen, die mit diesem beginnen. Klicken Sie auf ein beliebiges Wort, um die Wahrscheinlichkeit seines Erscheinens für alle Kategorien anzusehen. ! SingleBucket_Unique %s verschiedene ! ! Session_Title POPFile Sitzung abgelaufen ! Session_Error Ihre POPFile-Sitzung ist abgelaufen. Dies könnte dadurch verursacht worden sein, daß Sie POPFile neu gestartet haben, das Kontrollzentrum aber noch im Browser geöffnet war. Bitte klicken Sie auf einen der oben angezeigten Verweise, um mit der Benutzung von POPFile weitermachen zu können. ! ! View_Title Nachrichtenansicht ! ! Header_MenuSummary Diese Tabelle ist das Navigationsmenü, das Zugang zu den einzelnen Bereichen des Kontrollzentrums bietet. ! History_MainTableSummary Diese Tabelle zeigt Absender und Betreff der letzten empfangenen Nachrichten an und ermöglicht es, diese durchzusehen und zu reklassifizieren. Ein Klick auf den Betreff zeigt die vollständige Nachricht an sowie Details, warum diese so und nicht anders klassifiziert wurde. Die Spalte "Sollte sein" ermöglicht es, anzugeben, in welche Kategorie die Nachricht gehört bzw. entsprechende Änderungen rückgängig zu machen. Die Spalte "Delete" ermöglicht es, einzelne Nachrichten aus dem Verlauf zu löschen, falls Sie diese nicht mehr benötigen. ! History_OpenMessageSummary Diese Tabelle enthält den kompletten Text einer Nachricht. Die Wörter sind entsprechend der Kategorie eingefärbt, in die sie am wahrscheinlichsten passen. ! Bucket_MainTableSummary Diese Tabelle bietet einen Überblick über die einzelnen Kategorien. Jede Reihe zeigt Name, Gesamtzahl der Wörter und die Anzahl verschiedener Wörter pro Kategorie an, ob die Betreff-Zeile der Nachricht bei der Klassifizierung geändert wird, ob die Nachrichten dieser Kategorie in Quarantäne gestellt werden sollen, sowie eine Tabelle zur Auswahl einer Farbe, in der alle zu dieser Kategorie gehörenden Elemente im Kontrollzentrum dargestellt werden sollen. ! Bucket_StatisticsTableSummary Diese Tabelle zeigt drei verschiedene Statistiken bezüglich POPFiles Gesamtleistung an. Die erste: Wie fehlerfrei ist die Einordnung in die entsprechenden Kategorien? Die zweite: Wie viele Nachrichten wurden analysiert und wie wurden sie eingeordnet? Die dritte: Wie viele Wörter gehören zu jeder Kategorie und wie hoch ist der Prozentsatz zur Gesamtzahl? ! Bucket_MaintenanceTableSummary Diese Tabelle enthält Formulare zum Erstellen, Löschen und Umbenennen von Kategorien und um die relative Wahrscheinlichkeit der Wörter in jeder einzelnen Kategorie nachzuschlagen. ! Bucket_AccuracyChartSummary Diese Tabelle stellt die Genauigkeit der Nachrichten-Sortierung grafisch dar. ! Bucket_BarChartSummary Diese Tabelle stellt einen Prozentanteil grafisch dar. Sie wird sowohl für die Anzahl der eingestuften Nachrichten als auch für die Gesamtzahl der Wörter genutzt. ! Bucket_LookupResultsSummary Diese Tabelle stellt die Wahrscheinlichkeiten bezüglich jedes angegebenen Wortes dar. Für jede Kategorie wird folgendes angezeigt: Die Häufigkeit, mit der das Wort auftritt, die Wahrscheinlichkeit, daß es in dieser Kategorie auftritt und die Auswirkungen auf die Punktzahl der Kategorie insgesamt, falls das Wort in einer Nachricht auftaucht. ! Bucket_WordListTableSummary Diese Tabelle bietet eine Liste aller Wörter einer bestimmten Kategorie - reihenweise sortiert nach dem ersten Buchstaben. ! Magnet_MainTableSummary Diese Tabelle zeigt eine Liste der Magnete an, die dazu benutzt werden, um Nachrichten automatisch nach festen Kriterien zu sortieren. Jede Reihe zeigt an, wie der Magnet definiert ist, in welche Kategorie er einsortiert und eine Schaltfläche, um den Magnet zu löschen. ! Configuration_MainTableSummary Diese Tabelle enthält einige Formulare zur Konfiguration von POPFile. ! Configuration_InsertionTableSummary Diese Tabelle enthält Schaltflächen zur Konfiguration, ob bestimmte Änderungen an Kopfzeilen oder Betreff der Nachricht gemacht werden sollen, bevor diese an das entsprechende Programm weitergegeben wird. ! Security_MainTableSummary Diese Tabelle bietet Einstellungsmöglichkeiten, die die Sicherheit von POPFile insgesamt betreffen, ob es automatisch auf neue Versionen prüfen soll oder ob Statistiken über die Leistung von POPFile an eine zentrale Datenbank zwecks der Erstellung von Gesamtstatistiken geschickt werden sollen. ! Advanced_MainTableSummary Diese Tabelle enthält eine Liste von Wörtern, die POPFile ignoriert, wenn es eine Nachricht analysiert. Dies betrifft Wörter, die besonders häufig in Nachrichten auftauchen. Diese sind reihenweise alphabetisch nach dem ersten Buchstaben sortiert. ! |
From: <jgr...@us...> - 2003-04-20 21:12:39
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv28528 Modified Files: Bayes.pm Log Message: Merge biljir that improves the display of probabilities for an individual message Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.131 retrieving revision 1.132 diff -C2 -d -r1.131 -r1.132 *** Bayes.pm 20 Apr 2003 21:09:06 -0000 1.131 --- Bayes.pm 20 Apr 2003 21:12:33 -0000 1.132 *************** *** 235,238 **** --- 235,253 ---- } + # --------------------------------------------------------------------------------------------- + # + # get_sort_value_ behaves the same as get_value_, except that it returns not_likely__ rather + # than 0 if the word is not found. This makes its result more suitable as a sort key for bucket + # ranking. + # + # --------------------------------------------------------------------------------------------- + sub get_sort_value_ + { + my ($self, $bucket, $word) = @_; + my $v = get_value_($self, $bucket, $word); + return $self->{not_likely__} if $v == 0; + return $v; + } + sub set_value_ { *************** *** 545,551 **** --- 560,568 ---- my %score; + my %matchcount; for my $bucket (@buckets) { $score{$bucket} = $self->{bucket_start__}{$bucket}; + $matchcount{$bucket} = 0; } *************** *** 575,578 **** --- 592,596 ---- my $probability = get_value_( $self, $bucket, $word ); + $matchcount{$bucket} += $self->{parser__}{words__}{$word} if ($probability != 0); $probability = $self->{not_likely__} if ( $probability == 0 ); $wmax = $probability if ( $wmax < $probability ); *************** *** 646,650 **** $self->{scores__} .= "<hr><b>$language{Scores}</b><p>\n<table class=\"top20Words\">\n<tr>\n<th scope=\"col\">$language{Bucket}</th>\n<th> </th>\n"; ! $self->{scores__} .= "<th scope=\"col\">$language{Probability}</th></tr>\n"; foreach my $b (@ranking) { --- 664,668 ---- $self->{scores__} .= "<hr><b>$language{Scores}</b><p>\n<table class=\"top20Words\">\n<tr>\n<th scope=\"col\">$language{Bucket}</th>\n<th> </th>\n"; ! $self->{scores__} .= "<th scope=\"col\">$language{Count} </th><th scope=\"col\">$language{Probability}</th></tr>\n"; foreach my $b (@ranking) { *************** *** 658,662 **** } ! $self->{scores__} .= "<tr>\n<td><font color=\"$self->{colors__}{$b}\"><b>$b</b></font></td>\n<td> </td>\n<td>$probstr</td>\n</tr>\n"; } --- 676,680 ---- } ! $self->{scores__} .= "<tr>\n<td><font color=\"$self->{colors__}{$b}\"><b>$b</b></font></td>\n<td> </td>\n<td align=\"right\">$matchcount{$b} </td>\n<td>$probstr</td>\n</tr>\n"; } *************** *** 665,669 **** $self->{scores__} .= "<tr>\n<th scope=\"col\">$language{Word}</th><th> </th><th scope=\"col\">$language{Count}</th><th> </th>\n"; ! foreach my $bucket (@buckets) { my $bucketcolor = $self->get_bucket_color( $bucket ); $self->{scores__} .= "<th><font color=\"$bucketcolor\">$bucket</font></th><th> </th>"; --- 683,688 ---- $self->{scores__} .= "<tr>\n<th scope=\"col\">$language{Word}</th><th> </th><th scope=\"col\">$language{Count}</th><th> </th>\n"; ! foreach my $ix (0..(@buckets > 7? 7: @buckets)) { ! my $bucket = $ranking[$ix]; my $bucketcolor = $self->get_bucket_color( $bucket ); $self->{scores__} .= "<th><font color=\"$bucketcolor\">$bucket</font></th><th> </th>"; *************** *** 672,681 **** $self->{scores__} .= "</tr>"; ! my @ranked_words = sort {$self->get_value_( $ranking[0], $b ) <=> $self->get_value_( $ranking[0], $a )} keys %{$self->{parser__}->{words__}}; foreach my $word (@ranked_words) { my $known = 0; ! foreach my $bucket (@buckets) { if ( $self->get_value_( $bucket, $word ) != 0 ) { $known = 1; --- 691,700 ---- $self->{scores__} .= "</tr>"; ! my @ranked_words = sort {$self->get_sort_value_( $ranking[0], $b ) <=> $self->get_sort_value_( $ranking[0], $a )} keys %{$self->{parser__}->{words__}}; foreach my $word (@ranked_words) { my $known = 0; ! foreach my $bucket (@ranking) { if ( $self->get_value_( $bucket, $word ) != 0 ) { $known = 1; *************** *** 692,700 **** my $base_probability = $self->get_value_( $ranking[0], $word ); ! foreach my $bucket (@buckets) { my $probability = get_value_( $self, $bucket, $word ); my $color = 'black'; ! if ( $probability >= $base_probability ) { $color = $self->get_bucket_color( $bucket ); } --- 711,720 ---- my $base_probability = $self->get_value_( $ranking[0], $word ); ! foreach my $ix (0..(@buckets > 7? 7: @buckets)) { ! my $bucket = $ranking[$ix]; my $probability = get_value_( $self, $bucket, $word ); my $color = 'black'; ! if ( $probability >= $base_probability || $base_probability == 0 ) { $color = $self->get_bucket_color( $bucket ); } |
From: <jgr...@us...> - 2003-04-20 21:09:11
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv27489/UI Modified Files: HTML.pm Log Message: Added a new API called get_magnet_types to get the possible header magnets so that the knowledge about them is controlled by the Bayes module in one place; added Cc magnets Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.140 retrieving revision 1.141 diff -C2 -d -r1.140 -r1.141 *** HTML.pm 20 Apr 2003 21:00:09 -0000 1.140 --- HTML.pm 20 Apr 2003 21:09:06 -0000 1.141 *************** *** 1301,1305 **** $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Remove}</th>\n</tr>\n"; ! my %magnet_types = ( 'from', 'From', 'to', 'To', 'subject', 'Subject' ); my $i = 0; --- 1301,1305 ---- $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Remove}</th>\n</tr>\n"; ! my %magnet_types = $self->{classifier__}->get_magnet_types(); my $i = 0; *************** *** 1365,1372 **** # Magnet Type widget $body .= "<label class=\"magnetsLabel\" for=\"magnetsAddType\">$self->{language__}{Magnet_MagnetType}:</label><br />\n"; ! $body .= "<select name=\"type1\" id=\"magnetsAddType\">\n<option value=\"from\">\n$self->{language__}{From}</option>\n"; ! $body .= "<option value=\"to\">\n$self->{language__}{To}</option>\n"; ! $body .= "<option value=\"subject\">\n$self->{language__}{Subject}</option>\n</select>\n"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n<br /><br />\n"; $body .= "<input type=\"hidden\" name=\"count\" value=\"1\" />\n"; --- 1365,1374 ---- # Magnet Type widget $body .= "<label class=\"magnetsLabel\" for=\"magnetsAddType\">$self->{language__}{Magnet_MagnetType}:</label><br />\n"; ! $body .= "<select name=\"type1\" id=\"magnetsAddType\">\n"; ! ! for my $mtype (keys %magnet_types) { ! $body .= "<option value=\"$mtype\">\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; ! } ! $body .= "</select>\n<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n<br /><br />\n"; $body .= "<input type=\"hidden\" name=\"count\" value=\"1\" />\n"; |
From: <jgr...@us...> - 2003-04-20 21:09:11
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv27489/Classifier Modified Files: Bayes.pm Log Message: Added a new API called get_magnet_types to get the possible header magnets so that the knowledge about them is controlled by the Bayes module in one place; added Cc magnets Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.130 retrieving revision 1.131 diff -C2 -d -r1.130 -r1.131 *** Bayes.pm 20 Apr 2003 21:00:05 -0000 1.130 --- Bayes.pm 20 Apr 2003 21:09:06 -0000 1.131 *************** *** 260,266 **** if ( $self->{full_total__} > 0 ) { ! # ln(10) =~ 2.30258509299404568401799145468436 ! $self->{not_likely__} = -log( $self->{full_total__} ) - 2.30258509299404568401799145468436; --- 260,266 ---- if ( $self->{full_total__} > 0 ) { ! # ln(10) =~ 2.30258509299404568401799145468436 ! $self->{not_likely__} = -log( $self->{full_total__} ) - 2.30258509299404568401799145468436; *************** *** 718,722 **** # If no bucket has a probability better than 0.5, call the message "unclassified". my $class = 'unclassified'; ! if ( ( $total != 0 ) && ( $score{$ranking[0]} > $self->{unclassified__} + log($total) ) ) { $class = $ranking[0]; --- 718,722 ---- # If no bucket has a probability better than 0.5, call the message "unclassified". my $class = 'unclassified'; ! if ( ( $total != 0 ) && ( $score{$ranking[0]} > $self->{unclassified__} + log($total) ) ) { $class = $ranking[0]; *************** *** 806,811 **** # Kill header lines containing only whitespace (Exim does this) ! next if ( $line =~ /^[ \t]+(\r\n|\r|\n)$/i ); ! if ( !( $line =~ /^(\r\n|\r|\n)$/i ) ) { $message_size += length $line; --- 806,811 ---- # Kill header lines containing only whitespace (Exim does this) ! next if ( $line =~ /^[ \t]+(\r\n|\r|\n)$/i ); ! if ( !( $line =~ /^(\r\n|\r|\n)$/i ) ) { $message_size += length $line; *************** *** 1437,1440 **** --- 1437,1456 ---- $self->{magnets__}{$bucket}{$type}{$text} = 1; $self->save_magnets__(); + } + + # --------------------------------------------------------------------------------------------- + # + # get_magnet_types + # + # Get a hash mapping magnet types (e.g. from) to magnet names (e.g. From); + # + # --------------------------------------------------------------------------------------------- + + sub get_magnet_types + { + return ( 'from' => 'From', + 'to' => 'To', + 'subject' => 'Subject', + 'cc' => 'Cc' ); } |
From: <jgr...@us...> - 2003-04-20 21:09:11
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv27489/languages Modified Files: English.msg Log Message: Added a new API called get_magnet_types to get the possible header magnets so that the knowledge about them is controlled by the Bayes module in one place; added Cc magnets Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** English.msg 20 Apr 2003 21:00:13 -0000 1.29 --- English.msg 20 Apr 2003 21:09:07 -0000 1.30 *************** *** 19,23 **** Next Next From From ! Subject Subject Classification Classification Reclassify Reclassify --- 19,24 ---- Next Next From From ! Subject Subject ! Cc Cc Classification Classification Reclassify Reclassify |
From: <jgr...@us...> - 2003-04-20 21:00:44
|
Update of /cvsroot/popfile/engine/Classifier In directory sc8-pr-cvs1:/tmp/cvs-serv24838/Classifier Modified Files: Bayes.pm Log Message: Improved the Magnets page so that one of more magnets can be edited and updated without having to remove and reenter them, also added the ability to delete multiple magnets; added a new clear_magnets API Index: Bayes.pm =================================================================== RCS file: /cvsroot/popfile/engine/Classifier/Bayes.pm,v retrieving revision 1.129 retrieving revision 1.130 diff -C2 -d -r1.129 -r1.130 *** Bayes.pm 19 Apr 2003 11:07:13 -0000 1.129 --- Bayes.pm 20 Apr 2003 21:00:05 -0000 1.130 *************** *** 1388,1391 **** --- 1388,1406 ---- # --------------------------------------------------------------------------------------------- # + # clear_magnets + # + # Removes every magnet currently defined + # + # --------------------------------------------------------------------------------------------- + + sub clear_magnets + { + my ( $self ) = @_; + + delete $self->{magnets__}; + } + + # --------------------------------------------------------------------------------------------- + # # get_magnets # *************** *** 1393,1396 **** --- 1408,1412 ---- # # $bucket The bucket to search for magnets + # $type The magnet type (e.g. from, to or subject) # # --------------------------------------------------------------------------------------------- |
From: <jgr...@us...> - 2003-04-20 21:00:18
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv24838/languages Modified Files: English.msg Log Message: Improved the Magnets page so that one of more magnets can be edited and updated without having to remove and reenter them, also added the ability to delete multiple magnets; added a new clear_magnets API Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** English.msg 19 Apr 2003 12:30:22 -0000 1.28 --- English.msg 20 Apr 2003 21:00:13 -0000 1.29 *************** *** 46,49 **** --- 46,50 ---- Word Word Count Count + Update Update # The header and footer that appear on every UI page |
From: <jgr...@us...> - 2003-04-20 21:00:16
|
Update of /cvsroot/popfile/engine/UI In directory sc8-pr-cvs1:/tmp/cvs-serv24838/UI Modified Files: HTML.pm Log Message: Improved the Magnets page so that one of more magnets can be edited and updated without having to remove and reenter them, also added the ability to delete multiple magnets; added a new clear_magnets API Index: HTML.pm =================================================================== RCS file: /cvsroot/popfile/engine/UI/HTML.pm,v retrieving revision 1.139 retrieving revision 1.140 diff -C2 -d -r1.139 -r1.140 *** HTML.pm 19 Apr 2003 12:30:04 -0000 1.139 --- HTML.pm 20 Apr 2003 21:00:09 -0000 1.140 *************** *** 1223,1227 **** my $magnet_message = ''; ! if ( defined( $self->{form_}{count} ) ) { for my $i ( 1 .. $self->{form_}{count} ) { my $mtype = $self->{form_}{"type$i"}; --- 1223,1242 ---- my $magnet_message = ''; ! ! if ( defined( $self->{form_}{delete} ) ) { ! for my $i ( 1 .. $self->{form_}{count} ) { ! if ( defined( $self->{form_}{"remove$i"} ) && ( $self->{form_}{"remove$i"} ) ) { ! my $mtype = $self->{form_}{"type$i"}; ! my $mtext = $self->{form_}{"text$i"}; ! my $mbucket = $self->{form_}{"bucket$i"}; ! ! $self->{classifier__}->delete_magnet( $mbucket, $mtype, $mtext ); ! } ! } ! } ! ! if ( defined( $self->{form_}{count} ) && ( defined( $self->{form_}{update} ) || defined( $self->{form_}{create} ) ) ) { ! $self->{classifier__}->clear_magnets() if ( defined( $self->{form_}{update} ) ); ! for my $i ( 1 .. $self->{form_}{count} ) { my $mtype = $self->{form_}{"type$i"}; *************** *** 1275,1291 **** } - if ( defined($self->{form_}{dtype}) ) { - $self->{classifier__}->delete_magnet( $self->{form_}{bucket}, $self->{form_}{dtype}, $self->{form_}{dmagnet}); - } - # Current Magnets panel my $body = "<h2 class=\"magnets\">$self->{language__}{Magnet_CurrentMagnets}</h2>\n"; # magnet listing headings $body .= "<table width=\"75%\" class=\"magnetsTable\" summary=\"$self->{language__}{Magnet_MainTableSummary}\">\n"; $body .= "<caption>$self->{language__}{Magnet_Message1}</caption>\n"; $body .= "<tr>\n<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Magnet}</th>\n"; $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Bucket}</th>\n"; ! $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Delete}</th>\n</tr>\n"; # magnet listing --- 1290,1306 ---- } # Current Magnets panel my $body = "<h2 class=\"magnets\">$self->{language__}{Magnet_CurrentMagnets}</h2>\n"; # magnet listing headings + $body .= "<form action=\"/magnets\">\n"; $body .= "<table width=\"75%\" class=\"magnetsTable\" summary=\"$self->{language__}{Magnet_MainTableSummary}\">\n"; $body .= "<caption>$self->{language__}{Magnet_Message1}</caption>\n"; $body .= "<tr>\n<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Magnet}</th>\n"; $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Bucket}</th>\n"; ! $body .= "<th class=\"magnetsLabel\" scope=\"col\">$self->{language__}{Remove}</th>\n</tr>\n"; ! ! my %magnet_types = ( 'from', 'From', 'to', 'To', 'subject', 'Subject' ); ! my $i = 0; # magnet listing *************** *** 1294,1297 **** --- 1309,1313 ---- for my $type ($self->{classifier__}->get_magnet_types_in_bucket($bucket)) { for my $magnet ($self->{classifier__}->get_magnets( $bucket, $type)) { + $i += 1; $body .= "<tr "; if ( $stripe ) { *************** *** 1306,1322 **** $validatingMagnet =~ s/</</g; $validatingMagnet =~ s/>/>/g; ! $body .= ">\n<td>$type: $validatingMagnet</td>\n"; ! $body .= "<td><font color=\"" . $self->{classifier__}->get_bucket_color($bucket) . "\">$bucket</font></td>\n"; ! # Remove magnet button ! $body .= "<td>\n<form class=\"magnetsDelete\" style=\"margin: 0\" action=\"/magnets\">\n"; ! $body .= "<input type=\"submit\" class=\"deleteButton\" name=\"deleteMagnet\" value=\"$self->{language__}{Delete}\" />\n"; ! $body .= "<input type=\"hidden\" name=\"bucket\" value=\"$bucket\" />\n"; ! $body .= "<input type=\"hidden\" name=\"dtype\" value=\"$type\" />\n"; ! $body .= "<input type=\"hidden\" name=\"dmagnet\" value=\"$validatingMagnet\" />\n"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n"; ! $body .= "</form>\n</td>\n"; $body .= "</tr>"; $stripe = 1 - $stripe; --- 1322,1344 ---- $validatingMagnet =~ s/</</g; $validatingMagnet =~ s/>/>/g; + $body .= ">\n<td><select name=\"type$i\" id=\"magnetsAddType\">\n"; ! for my $mtype (keys %magnet_types) { ! my $selected = ( $mtype eq $type )?"selected":""; ! $body .= "<option value=\"$mtype\" $selected>\n$self->{language__}{$magnet_types{$mtype}}</option>\n"; ! } ! $body .= "</select>: <input type=\"text\" name=\"text$i\" value=\"$validatingMagnet\" /></td>\n"; ! $body .= "<td><select name=\"bucket$i\" id=\"magnetsAddBucket\">\n"; ! my @buckets = $self->{classifier__}->get_buckets(); ! foreach my $mbucket (@buckets) { ! my $selected = ( $bucket eq $mbucket )?"selected":""; ! $body .= "<option value=\"$mbucket\" $selected>$mbucket</option>\n"; ! } ! $body .= "</select></td>\n"; ! $body .= "<td>\n"; ! $body .= "<input type=\"checkbox\" class=\"deleteButton\" name=\"remove$i\" />$self->{language__}{Remove}\n"; ! $body .= "</td>\n"; $body .= "</tr>"; $stripe = 1 - $stripe; *************** *** 1325,1329 **** } ! $body .= "</table>\n<br /><br />\n<hr />\n"; # Create New Magnet panel --- 1347,1353 ---- } ! $body .= "<tr><td></td><td><input type=\"submit\" class=\"deleteButton\" name=\"update\" value=\"$self->{language__}{Update}\" /></td><td><input type=\"submit\" class=\"deleteButton\" name=\"delete\" value=\"$self->{language__}{Remove}\" /></td></tr></table>"; ! $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n<br /><br />\n"; ! $body .= "<input type=\"hidden\" name=\"count\" value=\"$i\" />\n</form>\n<br /><br />\n<hr />\n"; # Create New Magnet panel *************** *** 2867,2871 **** $self->{form_}{search} = '' if ( !defined( $self->{form_}{search} ) ); $self->{form_}{filter} = '' if ( !defined( $self->{form_}{filter} ) ); ! my $index; foreach my $i ( $start_message .. $start_message + $self->config_( 'page_size' ) - 1) { --- 2891,2895 ---- $self->{form_}{search} = '' if ( !defined( $self->{form_}{search} ) ); $self->{form_}{filter} = '' if ( !defined( $self->{form_}{filter} ) ); ! my $index; foreach my $i ( $start_message .. $start_message + $self->config_( 'page_size' ) - 1) { *************** *** 2905,2909 **** $body .= "<table class=\"openMessageTable\" cellpadding=\"10%\" cellspacing=\"0\" width=\"100%\" summary=\"$self->{language__}{History_OpenMessageSummary}\">\n"; ! # Close button --- 2929,2933 ---- $body .= "<table class=\"openMessageTable\" cellpadding=\"10%\" cellspacing=\"0\" width=\"100%\" summary=\"$self->{language__}{History_OpenMessageSummary}\">\n"; ! # Close button *************** *** 2919,2924 **** $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n"; $body .= "<input type=\"hidden\" name=\"start_message\" value=\"$start_message\" />\n"; ! $body .= "<input type=\"hidden\" name=\"filter\" value=\"$self->{form_}{filter}\" />\n"; ! $body .= "<table align=left>"; $body .= "<tr><td><font size=+1><b>$self->{language__}{From}</b>: </font></td><td><font size=+1>$self->{history__}{$mail_file}{from}</font></td></tr>"; $body .= "<tr><td><font size=+1><b>$self->{language__}{Subject}</b>: </font></td><td><font size=+1>$self->{history__}{$mail_file}{subject}</font></td></tr>"; --- 2943,2948 ---- $body .= "<input type=\"hidden\" name=\"session\" value=\"$self->{session_key__}\" />\n"; $body .= "<input type=\"hidden\" name=\"start_message\" value=\"$start_message\" />\n"; ! $body .= "<input type=\"hidden\" name=\"filter\" value=\"$self->{form_}{filter}\" />\n"; ! $body .= "<table align=left>"; $body .= "<tr><td><font size=+1><b>$self->{language__}{From}</b>: </font></td><td><font size=+1>$self->{history__}{$mail_file}{from}</font></td></tr>"; $body .= "<tr><td><font size=+1><b>$self->{language__}{Subject}</b>: </font></td><td><font size=+1>$self->{history__}{$mail_file}{subject}</font></td></tr>"; *************** *** 2933,2940 **** if ( $self->{history__}{$mail_file}{magnet} eq '' ) { $body .= "\n$self->{language__}{History_ShouldBe}: <select name=\"$index\">\n"; ! # Show a blank bucket field $body .= "<option selected=\"selected\"></option>\n"; ! foreach my $abucket ($self->{classifier__}->get_buckets()) { $body .= "<option value=\"$abucket\">$abucket</option>\n"; --- 2957,2964 ---- if ( $self->{history__}{$mail_file}{magnet} eq '' ) { $body .= "\n$self->{language__}{History_ShouldBe}: <select name=\"$index\">\n"; ! # Show a blank bucket field $body .= "<option selected=\"selected\"></option>\n"; ! foreach my $abucket ($self->{classifier__}->get_buckets()) { $body .= "<option value=\"$abucket\">$abucket</option>\n"; *************** *** 2947,2951 **** $body .= "</font></td></tr>"; ! $body .= "</table></form>"; $body .= "</td></tr>"; --- 2971,2975 ---- $body .= "</font></td></tr>"; ! $body .= "</table></form>"; $body .= "</td></tr>"; |
From: <ssc...@us...> - 2003-04-19 12:30:25
|
Update of /cvsroot/popfile/engine/languages In directory sc8-pr-cvs1:/tmp/cvs-serv5855 Modified Files: English.msg Log Message: add unmagnetized filter (RFE 683007) Index: English.msg =================================================================== RCS file: /cvsroot/popfile/engine/languages/English.msg,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** English.msg 18 Apr 2003 21:02:02 -0000 1.27 --- English.msg 19 Apr 2003 12:30:22 -0000 1.28 *************** *** 143,147 **** --- 143,149 ---- History_NoMessages No messages History_ShowMagnet magnetized + History_ShowNoMagnet unmagnetized History_Magnet (just showing magnet classified messages) + History_NoMagnet (just showing non-magnet classified messages) History_ResetSearch Reset |