Allow automatic scanning of nnselect groups

* lisp/gnus/gnus-start.el (gnus-read-active-for-groups): Scan when
  activating virtual groups.

* lisp/gnus/nnselect.el (nnselect-request-group): Rescan only if no
  artlist is present.
  (nnselect-request-group-scan): New function to rescan a group.
  (nnselect-request-scan): If called with a group arg rescan that
  group.
This commit is contained in:
Andrew G Cohen 2018-03-06 04:57:22 +08:00
parent f8627cfbc5
commit e7d6eb625f
2 changed files with 21 additions and 8 deletions

View file

@ -1836,7 +1836,7 @@ backend check whether the group actually exists."
;; by one.
(t
(dolist (info infos)
(gnus-activate-group (gnus-info-group info) nil nil method t))))))
(gnus-activate-group (gnus-info-group info) t nil method t))))))
;; Create a hash table out of the newsrc alist. The `car's of the
;; alist elements are used as keys.

View file

@ -220,12 +220,12 @@ If this variable is nil, or if the provided function returns nil,
t)
(deffoo nnselect-request-group (group &optional server dont-check info)
(deffoo nnselect-request-group (group &optional server _dont-check info)
(let ((group (nnselect-possibly-change-group group server))
length)
;; Check for cached select result or run the selection and cache
;; the result.
(unless (and nnselect-artlist dont-check)
(unless nnselect-artlist
(gnus-group-set-parameter
group 'nnselect-artlist
(setq nnselect-artlist
@ -617,15 +617,28 @@ If this variable is nil, or if the provided function returns nil,
(deffoo nnselect-request-rename-group (_group _new-name &optional _server)
t)
(deffoo nnselect-request-scan (_group _method)
t)
(deffoo nnselect-request-scan (group _method)
(when (and group
(gnus-group-get-parameter
(gnus-group-prefixed-name
(gnus-group-short-name group)
'(nnselect "nnselect")) 'nnselect-rescan t))
(nnselect-request-group-scan group)))
(deffoo nnselect-request-list (&optional _server)
t)
(deffoo nnselect-request-group-scan (group &optional server info)
(let ((group (nnselect-possibly-change-group group server)))
(gnus-group-set-parameter
group 'nnselect-artlist
(setq nnselect-artlist
(nnselect-run
(gnus-group-get-parameter group 'nnselect-specs t))))
(nnselect-request-update-info
group (or info (gnus-get-info group)))))
;; Add any undefined required backend functions
(nnoo-define-skeleton nnselect)
;; (nnoo-define-skeleton nnselect)
;;; Util Code: