summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2018-02-03 15:19:52 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2018-02-03 15:23:47 +0100
commit52c059a10d869b1812267c6afbd14ca229bf1635 (patch)
treeb9fc85936087696cc63d61d1c2fa3e4c88bc8b66
parentd0c4d9ba23598c86dc69c79706f1bb8373fab1c5 (diff)
downloadorg-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.el23
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)