diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-03 15:19:52 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-02-03 15:23:47 +0100 |
commit | 52c059a10d869b1812267c6afbd14ca229bf1635 (patch) | |
tree | b9fc85936087696cc63d61d1c2fa3e4c88bc8b66 | |
parent | d0c4d9ba23598c86dc69c79706f1bb8373fab1c5 (diff) | |
download | org-mode-52c059a10d869b1812267c6afbd14ca229bf1635.tar.gz |
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>
-rw-r--r-- | lisp/org-feed.el | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/lisp/org-feed.el b/lisp/org-feed.el index 6f37c20..fde19e6 100644 --- a/lisp/org-feed.el +++ b/lisp/org-feed.el @@ -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) |