Bugfix: broken feeds no longer cause the entire build to fail

pull/1/head
Starbeamrainbowlabs 2022-07-04 21:37:33 +01:00
parent 4f7cdf1350
commit 0bdcaf2858
No known key found for this signature in database
GPG Key ID: 1BE5172E637709C2
2 changed files with 20 additions and 13 deletions

View File

@ -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;

View File

@ -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;