X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fspam-stat.el;h=d6b20df78b8f1da09dca43339a65da80b1e2a629;hp=bd6c6a25bc81176ca4699651401d275088647f12;hb=c9a393eeb329a99695566342a9f03b8a30000898;hpb=c358f44b1670d12d5eff5fe5a447a19afd34a252 diff --git a/lisp/spam-stat.el b/lisp/spam-stat.el index bd6c6a25b..d6b20df78 100644 --- a/lisp/spam-stat.el +++ b/lisp/spam-stat.el @@ -1,6 +1,7 @@ ;;; 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 ;; Keywords: network @@ -8,20 +9,18 @@ ;; 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 -;; 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 . ;;; 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. -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 @@ -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))))) - (progn + (progn (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))))) - (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'. @@ -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." - (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)) - (score0 + (score0 (/ 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))) - (when (interactive-p) + (when (interactive-p) (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))) - (if (memq nil scores) nil + (if (memq nil scores) nil (apply #'+ scores)))) (defun spam-stat-split-fancy () @@ -553,12 +552,14 @@ check the variable `spam-stat-score-data'." ;; 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))))) +(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 "^[^.]")) @@ -673,5 +674,4 @@ COUNT defaults to 5" (provide 'spam-stat) -;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554 ;;; spam-stat.el ends here