org-feed: Do not stop feed update when a feed is unavailable

* lisp/org-feed.el (org-feed-update-all): Do not stop feed update when
  a feed is unavailable.

Reported-by: Adrian Tritschler <ajft@ajft.org>
<http://lists.gnu.org/r/emacs-orgmode/2018-02/msg00043.html>
This commit is contained in:
Nicolas Goaziou 2018-02-03 15:19:52 +01:00
parent d0c4d9ba23
commit 52c059a10d
1 changed files with 15 additions and 8 deletions

View File

@ -276,14 +276,21 @@ have been saved."
(defun org-feed-update-all ()
"Get inbox items from all feeds in `org-feed-alist'."
(interactive)
(let ((nfeeds (length org-feed-alist))
(nnew (apply '+ (mapcar 'org-feed-update org-feed-alist))))
(message "%s from %d %s"
(cond ((= nnew 0) "No new entries")
((= nnew 1) "1 new entry")
(t (format "%d new entries" nnew)))
nfeeds
(if (= nfeeds 1) "feed" "feeds"))))
(let ((entries 0)
(errors 0)
(total-feeds (length org-feed-alist)))
(dolist (feed org-feed-alist)
(let ((items (ignore-errors (org-feed-update feed))))
(if items (cl-incf entries items)
(cl-incf errors))))
(message "%s from %d %s%s"
(pcase entries
(0 "No new entries")
(1 "1 new entry")
(_ (format "%d new entries" entries)))
total-feeds
(if (= total-feeds 1) "feed" "feeds")
(if (= 0 errors) "" (format " (unavailable feeds: %d)" errors)))))
;;;###autoload
(defun org-feed-update (feed &optional retrieve-only)