projects
/
gnus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Give a better error message in the "go offline" case.
[gnus]
/
lisp
/
spam-stat.el
diff --git
a/lisp/spam-stat.el
b/lisp/spam-stat.el
index
7b6df70
..
d6b20df
100644
(file)
--- a/
lisp/spam-stat.el
+++ b/
lisp/spam-stat.el
@@
-1,6
+1,7
@@
;;; spam-stat.el --- detecting spam based on statistics
;;; spam-stat.el --- detecting spam based on statistics
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+;; 2010 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Keywords: network
;; Author: Alex Schroeder <alex@gnu.org>
;; Keywords: network
@@
-8,20
+9,18
@@
;; This file is part of GNU Emacs.
;; This file is part of GNU Emacs.
-;;
This is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation
; either version 3, or (at your option)
-;; any later version.
+;;
GNU Emacs is free software: you can redistribute it and/or modify
+;;
it
under the terms of the GNU General Public License as published by
+;; the Free Software Foundation
, either version 3 of the License, or
+;;
(at your option)
any later version.
-;;
This is distributed in the hope that it will be useful, but WITHOUT
-;;
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-;;
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
-;; License for more details.
+;;
GNU Emacs is distributed in the hope that it will be useful,
+;;
but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;
GNU General Public
License for more details.
;; You should have received a copy of the GNU General Public License
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Commentary:
@@
-182,7
+181,7
@@
no effect when spam-stat is invoked through spam.el."
(defcustom spam-stat-score-buffer-user-functions nil
"List of additional scoring functions.
(defcustom spam-stat-score-buffer-user-functions nil
"List of additional scoring functions.
-Called one by one on the buffer.
+Called one by one on the buffer.
If all of these functions return non-nil answers, these numerical
answers are added to the computed spam stat score on the buffer. If
If all of these functions return non-nil answers, these numerical
answers are added to the computed spam stat score on the buffer. If
@@
-444,12
+443,12
@@
spam-stat (spam-stat-to-hash-table '(" spam-stat-ngood spam-stat-nbad))
(null spam-stat-last-saved-at)
(not (equal spam-stat-last-saved-at
(nth 5 (file-attributes spam-stat-file)))))
(null spam-stat-last-saved-at)
(not (equal spam-stat-last-saved-at
(nth 5 (file-attributes spam-stat-file)))))
- (progn
+ (progn
(load-file spam-stat-file)
(setq spam-stat-dirty nil
(load-file spam-stat-file)
(setq spam-stat-dirty nil
- spam-stat-last-saved-at
+ spam-stat-last-saved-at
(nth 5 (file-attributes spam-stat-file)))))
(nth 5 (file-attributes spam-stat-file)))))
- (t (message "Spam stat file not loaded: no change in disk.
.
")))))
+ (t (message "Spam stat file not loaded: no change in disk.")))))
(defun spam-stat-to-hash-table (entries)
"Turn list ENTRIES into a hash table and store as `spam-stat'.
(defun spam-stat-to-hash-table (entries)
"Turn list ENTRIES into a hash table and store as `spam-stat'.
@@
-505,11
+504,11
@@
where DIFF is the difference between SCORE and 0.5."
(defun spam-stat-score-buffer ()
"Return a score describing the spam-probability for this buffer.
Add user supplied modifications if supplied."
(defun spam-stat-score-buffer ()
"Return a score describing the spam-probability for this buffer.
Add user supplied modifications if supplied."
- (interactive) ; helps in debugging.
+ (interactive) ; helps in debugging.
(setq spam-stat-score-data (spam-stat-buffer-words-with-scores))
(let* ((probs (mapcar 'cadr spam-stat-score-data))
(prod (apply #'* probs))
(setq spam-stat-score-data (spam-stat-buffer-words-with-scores))
(let* ((probs (mapcar 'cadr spam-stat-score-data))
(prod (apply #'* probs))
- (score0
+ (score0
(/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x))
probs)))))
(score1s
(/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x))
probs)))))
(score1s
@@
-519,17
+518,17
@@
Add user supplied modifications if supplied."
(error nil)))
(ans
(if score1s (+ score0 score1s) score0)))
(error nil)))
(ans
(if score1s (+ score0 score1s) score0)))
- (when (interactive-p)
+ (when (interactive-p)
(message "%S" ans))
ans))
(defun spam-stat-score-buffer-user (&rest args)
(let* ((scores
(message "%S" ans))
ans))
(defun spam-stat-score-buffer-user (&rest args)
(let* ((scores
- (mapcar
- (lambda (fn)
+ (mapcar
+ (lambda (fn)
(apply fn args))
spam-stat-score-buffer-user-functions)))
(apply fn args))
spam-stat-score-buffer-user-functions)))
- (if (memq nil scores) nil
+ (if (memq nil scores) nil
(apply #'+ scores))))
(defun spam-stat-split-fancy ()
(apply #'+ scores))))
(defun spam-stat-split-fancy ()
@@
-553,12
+552,14
@@
check the variable `spam-stat-score-data'."
;; Testing
(defun spam-stat-strip-xref ()
;; Testing
(defun spam-stat-strip-xref ()
- "Strip the
the
Xref header."
+ "Strip the Xref header."
(save-restriction
(mail-narrow-to-head)
(when (re-search-forward "^Xref:.*\n" nil t)
(delete-region (match-beginning 0) (match-end 0)))))
(save-restriction
(mail-narrow-to-head)
(when (re-search-forward "^Xref:.*\n" nil t)
(delete-region (match-beginning 0) (match-end 0)))))
+(autoload 'time-to-number-of-days "time-date")
+
(defun spam-stat-process-directory (dir func)
"Process all the regular files in directory DIR using function FUNC."
(let* ((files (directory-files dir t "^[^.]"))
(defun spam-stat-process-directory (dir func)
"Process all the regular files in directory DIR using function FUNC."
(let* ((files (directory-files dir t "^[^.]"))
@@
-673,5
+674,4
@@
COUNT defaults to 5"
(provide 'spam-stat)
(provide 'spam-stat)
-;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554
;;; spam-stat.el ends here
;;; spam-stat.el ends here