2016-04-05 14:35:11 -04:00

53 lines
1.1 KiB
JavaScript

/* Magic Mirror
* NewsFetcher
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*/
var FeedMe = require("feedme");
var request = require("request");
var iconv = require("iconv-lite");
var NewsFetcher = function() {
var self = this;
self.successCallback = function() {};
self.errorCallback = function() {};
self.items = [];
/* fetchNews()
* Fetch the new news items.
*
* attribute url string - The url to fetch.
* attribute success function(items) - Callback on succes.
* attribute error function(error) - Callback on error.
*/
self.fetchNews = function(url, success, error, encoding) {
self.successCallback = success;
self.errorCallback = error;
var parser = new FeedMe();
parser.on("item", function(item) {
self.items.push({
title: item.title,
pubdate: item.pubdate,
});
});
parser.on("end", function(item) {
self.successCallback(self.items);
});
parser.on("error", function(error) {
self.errorCallback(error);
});
request({uri: url, encoding: null}).pipe(iconv.decodeStream(encoding)).pipe(parser);
};
};
module.exports = NewsFetcher;