/node-rss-combiner

Combine RSS feeds

Primary LanguageJavaScript

rss-combiner Build Status

Note: this is a fork of https://travis-ci.org/awocallaghan/node-rss-combiner - it is not meant to exist, I just needed to fork it.

Combine multiple RSS feeds into one using node-feedparser and rss.

npm install rss-combiner

Usage

Combine feeds

var RSSCombiner = require('rss-combiner');

// Promise usage
RSSCombiner(feedConfig)
  .then(function (combinedFeed) {
    var xml = combinedFeed.xml();
  });

// Node callback usage
RSSCombiner(feedConfig, function (err, combinedFeed) {
  if (err) {
    console.error(err);
  } else {
    var xml = combinedFeed.xml();
  }
});

Combine feeds and import custom XML namespaces

var RSSCombiner = require('rss-combiner');
var feedConfig = {
  custom_namespaces: {
    'content': 'http://purl.org/rss/1.0/modules/content/',
    'dc': 'http://purl.org/dc/elements/1.1/'
  }
};

// Promise usage
RSSCombiner(feedConfig)
  .then(function (combinedFeed) {
    var xml = combinedFeed.xml();
  });

// Node callback usage
RSSCombiner(feedConfig, function (err, combinedFeed) {
  if (err) {
    console.error(err);
  } else {
    var xml = combinedFeed.xml();
  }
});

Combine feeds and get a callback for each feed fetched.

var RSSCombiner = require('rss-combiner');
var feedConfig = {
  successfulFetchCallback: function(streamInfo) { console.log(streamInfo) }
};

// Promise usage
RSSCombiner(feedConfig)
  .then(function (combinedFeed) {
    var xml = combinedFeed.xml();
  });

// Node callback usage
RSSCombiner(feedConfig, function (err, combinedFeed) {
  if (err) {
    console.error(err);
  } else {
    var xml = combinedFeed.xml();
  }
});
feedOptions

See rss feedOptions

Additional options

  • size int the maximum number of entries to keep (most recently published will be kept)
  • feeds array url string array of feed_urls to retrieve content from
  • softFail optional boolean if true failing to retrieve a single feed will not result in an error being thrown (default value: false)
Example feedOptions

Creates a new feed with a maximum of 20 entries containing the latest entries from 2 RSS feeds.

var feedConfig = {
  title: 'Tech news from Guardian and BBC',
  size: 20,
  feeds: [
    'http://feeds.bbci.co.uk/news/technology/rss.xml',
    'https://www.theguardian.com/uk/technology/rss'
  ],
  pubDate: new Date()
};