- nnkiboze-remove-read-articles
- (eq major-mode 'gnus-summary-mode))
- (save-excursion
- (let ((unreads gnus-newsgroup-unreads)
- (unselected gnus-newsgroup-unselected)
- (version-control 'never))
- (set-buffer (get-buffer-create "*nnkiboze work*"))
- (buffer-disable-undo (current-buffer))
- (erase-buffer)
- (let ((cur (current-buffer))
- article)
- (insert-file-contents (nnkiboze-nov-file-name))
- (goto-char (point-min))
- (while (looking-at "[0-9]+")
- (if (or (memq (setq article (read cur)) unreads)
- (memq article unselected))
- (forward-line 1)
- (delete-region (progn (beginning-of-line) (point))
- (progn (forward-line 1) (point)))))
- (write-file (nnkiboze-nov-file-name))
- (kill-buffer (current-buffer)))))
- (setq nnkiboze-current-group nil)))
-
-(deffoo nnkiboze-request-list (&optional server)
- (nnheader-report 'nnkiboze "LIST is not implemented."))
-
-(deffoo nnkiboze-request-newgroups (date &optional server)
- "List new groups."
- (nnheader-report 'nnkiboze "NEWGROUPS is not supported."))
-
-(deffoo nnkiboze-request-list-newsgroups (&optional server)
- (nnheader-report 'nnkiboze "LIST NEWSGROUPS is not implemented."))
+ nnkiboze-remove-read-articles)
+ (nnheader-temp-write (nnkiboze-nov-file-name)
+ (let ((cur (current-buffer)))
+ (insert-file-contents (nnkiboze-nov-file-name))
+ (goto-char (point-min))
+ (while (not (eobp))
+ (if (not (gnus-article-read-p (read cur)))
+ (forward-line 1)
+ (gnus-delete-line))))))
+ (setq nnkiboze-current-group nil))
+
+(deffoo nnkiboze-open-server (server &optional defs)
+ (unless (assq 'nnkiboze-regexp defs)
+ (push `(nnkiboze-regexp ,server)
+ defs))
+ (nnoo-change-server 'nnkiboze server defs))