initReader() { this.reader.on('items', this.handleFeedItems.bind(this)); this.reader.on('error', error => { console.log('Feed reader error:', error); }); this.reader.start(); }
exports.Event = function (internalName, options, callback) { switch (internalName) { case "feedSubscription": console.log('RSS: reader added for ' + options.url); var reader = new FeedSub(options.url, { interval: options.interval || 1, emitOnStart: false }); reader.on('item', function(item) { callback(false, { item: item }); }); reader.start(); // define remove function this.remove = function () { reader.stop(); console.log('RSS: reader removed'); } break; } return this; }
module.exports = function(topic, client_api) { var rss_cache = cache(5); var reader = new FeedSub(`http://www.reddit.com/r/${topic}/.rss`, { emitOnStart: true, interval: 1 }); reader.on('item', function(item) { rss_cache.addItem(item); client_api.update(item, EVENT); }); reader.on('error', function(err) { console.log('Error in visir: ' + err); }); reader.start(); return { cache: rss_cache, event: EVENT } };