From 52c059a10d869b1812267c6afbd14ca229bf1635 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 3 Feb 2018 15:19:52 +0100 Subject: [PATCH] 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 --- lisp/org-feed.el | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lisp/org-feed.el b/lisp/org-feed.el index 6f37c20a8..fde19e632 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)