Mercurial > emacs
annotate lisp/gnus/spam-report.el @ 91184:f73ebed781c2
Add arch tagline
author | Miles Bader <miles@gnu.org> |
---|---|
date | Tue, 04 Dec 2007 22:43:44 +0000 |
parents | a3c27999decb |
children | 107ccd98fa12 |
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 |
75347 | 3 ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 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 |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
5 ;; Author: Ted Zlatanov <tzz@lifelogs.com> |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
6 ;; Keywords: network, spam, mail, gmane, report |
56927
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 |
78224
24202b793a08
Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents:
75347
diff
changeset
|
12 ;; the Free Software Foundation; either version 3, or (at your option) |
56927
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 | 22 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
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 |
68720
d9dde5b81e71
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-57
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
53 "Whether the article number (faster!) or the header should be used. |
d9dde5b81e71
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-57
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
54 |
d9dde5b81e71
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-57
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
55 You must set this to nil if you don't read Gmane groups directly |
d9dde5b81e71
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-57
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
56 from news.gmane.org, e.g. when using local newsserver such as |
d9dde5b81e71
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-57
Miles Bader <miles@gnu.org>
parents:
68633
diff
changeset
|
57 leafnode." |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
58 :type 'boolean |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
59 :group 'spam-report) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
60 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
61 (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
|
62 '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
|
63 "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
|
64 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
|
65 :type '(choice |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
66 (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
|
67 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
|
68 (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
|
69 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
|
70 (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
|
71 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
|
72 (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
|
73 :group 'spam-report) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
74 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
75 (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
|
76 (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
|
77 ;; 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
|
78 ;; 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
|
79 "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
|
80 :type 'file |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
81 :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
|
82 |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
83 (defcustom spam-report-resend-to nil |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
84 "Email address that spam articles are resent to when reporting. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
85 If not set, the user will be prompted to enter a value which will be |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
86 saved for future use." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
87 :type 'string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
88 :group 'spam-report) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
89 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
90 (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
|
91 "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
|
92 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
|
93 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
|
94 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
|
95 |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
96 (defun spam-report-resend (articles &optional ham) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
97 "Report an article as spam by resending via email. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
98 Reports is as ham when HAM is set." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
99 (dolist (article articles) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
100 (gnus-message 6 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
101 "Reporting %s article %d to <%s>..." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
102 (if ham "ham" "spam") |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
103 article spam-report-resend-to) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
104 (unless spam-report-resend-to |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
105 (customize-set-variable |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
106 spam-report-resend-to |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
107 (read-from-minibuffer "email address to resend SPAM/HAM to? "))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
108 ;; This is ganked from the `gnus-summary-resend-message' function. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
109 ;; It involves rendering the SPAM, which is undesirable, but there does |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
110 ;; not seem to be a nicer way to achieve this. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
111 ;; select this particular article |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
112 (gnus-summary-select-article nil nil nil article) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
113 ;; resend it to the destination address |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
114 (save-excursion |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
115 (set-buffer gnus-original-article-buffer) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
116 (message-resend spam-report-resend-to)))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
117 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
118 (defun spam-report-resend-ham (articles) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
119 "Report an article as ham by resending via email." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
120 (spam-report-resend articles t)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
121 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
122 (defun spam-report-gmane-ham (&rest articles) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
123 "Report ARTICLES as ham (unregister) through Gmane." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
124 (interactive (gnus-summary-work-articles current-prefix-arg)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
125 (dolist (article articles) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
126 (spam-report-gmane-internal t article))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
127 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
128 (defun spam-report-gmane-spam (&rest articles) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
129 "Report ARTICLES as spam through Gmane." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
130 (interactive (gnus-summary-work-articles current-prefix-arg)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
131 (dolist (article articles) |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
132 (spam-report-gmane-internal nil article))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
133 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
134 ;; `spam-report-gmane' was an interactive entry point, so we should provide an |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
135 ;; alias. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
136 (defalias 'spam-report-gmane 'spam-report-gmane-spam) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
137 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
138 (defun spam-report-gmane-internal (unspam article) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
139 "Report ARTICLE as spam or not-spam through Gmane, depending on UNSPAM." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
140 (when (and gnus-newsgroup-name |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
141 (or (null spam-report-gmane-regex) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
142 (string-match spam-report-gmane-regex gnus-newsgroup-name))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
143 (let ((rpt-host (if unspam "unspam.gmane.org" "spam.gmane.org"))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
144 (gnus-message 6 "Reporting article %d to %s..." article rpt-host) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
145 (cond |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
146 ;; Special-case nnweb groups -- these have the URL to use in |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
147 ;; the Xref headers. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
148 ((eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnweb) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
149 (spam-report-url-ping |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
150 rpt-host |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
151 (concat |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
152 "/" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
153 (gnus-replace-in-string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
154 (gnus-replace-in-string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
155 (gnus-replace-in-string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
156 (mail-header-xref (gnus-summary-article-header article)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
157 "/raw" ":silent") |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
158 "^.*article.gmane.org/" "") |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
159 "/" ":")))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
160 (spam-report-gmane-use-article-number |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
161 (spam-report-url-ping |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
162 rpt-host |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
163 (format "/%s:%d" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
164 (gnus-group-real-name gnus-newsgroup-name) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
165 article))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
166 (t |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
167 (with-current-buffer nntp-server-buffer |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
168 (erase-buffer) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
169 (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
|
170 (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
|
171 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
|
172 ;; 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
|
173 ;; 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
|
174 ;; 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
|
175 ;; mind :-)). |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
176 ;; |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
177 ;; 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
|
178 ;; 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
|
179 (setq field (or (gnus-fetch-field "X-Report-Spam") |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
180 (gnus-fetch-field "X-Report-Unspam") |
65388
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
181 (gnus-fetch-field "Archived-At"))) |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
182 (if (not (stringp field)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
183 (if (and (setq field (gnus-fetch-field "Xref")) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
184 (string-match "[^ ]+ +\\([^ ]+\\)" field)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
185 (setq report (concat "/" (match-string 1 field)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
186 host rpt-host)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
187 (setq host |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
188 (progn |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
189 (string-match |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
190 (concat "http://\\([a-z]+\\.gmane\\.org\\)" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
191 "\\(/[^:/]+[:/][0-9]+\\)") |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
192 field) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
193 (match-string 1 field))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
194 (setq report (match-string 2 field))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
195 (when host |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
196 (when (string-equal "permalink.gmane.org" host) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
197 (setq host rpt-host) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
198 (setq report (gnus-replace-in-string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
199 report "/\\([0-9]+\\)$" ":\\1"))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
200 (setq url (format "http://%s%s" host report))) |
65388
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
201 (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
|
202 (gnus-message |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
203 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
|
204 article) |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
205 (gnus-message 7 "Reporting article through URL %s..." url) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
206 (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
|
207 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
208 (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
|
209 "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
|
210 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
|
211 ;; Example: |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
212 ;; 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
|
213 ;; 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
|
214 (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
|
215 |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
216 (defcustom spam-report-user-mail-address |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
217 (and (stringp user-mail-address) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
218 (gnus-replace-in-string user-mail-address "@" "<at>")) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
219 "Mail address of this user used for spam reports to Gmane. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
220 This is initialized based on `user-mail-address'." |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
221 :type '(choice string |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
222 (const :tag "Don't expose address" nil)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
223 :version "23.0" ;; No Gnus |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
224 :group 'spam-report) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
225 |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
226 (defvar spam-report-user-agent |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
227 (if spam-report-user-mail-address |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
228 (format "%s (%s) %s" "spam-report.el" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
229 spam-report-user-mail-address |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
230 (gnus-extended-version)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
231 (format "%s %s" "spam-report.el" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
232 (gnus-extended-version)))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
233 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
234 (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
|
235 "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
|
236 (let ((tcp-connection)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
237 (with-temp-buffer |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
238 (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
|
239 (open-network-stream |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
240 "URL ping" |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
241 (buffer-name) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
242 host |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
243 80)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
244 (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
|
245 (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
|
246 (process-send-string |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
247 tcp-connection |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
248 (format "GET %s HTTP/1.1\nUser-Agent: %s\nHost: %s\n\n" |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
249 report spam-report-user-agent host)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
250 ;; Wait until we get something so we don't DOS the host. |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
251 (while (and (memq (process-status tcp-connection) '(open run)) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
252 (zerop (buffer-size))) |
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
253 (accept-process-output tcp-connection))))) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
254 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
255 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
256 (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
|
257 "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
|
258 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
259 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
|
260 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
|
261 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
|
262 (interactive |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
263 (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
|
264 "File: " |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
265 (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
|
266 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
|
267 nil |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
268 (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
|
269 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
|
270 (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
|
271 (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
|
272 "`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
|
273 "`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
|
274 (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
|
275 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
|
276 (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
|
277 (save-excursion |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
278 (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
|
279 (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
|
280 (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
|
281 (re-search-forward |
85712
a3c27999decb
Update Gnus to No Gnus 0.7 from the Gnus CVS trunk
Miles Bader <miles@gnu.org>
parents:
78224
diff
changeset
|
282 "http://\\([^/]+\\)\\(/.*\\) *$" (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
|
283 (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
|
284 (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
|
285 (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
|
286 (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
|
287 (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
|
288 (format |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
289 "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
|
290 (progn |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
291 (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
|
292 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
|
293 (erase-buffer) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
294 (save-buffer) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
295 (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
|
296 (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
|
297 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
298 ;;;###autoload |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
299 (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
|
300 "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
|
301 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
|
302 server." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
303 (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
|
304 (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
|
305 (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
|
306 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
307 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
308 (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
|
309 "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
|
310 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
|
311 (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
|
312 (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
|
313 (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
|
314 (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
|
315 (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
|
316 (insert url) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
317 (newline) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
318 (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
|
319 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
320 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
321 (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
|
322 "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
|
323 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
|
324 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
|
325 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
|
326 (interactive) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
327 (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
|
328 (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
|
329 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
330 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
331 (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
|
332 "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
|
333 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
|
334 \\[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
|
335 (interactive) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
336 (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
|
337 (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
|
338 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
339 (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
|
340 "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
|
341 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
|
342 ;; 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
|
343 ;; anyway. |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
344 (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
|
345 '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
|
346 (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
|
347 ;; 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
|
348 ;; 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
|
349 (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
|
350 (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
|
351 '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
|
352 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
353 (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
|
354 "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
|
355 ;; 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
|
356 (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
|
357 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
|
358 ;; 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
|
359 (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
|
360 '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
|
361 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
362 (provide 'spam-report) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
363 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
364 ;;; 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
|
365 ;;; spam-report.el ends here. |