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)
  })
})

results matching ""

    No results matching ""