Synch with Oort Gnus.
authoryamaoka <yamaoka>
Mon, 27 Jan 2003 22:18:10 +0000 (22:18 +0000)
committeryamaoka <yamaoka>
Mon, 27 Jan 2003 22:18:10 +0000 (22:18 +0000)
lisp/ChangeLog
lisp/spam.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 8b61320..8d6fd55 100644 (file)
@@ -1,3 +1,14 @@
+2003-01-27  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * spam.el (spam-check-blackholes) 
+       (spam-blackhole-good-server-regex): new variable to skip some IPs
+       when checking blackholes; use it
+       (spam-check-bogofilter-headers) 
+       (spam-bogofilter-bogosity-positive-spam-header): new variable, in
+       case more X-Bogosity is used than just "Yes/No"
+       (spam-ham-move-routine): semi-fixed, only first article is
+       properly moved now
+
 2003-01-27  Jesper Harder  <harder@ifa.au.dk>
 
        * gnus-util.el (gnus-kill-buffer): Remove buffer from gnus-buffers
index 75dcfe5..96896e8 100644 (file)
@@ -152,6 +152,11 @@ All unmarked article in such group receive the spam mark on group entry."
   :type '(repeat (string :tag "Server"))
   :group 'spam)
 
+(defcustom spam-blackhole-good-server-regex nil
+  "String matching IP addresses that should not be checked in the blackholes"
+  :type 'regexp
+  :group 'spam)
+
 (defcustom spam-ham-marks (list 'gnus-del-mark 'gnus-read-mark 
                                'gnus-killed-mark 'gnus-kill-file-mark 
                                'gnus-low-score-mark)
@@ -240,6 +245,11 @@ your main source of newsgroup names."
   :type 'string
   :group 'spam-bogofilter)
 
+(defcustom spam-bogofilter-bogosity-positive-spam-header "^\\(Yes\\|Spam\\)"
+  "The regex on `spam-bogofilter-header' for positive spam identification."
+  :type 'regexp
+  :group 'spam-bogofilter)
+
 (defcustom spam-bogofilter-database-directory nil
   "Directory path of the Bogofilter databases."
   :type '(choice (directory :tag "Location of the Bogofilter database directory")
@@ -400,15 +410,15 @@ your main source of newsgroup names."
 (defun spam-ham-move-routine (&optional group)
   (let ((articles gnus-newsgroup-articles)
        article ham-mark-values mark)
+
     (dolist (mark spam-ham-marks)
       (push (symbol-value mark) ham-mark-values))
-
-    (while articles
-      (setq article (pop articles))
-      (when (and (memq mark ham-mark-values)
+    
+    (dolist (article articles)
+      (when (and (memq (gnus-summary-article-mark article) ham-mark-values)
                 (stringp group))
-         (let ((gnus-current-article article))
-           (gnus-summary-move-article nil group))))))
+       (let ((gnus-current-article article))
+         (gnus-summary-move-article nil group))))))
  
 (defun spam-generic-register-routine (spam-func ham-func)
   (let ((articles gnus-newsgroup-articles)
@@ -572,18 +582,20 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details."
                ips)))
       (dolist (server spam-blackhole-servers)
        (dolist (ip ips)
-         (let ((query-string (concat ip "." server)))
-           (if spam-use-dig
-               (let ((query-result (query-dig query-string)))
-                 (when query-result
-                   (gnus-message 5 "(DIG): positive blackhole check '%s'" query-result)
-                   (push (list ip server query-result)
-                         matches)))
-             ;; else, if not using dig.el
-             (when (query-dns query-string)
-               (gnus-message 5 "positive blackhole check")
-               (push (list ip server (query-dns query-string 'TXT))
-                     matches)))))))
+         (unless (and spam-blackhole-good-server-regex
+                      (string-match spam-blackhole-good-server-regex ip))
+           (let ((query-string (concat ip "." server)))
+             (if spam-use-dig
+                 (let ((query-result (query-dig query-string)))
+                   (when query-result
+                     (gnus-message 5 "(DIG): positive blackhole check '%s'" query-result)
+                     (push (list ip server query-result)
+                           matches)))
+               ;; else, if not using dig.el
+               (when (query-dns query-string)
+                 (gnus-message 5 "positive blackhole check")
+                 (push (list ip server (query-dns query-string 'TXT))
+                       matches))))))))
     (when matches
       spam-split-group)))
 \f
@@ -843,12 +855,12 @@ Uses `gnus-newsgroup-name' if category is nil (for ham registration)."
 (defun spam-check-bogofilter-headers (&optional score)
   (let ((header (message-fetch-field spam-bogofilter-header)))
       (when (and header
-              (string-match "^Yes" header))
+                (string-match spam-bogofilter-bogosity-positive-spam-header
+                              header))
          (if score
              (when (string-match "spamicity=\\([0-9.]+\\)" header)
                (match-string 1 header))
            spam-split-group))))
-         
 
 ;; return something sensible if the score can't be determined
 (defun spam-bogofilter-score ()
index 7b556a4..0df312b 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-27  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * gnus.texi: replace `H' mark with `$' mark
+       (Blackholes): add spam-blackhole-good-server-regex variable
+
 2003-01-26  Simon Josefsson  <jas@extundo.com>
 
        * sieve.texi (Installation): Extension .sv is also used.
index 042441a..eb8acb6 100644 (file)
@@ -20892,7 +20892,7 @@ Spam \e$B$H@o$&$?$a$N?7$7$$5;K!$O!"%a%C%;!<%8$rAw?.$9$k:]$K$$$/$P$/$+$NIiC4\e(B
 @findex gnus-summary-mark-as-spam
 @code{gnus-summary-mark-as-spam}\e$B!#\e(B
 
-\e$B8=:_$N5-;v$K\e(B spam \e$B$H$7$F0u$rIU$1!"$=$l$r\e(B @samp{H} \e$B0u$GI=<($7$^$9!#\e(B
+\e$B8=:_$N5-;v$K\e(B spam \e$B$H$7$F0u$rIU$1!"$=$l$r\e(B @samp{$} \e$B0u$GI=<($7$^$9!#\e(B
 Spam \e$B5-;v$r8+$?$H$-$O$$$D$G$b!"%0%k!<%W$rH4$1$kA0$KI,$:\e(B @kbd{M-d} \e$B$G$=$N\e(B
 \e$B35N,9T$K0u$rIU$1$k$h$&$K$7$F2<$5$$!#$3$l$O\e(B @emph{spam} \e$B%0%k!<%W$NL$FI5-\e(B
 \e$B;v$KBP$7$F$O<+F0E*$K9T$J$o$l$^$9!#\e(B
@@ -20941,12 +20941,12 @@ gnus \e$B$O$"$J$?$,<u$1<h$C$?\e(B spam \e$B$+$i3X$S$^$9!#$"$J$?$O0l$D0J>e$N\e(B spam
 \e$B$O%G%#%U%)%k%H$G$OL$J,N`$G$9!#\e(B
 
 Spam \e$B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,\e(B spam \e$B$G$"$k$H2r<a\e(B
-\e$B$5$l$^$9\e(B: \e$B$=$N%0%k!<%W$KF~$k$H!"$=$l$i$K\e(B @samp{H} \e$B0u$,IU$-$^$9!#;~!9$3$l\e(B
+\e$B$5$l$^$9\e(B: \e$B$=$N%0%k!<%W$KF~$k$H!"$=$l$i$K\e(B @samp{$} \e$B0u$,IU$-$^$9!#;~!9$3$l\e(B
 \e$B$i$N%a%C%;!<%8$rD4$Y$F$_$F!"$d$C$Q$j\e(B spam \e$B$G$O$J$+$C$?$9$Y$F$N5-;v$+$i\e(B
-@samp{H} \e$B0u$r>C$5$J$1$l$P$J$j$^$;$s!#\e(B@samp{H} \e$B0u$r>C$9$K$O\e(B @kbd{M-u} \e$B$G\e(B
+@samp{$} \e$B0u$r>C$5$J$1$l$P$J$j$^$;$s!#\e(B@samp{$} \e$B0u$r>C$9$K$O\e(B @kbd{M-u} \e$B$G\e(B
 \e$B$=$N5-;v$r!VL$FI!W$K$9$k$+!"$"$k$$$O\e(B @kbd{d} \e$B$G\e(B spam \e$B$G$O$J$$$b$N$H$7$F\e(B
 \e$BFI$s$@$3$H$r@k8@$9$l$PNI$$$G$7$g$&!#%0%k!<%W$rH4$1$k$H$-!"$9$Y$F$N\e(B spam
-\e$B0u\e(B (@samp{H}) \e$B$,IU$$$?5-;v$O\e(B spam \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$N\e(B
+\e$B0u\e(B (@samp{$}) \e$B$,IU$$$?5-;v$O\e(B spam \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$N\e(B
 \e$BI8K\$H$7$F3X=,$7$^$9!#\e(B
 
 \e$B%a%C%;!<%8$OB>$N$$$m$$$m$JJ}K!$K$h$C$F$b>C5n$5$l$k$+$b$7$l$^$;$s$7!"\e(B
@@ -20974,7 +20974,7 @@ Spam \e$B%0%k!<%W$G$O!"%G%#%U%)%k%H$G$9$Y$F$N%a%C%;!<%8$,\e(B spam \e$B$G$"$k$H2r<a
 \e$B5-;v$O\e(B spam \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$NI8K\$H$7$F3X=,$7$^$9!#\e(B
 \e$B0U?^E*$K$?$/$5$s$N>C5n$r9T$J$&$H!"$?$^$K$=$l$O8+$F$$$J$$\e(B @samp{K} \e$B0u$,IU\e(B
 \e$B$$$?5-;v$G=*$o$k$+$b$7$l$^$;$s!#$=$7$F$=$l$i$O6vA3$K\e(B spam \e$B$r4^$s$G$$$k$+\e(B
-\e$B$b$7$l$^$;$s!#:G$bNI$$$N$O!"K\Ev$N\e(B spam \e$B$K\e(B @samp{H} \e$B$,IU$$$F$$$F!"B>$K2?\e(B
+\e$B$b$7$l$^$;$s!#:G$bNI$$$N$O!"K\Ev$N\e(B spam \e$B$K\e(B @samp{$} \e$B$,IU$$$F$$$F!"B>$K2?\e(B
 \e$B$bL5$$$3$H$r3N$+$a$k$3$H$G$9!#\e(B
 
 @emph{Spam} \e$B%0%k!<%W$rH4$1$k$H$-$K!"\e(Bspam \e$B0u$,IU$$$F$$$k$9$Y$F$N5-;v\e(B
@@ -21170,6 +21170,13 @@ spam-check-bogofilter\e$B!"\e(Bspam-check-ifile \e$B$^$?$O\e(B spam-check-stat (\e$B$
 
 @end defvar
 
+@defvar spam-blackhole-good-server-regex
+
+\e$B%V%i%C%/%[!<%k!&%5!<%P!<$N%j%9%H$H>H9g$5$l$F$O$J$i$J$$\e(B IP \e$B$N@55,I=8=!#\e(B
+@code{nil} \e$B$K@_Dj$5$l$k$HL58z$G$9!#\e(B
+
+@end defvar
+
 @defvar spam-use-dig
 
 @code{dns.el} \e$B%Q%C%1!<%8$NBe$o$j$K\e(B @code{dig.el} \e$B%Q%C%1!<%8$r;H$$$^$9!#\e(B
@@ -21225,12 +21232,12 @@ spam-check-bogofilter\e$B!"\e(Bspam-check-ifile \e$B$^$?$O\e(B spam-check-stat (\e$B$
 Eric Raymond \e$B$N?WB.$J\e(B Bogofilter \e$B$r\e(B @code{spam-split} \e$B$K;HMQ$7$?$$>l9g$O!"\e(B
 \e$B$3$NJQ?t$r%;%C%H$7$F$/$@$5$$!#\e(B
 
-Spam \e$B5-;v$@$1$N\e(B @samp{H} \e$B0u$r4XO"IU$1$k:G>.$N@$OC$K$h$C$F!"\e(BBogofilter \e$B%H\e(B
+Spam \e$B5-;v$@$1$N\e(B @samp{$} \e$B0u$r4XO"IU$1$k:G>.$N@$OC$K$h$C$F!"\e(BBogofilter \e$B%H\e(B
 \e$B%l!<%K%s%0$O$9$Y$F$+$J$j<+F0E*$K$J$j$^$9!#3F%+%F%4%j!<$N\e(B spam \e$B$+$=$&$G$J\e(B
-\e$B$$?tI4\e(B (a few hundreds) \e$B$N5-;v$rF~<j$9$k$^$G!"$3$l$r$d$i$J$1$l$P$J$j$^$;\e(B
-\e$B$s!#35N,%b!<%I$K$*$1$k%G%P%C%0$N$?$a$N!"$"$k$$$O9%4q?4$N$?$a$N%3%^%s\e(B
-\e$B%I\e(B @kbd{S t} \e$B$O!"8=:_$N5-;v$N\e(B @emph{spamicity} (\e$BLuCm\e(B: spam \e$BEY\e(B?) \e$B%9%3\e(B
-\e$B%"\e(B (0.0\e$B!A\e(B1.0) \e$B$rI=<($7$^$9!#\e(B
+\e$B$$?tI4$N5-;v$rF~<j$9$k$^$G!"$3$l$r$d$i$J$1$l$P$J$j$^$;$s!#35N,%b!<%I$K$*\e(B
+\e$B$1$k%G%P%C%0$N$?$a$N!"$"$k$$$O9%4q?4$N$?$a$N%3%^%s%I\e(B @kbd{S t} \e$B$O!"8=:_\e(B
+\e$B$N5-;v$N\e(B @emph{spamicity} (\e$BLuCm\e(B: spam \e$BEY\e(B?) \e$B%9%3%"\e(B (0.0\e$B!A\e(B1.0) \e$B$rI=<($7$^\e(B
+\e$B$9!#\e(B
 
 Bogofilter \e$B$O!"%3%s%Q%$%k;~$K@_Dj$5$l$kFbIt$NogCM$K4p$E$$$F!"%a%C%;!<%8\e(B
 \e$B$,\e(B spam \e$B$+$I$&$+$r7hDj$7$^$9!#ogCM$O%+%9%?%^%$%:$G$-$^$;$s!#\e(B
index 54a5230..3642eca 100644 (file)
@@ -21366,7 +21366,7 @@ the following keyboard commands:
 @findex gnus-summary-mark-as-spam
 @code{gnus-summary-mark-as-spam}.
 
-Mark current article as spam, showing it with the @samp{H} mark.
+Mark current article as spam, showing it with the @samp{$} mark.
 Whenever you see a spam article, make sure to mark its summary line
 with @kbd{M-d} before leaving the group.  This is done automatically
 for unread articles in @emph{spam} groups.
@@ -21413,12 +21413,12 @@ considered @emph{unclassified}.  All groups are unclassified by
 default.
 
 In spam groups, all messages are considered to be spam by default:
-they get the @samp{H} mark when you enter the group.  You must review
-these messages from time to time and remove the @samp{H} mark for
-every message that is not spam after all.  To remove the @samp{H}
+they get the @samp{$} mark when you enter the group.  You must review
+these messages from time to time and remove the @samp{$} mark for
+every message that is not spam after all.  To remove the @samp{$}
 mark, you can use @kbd{M-u} to "unread" the article, or @kbd{d} for
 declaring it read the non-spam way.  When you leave a group, all
-spam-marked (@samp{H}) articles are sent to a spam processor which
+spam-marked (@samp{$}) articles are sent to a spam processor which
 will study them as spam samples.
 
 Messages may also be deleted in various other ways, and unless
@@ -21446,7 +21446,7 @@ When you leave @emph{any} group, regardless of its
 to a spam processor, which will study these as spam samples.  If you
 explicit kill a lot, you might sometimes end up with articles marked
 @samp{K} which you never saw, and which might accidentally contain
-spam.  Best is to make sure that real spam is marked with @samp{H},
+spam.  Best is to make sure that real spam is marked with @samp{$},
 and nothing else.
 
 When you leave a @emph{spam} group, all spam-marked articles are
@@ -21643,6 +21643,13 @@ The list of servers to consult for blackhole checks.
 
 @end defvar
 
+@defvar spam-blackhole-good-server-regex
+
+A regular expression for IPs that should not be checked against the
+blackhole server list.  When set to nil, it has no effect.
+
+@end defvar
+
 @defvar spam-use-dig
 
 Use the @code{dig.el} package instead of the @code{dns.el} package.
@@ -21698,7 +21705,7 @@ There is no specific spam or ham processor for regular expressions.
 Set this variable if you want @code{spam-split} to use Eric Raymond's
 speedy Bogofilter.
 
-With a minimum of care for associating the @samp{H} mark for spam
+With a minimum of care for associating the @samp{$} mark for spam
 articles only, Bogofilter training all gets fairly automatic.  You
 should do this until you get a few hundreds of articles in each
 category, spam or not.  The command @kbd{S t} in summary mode, either