rss-parser
This block parses an RSS feed.
Setup:
npm install codeblox feedparser request
codeblox.json
{
"name": "rss-parser",
"version": "1.0.0",
"description": "Parses RSS feeds",
"directions": "Input the feed URL ('http://somefeedurl.xml')",
"keywords": [
"rss",
"feed",
"news"
],
"input": "text",
"output": "table"
}
codeblox.js
const FeedParser = require('feedparser')
const request = require('request')
const codeblox = require('codeblox')
module.exports.default = codeblox((input, options, callback) => {
let result = []
var req = request(input)
var feedparser = new FeedParser();
req.on('error', function (error) {
callback('Error fetching RSS feed')
});
req.on('response', function (res) {
var stream = this
if (res.statusCode !== 200) {
callback('Error fetching RSS feed')
}
else {
stream.pipe(feedparser);
}
});
feedparser.on('error', function (error) {
callback('Error parsing feed')
});
feedparser.on('readable', function () {
var stream = this
var meta = this.meta
var item;
while (item = stream.read()) {
result.push({
title: item.title,
description: item.description,
link: item.link
})
}
});
feedparser.on('end', function() {
callback(null, result)
})
})