1 |
;;; nnagent.el --- offline backend for Gnus |
;;; nnagent.el --- offline backend for Gnus |
2 |
;; Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. |
|
3 |
|
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 |
4 |
|
;; Free Software Foundation, Inc. |
5 |
|
|
6 |
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org> |
7 |
;; Keywords: news, mail |
;; Keywords: news, mail |
123 |
(deffoo nnagent-request-set-mark (group action server) |
(deffoo nnagent-request-set-mark (group action server) |
124 |
(with-temp-buffer |
(with-temp-buffer |
125 |
(insert (format "(%s-request-set-mark \"%s\" '%s \"%s\")\n" |
(insert (format "(%s-request-set-mark \"%s\" '%s \"%s\")\n" |
126 |
(nth 0 gnus-command-method) group action |
(nth 0 gnus-command-method) group action |
127 |
(or server (nth 1 gnus-command-method)))) |
(or server (nth 1 gnus-command-method)))) |
128 |
(append-to-file (point-min) (point-max) (gnus-agent-lib-file "flags"))) |
(append-to-file (point-min) (point-max) (gnus-agent-lib-file "flags"))) |
129 |
nil) |
nil) |
130 |
|
|
131 |
|
(deffoo nnagent-retrieve-headers (articles &optional group server fetch-old) |
132 |
|
(let ((file (gnus-agent-article-name ".overview" group)) |
133 |
|
arts n first) |
134 |
|
(save-excursion |
135 |
|
(gnus-agent-load-alist group) |
136 |
|
(setq arts (gnus-sorted-difference |
137 |
|
articles (mapcar 'car gnus-agent-article-alist))) |
138 |
|
;; Assume that articles with smaller numbers than the first one |
139 |
|
;; Agent knows are gone. |
140 |
|
(setq first (caar gnus-agent-article-alist)) |
141 |
|
(when first |
142 |
|
(while (and arts (< (car arts) first)) |
143 |
|
(pop arts))) |
144 |
|
(set-buffer nntp-server-buffer) |
145 |
|
(erase-buffer) |
146 |
|
(nnheader-insert-nov-file file (car articles)) |
147 |
|
(goto-char (point-min)) |
148 |
|
(gnus-parse-without-error |
149 |
|
(while (and arts (not (eobp))) |
150 |
|
(setq n (read (current-buffer))) |
151 |
|
(when (> n (car arts)) |
152 |
|
(beginning-of-line)) |
153 |
|
(while (and arts (> n (car arts))) |
154 |
|
(insert (format |
155 |
|
"%d\t[Undownloaded article %d]\tGnus Agent\t\t\t\n" |
156 |
|
(car arts) (car arts))) |
157 |
|
(pop arts)) |
158 |
|
(when (and arts (= n (car arts))) |
159 |
|
(pop arts)) |
160 |
|
(forward-line 1))) |
161 |
|
(while arts |
162 |
|
(insert (format |
163 |
|
"%d\t[Undownloaded article %d]\tGnus Agent\t\t\t\n" |
164 |
|
(car arts) (car arts))) |
165 |
|
(pop arts)) |
166 |
|
(if (and fetch-old |
167 |
|
(not (numberp fetch-old))) |
168 |
|
t ; Don't remove anything. |
169 |
|
(nnheader-nov-delete-outside-range |
170 |
|
(if fetch-old (max 1 (- (car articles) fetch-old)) |
171 |
|
(car articles)) |
172 |
|
(car (last articles))) |
173 |
|
t) |
174 |
|
'nov))) |
175 |
|
|
176 |
|
(deffoo nnagent-request-expire-articles (articles group &optional server force) |
177 |
|
articles) |
178 |
|
|
179 |
(deffoo nnagent-request-group (group &optional server dont-check) |
(deffoo nnagent-request-group (group &optional server dont-check) |
180 |
(nnoo-parent-function 'nnagent 'nnml-request-group |
(nnoo-parent-function 'nnagent 'nnml-request-group |
181 |
(list group (nnagent-server server) dont-check))) |
(list group (nnagent-server server) dont-check))) |
182 |
|
|
183 |
(deffoo nnagent-close-group (group &optional server) |
(deffoo nnagent-close-group (group &optional server) |
184 |
(nnoo-parent-function 'nnagent 'nnml-close-group |
(nnoo-parent-function 'nnagent 'nnml-close-group |
185 |
(list group (nnagent-server server)))) |
(list group (nnagent-server server)))) |
186 |
|
|
187 |
(deffoo nnagent-request-accept-article (group &optional server last) |
(deffoo nnagent-request-accept-article (group &optional server last) |
188 |
(nnoo-parent-function 'nnagent 'nnml-request-accept-article |
(nnoo-parent-function 'nnagent 'nnml-request-accept-article |
189 |
(list group (nnagent-server server) last))) |
(list group (nnagent-server server) last))) |
190 |
|
|
191 |
(deffoo nnagent-request-article (id &optional group server buffer) |
(deffoo nnagent-request-article (id &optional group server buffer) |
192 |
(nnoo-parent-function 'nnagent 'nnml-request-article |
(nnoo-parent-function 'nnagent 'nnml-request-article |
193 |
(list id group (nnagent-server server) buffer))) |
(list id group (nnagent-server server) buffer))) |
194 |
|
|
195 |
(deffoo nnagent-request-create-group (group &optional server args) |
(deffoo nnagent-request-create-group (group &optional server args) |
196 |
(nnoo-parent-function 'nnagent 'nnml-request-create-group |
(nnoo-parent-function 'nnagent 'nnml-request-create-group |
197 |
(list group (nnagent-server server) args))) |
(list group (nnagent-server server) args))) |
198 |
|
|
199 |
(deffoo nnagent-request-delete-group (group &optional force server) |
(deffoo nnagent-request-delete-group (group &optional force server) |
200 |
(nnoo-parent-function 'nnagent 'nnml-request-delete-group |
(nnoo-parent-function 'nnagent 'nnml-request-delete-group |
201 |
(list group force (nnagent-server server)))) |
(list group force (nnagent-server server)))) |
|
|
|
|
(deffoo nnagent-request-expire-articles (articles group &optional server force) |
|
|
(nnoo-parent-function 'nnagent 'nnml-request-expire-articles |
|
|
(list articles group (nnagent-server server) force))) |
|
202 |
|
|
203 |
(deffoo nnagent-request-list (&optional server) |
(deffoo nnagent-request-list (&optional server) |
204 |
(nnoo-parent-function 'nnagent 'nnml-request-list |
(nnoo-parent-function 'nnagent 'nnml-request-list |
205 |
(list (nnagent-server server)))) |
(list (nnagent-server server)))) |
206 |
|
|
207 |
(deffoo nnagent-request-list-newsgroups (&optional server) |
(deffoo nnagent-request-list-newsgroups (&optional server) |
208 |
(nnoo-parent-function 'nnagent 'nnml-request-list-newsgroups |
(nnoo-parent-function 'nnagent 'nnml-request-list-newsgroups |
209 |
(list (nnagent-server server)))) |
(list (nnagent-server server)))) |
210 |
|
|
211 |
(deffoo nnagent-request-move-article |
(deffoo nnagent-request-move-article |
212 |
(article group server accept-form &optional last) |
(article group server accept-form &optional last) |
213 |
(nnoo-parent-function 'nnagent 'nnml-request-move-article |
(nnoo-parent-function 'nnagent 'nnml-request-move-article |
214 |
(list article group (nnagent-server server) |
(list article group (nnagent-server server) |
215 |
accept-form last))) |
accept-form last))) |
216 |
|
|
217 |
(deffoo nnagent-request-rename-group (group new-name &optional server) |
(deffoo nnagent-request-rename-group (group new-name &optional server) |
218 |
(nnoo-parent-function 'nnagent 'nnml-request-rename-group |
(nnoo-parent-function 'nnagent 'nnml-request-rename-group |
219 |
(list group new-name (nnagent-server server)))) |
(list group new-name (nnagent-server server)))) |
220 |
|
|
221 |
(deffoo nnagent-request-scan (&optional group server) |
(deffoo nnagent-request-scan (&optional group server) |
222 |
(nnoo-parent-function 'nnagent 'nnml-request-scan |
(nnoo-parent-function 'nnagent 'nnml-request-scan |
223 |
(list group (nnagent-server server)))) |
(list group (nnagent-server server)))) |
|
|
|
|
(deffoo nnagent-retrieve-headers (sequence &optional group server fetch-old) |
|
|
(nnoo-parent-function 'nnagent 'nnml-retrieve-headers |
|
|
(list sequence group (nnagent-server server) fetch-old))) |
|
224 |
|
|
225 |
(deffoo nnagent-set-status (article name value &optional group server) |
(deffoo nnagent-set-status (article name value &optional group server) |
226 |
(nnoo-parent-function 'nnagent 'nnml-set-status |
(nnoo-parent-function 'nnagent 'nnml-set-status |
227 |
(list article name value group (nnagent-server server)))) |
(list article name value group (nnagent-server server)))) |
228 |
|
|
229 |
(deffoo nnagent-server-opened (&optional server) |
(deffoo nnagent-server-opened (&optional server) |
230 |
(nnoo-parent-function 'nnagent 'nnml-server-opened |
(nnoo-parent-function 'nnagent 'nnml-server-opened |
234 |
(nnoo-parent-function 'nnagent 'nnml-status-message |
(nnoo-parent-function 'nnagent 'nnml-status-message |
235 |
(list (nnagent-server server)))) |
(list (nnagent-server server)))) |
236 |
|
|
237 |
|
(deffoo nnagent-request-regenerate (server) |
238 |
|
(nnoo-parent-function 'nnagent 'nnml-request-regenerate |
239 |
|
(list (nnagent-server server)))) |
240 |
|
|
241 |
;; Use nnml functions for just about everything. |
;; Use nnml functions for just about everything. |
242 |
(nnoo-import nnagent |
(nnoo-import nnagent |
243 |
(nnml)) |
(nnml)) |