Commit | Line | Data |
---|---|---|
affb61b4 LC |
1 | ;;; nnregistry.el --- access to articles via Gnus' message-id registry |
2 | ;;; -*- coding: utf-8 -*- | |
3 | ||
73b0cd50 | 4 | ;; Copyright (C) 2010-2011 Free Software Foundation, Inc. |
affb61b4 LC |
5 | |
6 | ;; Authors: Ludovic Courtès <ludo@gnu.org> | |
7 | ;; Keywords: news, mail | |
8 | ||
9 | ;; This file is part of GNU Emacs. | |
10 | ||
11 | ;; GNU Emacs is free software: you can redistribute it and/or modify | |
12 | ;; it under the terms of the GNU General Public License as published by | |
13 | ;; the Free Software Foundation, either version 3 of the License, or | |
14 | ;; (at your option) any later version. | |
15 | ||
16 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | ;; GNU General Public License for more details. | |
20 | ||
21 | ;; You should have received a copy of the GNU General Public License | |
22 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | |
23 | ||
24 | ;;; Commentary: | |
25 | ||
26 | ;; This file provides the `nnregistry' Gnus back-end. It can be used | |
27 | ;; in `gnus-refer-article-method' to quickly search for a message by | |
36d3245f G |
28 | ;; id, regardless of the back-end that stores it. See the Gnus manual |
29 | ;; for usage examples and more information. | |
affb61b4 LC |
30 | |
31 | ;;; Code: | |
32 | ||
33 | (require 'nnoo) | |
34 | (require 'gnus-registry) | |
35 | (require 'gnus-int) | |
36 | ||
37 | (nnoo-declare nnregistry) | |
38 | ||
39 | (deffoo nnregistry-server-opened (server) | |
40 | (eq gnus-registry-install t)) | |
41 | ||
42 | (deffoo nnregistry-close-server (server) | |
43 | t) | |
44 | ||
45 | (deffoo nnregistry-status-message (server) | |
46 | nil) | |
47 | ||
48 | (deffoo nnregistry-open-server (server &optional defs) | |
49 | (eq gnus-registry-install t)) | |
50 | ||
51 | (defvar nnregistry-within-nnregistry nil) | |
52 | ||
53 | (deffoo nnregistry-request-article (id &optional group server buffer) | |
54 | (and (not nnregistry-within-nnregistry) | |
55 | (let* ((nnregistry-within-nnregistry t) | |
11a3174d | 56 | (group (nth 0 (gnus-registry-get-id-key id 'group))) |
affb61b4 LC |
57 | (gnus-override-method nil)) |
58 | (message "nnregistry: requesting article `%s' in group `%s'" | |
59 | id group) | |
60 | (and group | |
61 | (gnus-check-group group) | |
62 | (gnus-request-article id group buffer))))) | |
63 | ||
64 | (provide 'nnregistry) | |
65 | ||
66 | ;;; nnregistry.el ends here |