From 419f74379bb27a1f2d35c89f74df65aec5efac2f Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Fri, 20 May 2022 00:24:30 -0400 Subject: [PATCH] Feed import: Don't fail on OPML entry with no `title` or `text` https://forums.zotero.org/discussion/96841/impossible-dimporter-ompl-rss --- chrome/content/zotero/xpcom/data/feeds.js | 5 +++-- test/tests/data/feeds.opml | 3 +++ test/tests/feedsTest.js | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/chrome/content/zotero/xpcom/data/feeds.js b/chrome/content/zotero/xpcom/data/feeds.js index f82658a28c..19d75cc25c 100644 --- a/chrome/content/zotero/xpcom/data/feeds.js +++ b/chrome/content/zotero/xpcom/data/feeds.js @@ -133,8 +133,9 @@ Zotero.Feeds = new function() { for (let feedElem of feedElems) { let url = feedElem.getAttribute('xmlUrl'); if (!url) url = feedElem.getAttribute('url'); - let name = feedElem.getAttribute('title'); - if (!name) name = feedElem.getAttribute('text'); + let name = feedElem.getAttribute('title') + || feedElem.getAttribute('text') + || Zotero.getString('pane.collections.untitled'); if (Zotero.Feeds.existsByURL(url) || registeredUrls.has(url)) { Zotero.debug("Feed Import from OPML: Feed " + name + " : " + url + " already exists. Skipping"); continue; diff --git a/test/tests/data/feeds.opml b/test/tests/data/feeds.opml index 922ba235f6..b1320fcf43 100644 --- a/test/tests/data/feeds.opml +++ b/test/tests/data/feeds.opml @@ -14,5 +14,8 @@ + + + diff --git a/test/tests/feedsTest.js b/test/tests/feedsTest.js index 15ab5f011a..0825febdab 100644 --- a/test/tests/feedsTest.js +++ b/test/tests/feedsTest.js @@ -26,7 +26,8 @@ describe("Zotero.Feeds", function () { "http://example.com/feed1.rss": "A title 1", "http://example.com/feed2.rss": "A title 2", "http://example.com/feed3.rss": "A title 3", - "http://example.com/feed4.rss": "A title 4" + "http://example.com/feed4.rss": "A title 4", + "http://example.com/feed5.rss": Zotero.getString('pane.collections.untitled') }; yield Zotero.Feeds.importFromOPML(opmlString); let feeds = Zotero.Feeds.getAll();