diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2016-04-08 18:32:12 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2016-04-08 18:32:12 +0200 |
commit | 6e21e1cd5ac8a19592392e932ad9000b7d90cf44 (patch) | |
tree | 55bb41a5cd709bb16fff95172e0b261c07104fcb /js/service | |
parent | e7b7489a6f75524895c5b37b2a1fd670c82edf18 (diff) |
fix #843
Diffstat (limited to 'js/service')
-rw-r--r-- | js/service/OPMLImporter.js | 84 |
1 files changed, 44 insertions, 40 deletions
diff --git a/js/service/OPMLImporter.js b/js/service/OPMLImporter.js index cf195c512..b778bea2a 100644 --- a/js/service/OPMLImporter.js +++ b/js/service/OPMLImporter.js @@ -12,44 +12,48 @@ app.service('OPMLImporter', function (FeedResource, FolderResource, Publisher, 'use strict'; var startFeedJob = function (queue) { var deferred = $q.defer(); + try { + if (queue.length > 0) { + var feed = queue.pop(); + var url = feed.url; + var title = feed.title; + var folderId = 0; + var folderName = feed.folderName; + + if (folderName !== undefined && + FolderResource.get(folderName) !== undefined) { + var folder = FolderResource.get(folderName); + folder.opened = true; + folderId = folder.id; + + // display folder while adding the feed + folder.getsFeed = true; + folder.getsFeedCounter = folder.getsFeedCounter || 0; + folder.getsFeedCounter += 1; + } - if (queue.length > 0) { - var feed = queue.pop(); - var url = feed.url; - var title = feed.title; - var folderId = 0; - var folderName = feed.folderName; - - if (folderName !== undefined && - FolderResource.get(folderName) !== undefined) { - var folder = FolderResource.get(folderName); - folder.opened = true; - folderId = folder.id; - - // display folder while adding the feed - folder.getsFeed = true; - folder.getsFeedCounter = folder.getsFeedCounter || 0; - folder.getsFeedCounter += 1; - } - - // make sure to not add already existing feeds - if (url !== undefined && FeedResource.get(url) === undefined) { - FeedResource.create(url, folderId, title) - .then(function (data) { - Publisher.publishAll(data); - }) - .finally(function () { - if (folderId !== 0) { - folder.getsFeedCounter -= 1; - - if (folder.getsFeedCounter === 0) { - folder.getsFeed = false; - } - } - startFeedJob(queue); - }); + // make sure to not add already existing feeds + if (url !== undefined && FeedResource.get(url) === undefined) { + FeedResource.create(url, folderId, title) + .then(function (data) { + Publisher.publishAll(data); + }) + .finally(function () { + if (folderId !== 0) { + folder.getsFeedCounter -= 1; + + if (folder.getsFeedCounter === 0) { + folder.getsFeed = false; + } + } + startFeedJob(queue); + }); + } + } else { + deferred.resolve(); } - } else { + } catch (e) { + console.log(e); deferred.resolve(); } @@ -66,9 +70,9 @@ app.service('OPMLImporter', function (FeedResource, FolderResource, Publisher, // skip already created folders if (FolderResource.get(folder.name) === undefined) { var promise = FolderResource.create(folder.name) - .then(function (data) { - Publisher.publishAll(data); - }); + .then(function (data) { + Publisher.publishAll(data); + }); folderPromises.push(promise); } @@ -94,7 +98,7 @@ app.service('OPMLImporter', function (FeedResource, FolderResource, Publisher, var deferred = $q.defer(); var jobPromises = []; - for (var i=0; i<jobSize; i+=1) { + for (var i = 0; i < jobSize; i += 1) { jobPromises.push(startFeedJob(feedQueue)); } |