annotate lisp/gnus/spam-report.el @ 65691:cb3218d6e82a

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-561 Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 122-124) - Update from CVS: lisp/mm-url.el (mm-url-decode-entities): Fix regexp. - Update from CVS 2005-09-22 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/spam-report.el (spam-report-url-ping-plain): Use gnus-extended-version as User-Agent. * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Explain why the default value is nil. 2005-09-20 Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-flags): Switch the default to nil, to be able to use Gnus at all. If the default switches to something else, then the function should be fixed not be exceedingly slow. 2005-09-19 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/mm-url.el (mm-url-decode-entities): Fix regexp. 2005-09-22 Katsumi Yamaoka <yamaoka@jpl.org> * man/gnus.texi (Mail): Fix gnus-confirm-mail-reply-to-news entry.
author Miles Bader <miles@gnu.org>
date Sun, 25 Sep 2005 21:26:33 +0000
parents eb0fd19f4e01
children 1077b8039c32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
1 ;;; spam-report.el --- Reporting spam
64754
fafd692d1e40 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64085
diff changeset
2
62755
0d1a48b1ca68 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-324
Miles Bader <miles@gnu.org>
parents: 62428
diff changeset
3 ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
4
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
5 ;; Author: Teodor Zlatanov <tzz@lifelogs.com>
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
6 ;; Keywords: network
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
7
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
9
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
13 ;; any later version.
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
14
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
19
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62907
diff changeset
22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62907
diff changeset
23 ;; Boston, MA 02110-1301, USA.
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
24
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
26
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
27 ;;; This module addresses a few aspects of spam reporting under Gnus. Page
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
28 ;;; breaks are used for grouping declarations and documentation relating to
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
29 ;;; each particular aspect.
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
30
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
31 ;;; Code:
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
32 (require 'gnus)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
33 (require 'gnus-sum)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
34
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
35 (eval-and-compile
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
36 (autoload 'mm-url-insert "mm-url"))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
37
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
38 (defgroup spam-report nil
62755
0d1a48b1ca68 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-324
Miles Bader <miles@gnu.org>
parents: 62428
diff changeset
39 "Spam reporting configuration."
0d1a48b1ca68 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-324
Miles Bader <miles@gnu.org>
parents: 62428
diff changeset
40 :group 'mail
0d1a48b1ca68 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-324
Miles Bader <miles@gnu.org>
parents: 62428
diff changeset
41 :group 'news)
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
42
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
43 (defcustom spam-report-gmane-regex nil
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
44 "Regexp matching Gmane newsgroups, e.g. \"^nntp\\+.*:gmane\\.\"
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
45 If you are using spam.el, consider setting gnus-spam-process-newsgroups
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
46 or the gnus-group-spam-exit-processor-report-gmane group/topic parameter
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
47 instead."
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
48 :type '(radio (const nil)
58835
9bdd97960431 Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-716
Miles Bader <miles@gnu.org>
parents: 56927
diff changeset
49 (regexp :value "^nntp\+.*:gmane\."))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
50 :group 'spam-report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
51
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
52 (defcustom spam-report-gmane-use-article-number t
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
53 "Whether the article number (faster!) or the header should be used."
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
54 :type 'boolean
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
55 :group 'spam-report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
56
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
57 (defcustom spam-report-url-ping-function
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
58 'spam-report-url-ping-plain
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
59 "Function to use for url ping spam reporting.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
60 The function must accept the arguments `host' and `report'."
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
61 :type '(choice
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
62 (const :tag "Connect directly"
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
63 spam-report-url-ping-plain)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
64 (const :tag "Use the external program specified in `mm-url-program'"
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
65 spam-report-url-ping-mm-url)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
66 (const :tag "Store request URLs in `spam-report-requests-file'"
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
67 spam-report-url-to-file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
68 (function :tag "User defined function" nil))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
69 :group 'spam-report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
70
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
71 (defcustom spam-report-requests-file
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
72 (nnheader-concat gnus-directory "spam/" "spam-report-requests.url")
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
73 ;; Is there a convention for the extension of such a file?
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
74 ;; Should we use `spam-directory'?
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
75 "File where spam report request are stored."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
76 :type 'file
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
77 :group 'spam-report)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
78
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
79 (defvar spam-report-url-ping-temp-agent-function nil
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
80 "Internal variable for `spam-report-agentize' and `spam-report-deagentize'.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
81 This variable will store the value of `spam-report-url-ping-function' from
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
82 before `spam-report-agentize' was run, so that `spam-report-deagentize' can
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
83 undo that change.")
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
84
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
85 (defun spam-report-gmane (&rest articles)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
86 "Report an article as spam through Gmane"
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
87 (dolist (article articles)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
88 (when (and gnus-newsgroup-name
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
89 (or (null spam-report-gmane-regex)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
90 (string-match spam-report-gmane-regex gnus-newsgroup-name)))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
91 (gnus-message 6 "Reporting spam article %d to spam.gmane.org..." article)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
92 (if spam-report-gmane-use-article-number
64754
fafd692d1e40 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64085
diff changeset
93 (spam-report-url-ping
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
94 "spam.gmane.org"
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
95 (format "/%s:%d"
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
96 (gnus-group-real-name gnus-newsgroup-name)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
97 article))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
98 (with-current-buffer nntp-server-buffer
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
99 (gnus-request-head article gnus-newsgroup-name)
65388
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
100 (let ((case-fold-search t)
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
101 field host report url)
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
102 ;; First check for X-Report-Spam because it's more specific to
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
103 ;; spam reporting than Archived-At. OTOH, all new articles on
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
104 ;; Gmane don't have X-Report-Spam anymore (unless Lars changes his
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
105 ;; mind :-)).
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
106 ;;
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
107 ;; There might be more than one Archived-At header so we need to
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
108 ;; find (and transform) the one related to Gmane.
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
109 (setq field (or (gnus-fetch-field "X-Report-Spam")
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
110 (gnus-fetch-field "Archived-At")))
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
111 (setq host (progn
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
112 (string-match
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
113 (concat "http://\\([a-z]+\\.gmane\\.org\\)"
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
114 "\\(/[^:/]+[:/][0-9]+\\)")
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
115 field)
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
116 (match-string 1 field)))
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
117 (setq report (match-string 2 field))
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
118 (when (string-equal "permalink.gmane.org" host)
65446
eb0fd19f4e01 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-540
Miles Bader <miles@gnu.org>
parents: 65388
diff changeset
119 (setq host "spam.gmane.org")
eb0fd19f4e01 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-540
Miles Bader <miles@gnu.org>
parents: 65388
diff changeset
120 (setq report (gnus-replace-in-string
eb0fd19f4e01 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-540
Miles Bader <miles@gnu.org>
parents: 65388
diff changeset
121 report "/\\([0-9]+\\)$" ":\\1")))
65388
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
122 (setq url (format "http://%s%s" host report))
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
123 (if (not (and host report url))
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
124 (gnus-message
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
125 3 "Could not find a spam report header in article %d..."
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
126 article)
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
127 (gnus-message 7 "Reporting spam through URL %s..." url)
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
128 (spam-report-url-ping host report))))))))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
129
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
130 (defun spam-report-url-ping (host report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
131 "Ping a host through HTTP, addressing a specific GET resource using
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
132 the function specified by `spam-report-url-ping-function'."
65388
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
133 ;; Example:
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
134 ;; host: "spam.gmane.org"
45be648405bb Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents: 64754
diff changeset
135 ;; report: "/gmane.some.group:123456"
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
136 (funcall spam-report-url-ping-function host report))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
137
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
138 (defun spam-report-url-ping-plain (host report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
139 "Ping a host through HTTP, addressing a specific GET resource."
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
140 (let ((tcp-connection))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
141 (with-temp-buffer
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
142 (or (setq tcp-connection
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
143 (open-network-stream
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
144 "URL ping"
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
145 (buffer-name)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
146 host
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
147 80))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
148 (error "Could not open connection to %s" host))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
149 (set-marker (process-mark tcp-connection) (point-min))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
150 (process-send-string
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
151 tcp-connection
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
152 (format "GET %s HTTP/1.1\nUser-Agent: %s (spam-report.el)\nHost: %s\n\n"
65691
cb3218d6e82a Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-561
Miles Bader <miles@gnu.org>
parents: 65446
diff changeset
153 report (gnus-extended-version) host)))))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
154
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
155 ;;;###autoload
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
156 (defun spam-report-process-queue (&optional file keep)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
157 "Report all queued requests from `spam-report-requests-file'.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
158
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
159 If FILE is given, use it instead of `spam-report-requests-file'.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
160 If KEEP is t, leave old requests in the file. If KEEP is the
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
161 symbol `ask', query before flushing the queue file."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
162 (interactive
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
163 (list (read-file-name
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
164 "File: "
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
165 (file-name-directory spam-report-requests-file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
166 spam-report-requests-file
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
167 nil
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
168 (file-name-nondirectory spam-report-requests-file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
169 current-prefix-arg))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
170 (if (eq spam-report-url-ping-function 'spam-report-url-to-file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
171 (error (concat "Cannot process requests when "
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
172 "`spam-report-url-ping-function' is "
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
173 "`spam-report-url-to-file'."))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
174 (gnus-message 7 "Processing requests using `%s'."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
175 spam-report-url-ping-function))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
176 (or file (setq file spam-report-requests-file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
177 (save-excursion
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
178 (set-buffer (find-file-noselect file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
179 (goto-char (point-min))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
180 (while (and (not (eobp))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
181 (re-search-forward
62428
9f49da4a429d Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-314
Miles Bader <miles@gnu.org>
parents: 61822
diff changeset
182 "http://\\([^/]+\\)\\(/.*\\) *$" (gnus-point-at-eol) t))
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
183 (funcall spam-report-url-ping-function (match-string 1) (match-string 2))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
184 (forward-line 1))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
185 (if (or (eq keep nil)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
186 (and (eq keep 'ask)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
187 (y-or-n-p
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
188 (format
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
189 "Flush requests from `%s'? " (current-buffer)))))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
190 (progn
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
191 (gnus-message 7 "Flushing request file `%s'"
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
192 spam-report-requests-file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
193 (erase-buffer)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
194 (save-buffer)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
195 (kill-buffer (current-buffer)))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
196 (gnus-message 7 "Keeping requests in `%s'" spam-report-requests-file))))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
197
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
198 ;;;###autoload
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
199 (defun spam-report-url-ping-mm-url (host report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
200 "Ping a host through HTTP, addressing a specific GET resource. Use
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
201 the external program specified in `mm-url-program' to connect to
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
202 server."
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
203 (with-temp-buffer
62907
88db2adda4b7 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-339
Miles Bader <miles@gnu.org>
parents: 62755
diff changeset
204 (let ((url (format "http://%s%s" host report)))
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
205 (mm-url-insert url t))))
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
206
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
207 ;;;###autoload
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
208 (defun spam-report-url-to-file (host report)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
209 "Collect spam report requests in `spam-report-requests-file'.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
210 Customize `spam-report-url-ping-function' to use this function."
62907
88db2adda4b7 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-339
Miles Bader <miles@gnu.org>
parents: 62755
diff changeset
211 (let ((url (format "http://%s%s" host report))
61822
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
212 (file spam-report-requests-file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
213 (gnus-make-directory (file-name-directory file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
214 (gnus-message 9 "Writing URL `%s' to file `%s'" url file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
215 (with-temp-buffer
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
216 (insert url)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
217 (newline)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
218 (append-to-file (point-min) (point-max) file))))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
219
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
220 ;;;###autoload
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
221 (defun spam-report-agentize ()
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
222 "Add spam-report support to the Agent.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
223 Spam reports will be queued with \\[spam-report-url-to-file] when
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
224 the Agent is unplugged, and will be submitted in a batch when the
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
225 Agent is plugged."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
226 (interactive)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
227 (add-hook 'gnus-agent-plugged-hook 'spam-report-plug-agent)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
228 (add-hook 'gnus-agent-unplugged-hook 'spam-report-unplug-agent))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
229
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
230 ;;;###autoload
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
231 (defun spam-report-deagentize ()
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
232 "Remove spam-report support from the Agent.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
233 Spam reports will be queued with the method used when
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
234 \\[spam-report-agentize] was run."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
235 (interactive)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
236 (remove-hook 'gnus-agent-plugged-hook 'spam-report-plug-agent)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
237 (remove-hook 'gnus-agent-unplugged-hook 'spam-report-unplug-agent))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
238
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
239 (defun spam-report-plug-agent ()
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
240 "Adjust spam report settings for plugged state.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
241 Process queued spam reports."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
242 ;; Process the queue, unless the user only wanted to report to a file
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
243 ;; anyway.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
244 (unless (equal spam-report-url-ping-temp-agent-function
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
245 'spam-report-url-to-file)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
246 (spam-report-process-queue))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
247 ;; Set the reporting function, if we have memorized something otherwise,
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
248 ;; stick with plain URL reporting.
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
249 (setq spam-report-url-ping-function
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
250 (or spam-report-url-ping-temp-agent-function
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
251 'spam-report-url-ping-plain)))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
252
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
253 (defun spam-report-unplug-agent ()
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
254 "Restore spam report settings for unplugged state."
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
255 ;; save the old value
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
256 (setq spam-report-url-ping-temp-agent-function
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
257 spam-report-url-ping-function)
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
258 ;; store all reports to file
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
259 (setq spam-report-url-ping-function
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
260 'spam-report-url-to-file))
de8a95c880bd Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents: 58835
diff changeset
261
56927
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
262 (provide 'spam-report)
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
263
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
264 ;;; arch-tag: f6683295-ec89-4ab5-8803-8cc842293022
55fd4f77387a Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff changeset
265 ;;; spam-report.el ends here.