Mercurial > emacs
annotate lisp/gnus/spam-report.el @ 78023:fb819c8536d0
*** empty log message ***
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sun, 17 Jun 2007 22:25:08 +0000 |
parents | e3694f1cb928 |
children | 24202b793a08 |
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 |
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 | 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 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
83 (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
|
84 "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
|
85 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
|
86 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
|
87 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
|
88 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
89 (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
|
90 "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
|
91 (dolist (article articles) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
92 (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
|
93 (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
|
94 (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
|
95 (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
|
96 (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
|
97 (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
|
98 "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
|
99 (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
|
100 (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
|
101 article)) |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
102 (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
|
103 (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
|
104 (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
|
105 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
|
106 ;; 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
|
107 ;; 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
|
108 ;; 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
|
109 ;; mind :-)). |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
110 ;; |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
111 ;; 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
|
112 ;; 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
|
113 (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
|
114 (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
|
115 (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
|
116 (string-match |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
117 (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
|
118 "\\(/[^:/]+[:/][0-9]+\\)") |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
119 field) |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
120 (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
|
121 (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
|
122 (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
|
123 (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
|
124 (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
|
125 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
|
126 (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
|
127 (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
|
128 (gnus-message |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
129 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
|
130 article) |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
131 (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
|
132 (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
|
133 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
134 (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
|
135 "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
|
136 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
|
137 ;; Example: |
45be648405bb
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-536
Miles Bader <miles@gnu.org>
parents:
64754
diff
changeset
|
138 ;; 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
|
139 ;; 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
|
140 (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
|
141 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
142 (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
|
143 "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
|
144 (let ((tcp-connection)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
145 (with-temp-buffer |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
146 (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
|
147 (open-network-stream |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
148 "URL ping" |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
149 (buffer-name) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
150 host |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
151 80)) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
152 (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
|
153 (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
|
154 (process-send-string |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
155 tcp-connection |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
156 (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
|
157 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
|
158 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
159 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
160 (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
|
161 "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
|
162 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 (interactive |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
167 (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
|
168 "File: " |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
169 (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
|
170 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
|
171 nil |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
172 (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
|
173 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
|
174 (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
|
175 (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
|
176 "`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
|
177 "`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
|
178 (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
|
179 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
|
180 (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
|
181 (save-excursion |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
182 (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
|
183 (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
|
184 (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
|
185 (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
|
186 "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
|
187 (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
|
188 (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
|
189 (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
|
190 (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
|
191 (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
|
192 (format |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
193 "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
|
194 (progn |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
195 (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
|
196 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 (erase-buffer) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
198 (save-buffer) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
199 (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
|
200 (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
|
201 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
202 ;;;###autoload |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
203 (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
|
204 "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
|
205 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
|
206 server." |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
207 (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
|
208 (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
|
209 (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
|
210 |
61822
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
211 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
212 (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
|
213 "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
|
214 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
|
215 (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
|
216 (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
|
217 (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
|
218 (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
|
219 (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
|
220 (insert url) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
221 (newline) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
222 (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
|
223 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
224 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
225 (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
|
226 "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
|
227 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
|
228 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
|
229 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
|
230 (interactive) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
231 (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
|
232 (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
|
233 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
234 ;;;###autoload |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
235 (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
|
236 "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
|
237 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
|
238 \\[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
|
239 (interactive) |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
240 (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
|
241 (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
|
242 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
243 (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
|
244 "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
|
245 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
|
246 ;; 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
|
247 ;; anyway. |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
248 (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
|
249 '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
|
250 (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
|
251 ;; 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
|
252 ;; 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
|
253 (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
|
254 (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
|
255 '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
|
256 |
de8a95c880bd
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-277
Miles Bader <miles@gnu.org>
parents:
58835
diff
changeset
|
257 (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
|
258 "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
|
259 ;; 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
|
260 (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
|
261 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
|
262 ;; 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
|
263 (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
|
264 '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
|
265 |
56927
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
266 (provide 'spam-report) |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
267 |
55fd4f77387a
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-523
Miles Bader <miles@gnu.org>
parents:
diff
changeset
|
268 ;;; 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
|
269 ;;; spam-report.el ends here. |