diff --git a/src/index.11tydata.js b/src/index.11tydata.js index a8574ca..46bf67b 100644 --- a/src/index.11tydata.js +++ b/src/index.11tydata.js @@ -38,16 +38,18 @@ async function do_feeds() { data: await pReflect(fetch_feed(feed.feed_uri)) } })); const feed_data_ok = feed_data.filter(el => { - return el.data.isFulfilled - }) - .map((feed) => { - feed.data = feed.data.value; - if(typeof process.env["DEBUG_FEEDS"] != "undefined") - console.log("FEED", feed.data); - return feed; - }); - global.feed_authors_error = feed_data.filter(el => el.data.isRejected) - .map(el => el.author_name); + return el.data.isFulfilled && el.data.value != null + }) + .map((feed) => { + feed.data = feed.data.value; + if(typeof process.env["DEBUG_FEEDS"] != "undefined") + console.log("FEED", feed.data); + return feed; + }); + + global.feed_authors_error = feed_data + .filter(el => el.data.isRejected|| el.data.value === null) + .map(el => el.author_name); global.feed_items = [].concat(...feed_data_ok.map(feed => feed.data.items.map(item => { item.author_name = feed.author_name; diff --git a/src/lib/fetch_feed.js b/src/lib/fetch_feed.js index 8739ea2..d17dde2 100644 --- a/src/lib/fetch_feed.js +++ b/src/lib/fetch_feed.js @@ -1,6 +1,7 @@ const fetch_stream = require("./fetch_stream.js"); const FeedMe = require("feedme"); const events = require("events"); +const util = require("util"); function do_parse(stream) { return new Promise(function(resolve, reject) { @@ -16,9 +17,13 @@ function do_parse(stream) { async function fetch_feed(url) { let start = new Date(); - let result = await do_parse( - await fetch_stream(url) - ); + const fetch_result = await fetch_stream(url); + if(fetch_result.statusCode < 200 || fetch_result.statusCode >= 300) { + console.error(`FETCH ERROR ${new Date() - start}ms ${fetch_result.statusCode} ${url}`); + return null; + } + let result = await do_parse(fetch_result); + console.log(`FETCH ${new Date() - start}ms ${url}`); return result;