Exemplo n.º 1
0
	var fetchNews = function() {
		clearTimeout(reloadTimer);
		reloadTimer = null;
		items = [];

		var parser = new FeedMe();

		parser.on("item", function(item) {

			var title = item.title;
			var description = item.description || item.summary || item.content || "";
			var pubdate = item.pubdate || item.published || item.updated || item["dc:date"];
			var url = item.url || item.link || "";

			if (title && pubdate) {

				var regex = /(<([^>]+)>)/ig;
				description = description.toString().replace(regex, "");

				items.push({
					title: title,
					description: description,
					pubdate: pubdate,
					url: url,
				});

			} else if (logFeedWarnings) {
				console.log("Can't parse feed item:");
				console.log(item);
				console.log("Title: " + title);
				console.log("Description: " + description);
				console.log("Pubdate: " + pubdate);
			}
		});

		parser.on("end",	function() {
			//console.log("end parsing - " + url);
			self.broadcastItems();
			scheduleTimer();
		});

		parser.on("error", function(error) {
			fetchFailedCallback(self, error);
			scheduleTimer();
		});


		nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]);
		headers =	{"User-Agent": "Mozilla/5.0 (Node.js "+ nodeVersion + ") MagicMirror/"	+ global.version +	" (https://github.com/MichMich/MagicMirror/)",
			"Cache-Control": "max-age=0, no-cache, no-store, must-revalidate",
			"Pragma": "no-cache"}

		request({uri: url, encoding: null, headers: headers})
			.on("error", function(error) {
				fetchFailedCallback(self, error);
				scheduleTimer();
			})
			.pipe(iconv.decodeStream(encoding)).pipe(parser);

	};
Exemplo n.º 2
0
	var fetchNews = function() {
		clearTimeout(reloadTimer);
		reloadTimer = null;
		items = [];

		var parser = new FeedMe();

		parser.on("item", function(item) {

			var title = item.title;
			var description = item.description || item.summary || item.content || "";
			var pubdate = item.pubdate || item.published || item.updated;
			var url = item.url || item.link || "";

			if (title && pubdate) {

				var regex = /(<([^>]+)>)/ig;
				description = description.replace(regex, "");

				items.push({
					title: title,
					description: description,
					pubdate: pubdate,
					url: url,
				});

			} else {

				// console.log("Can't parse feed item:");
				// console.log(item);
				// console.log('Title: ' + title);
				// console.log('Description: ' + description);
				// console.log('Pubdate: ' + pubdate);

			}
		});

		parser.on("end", function() {
			self.broadcastItems();
			scheduleTimer();
		});

		parser.on("error", function(error) {
			fetchFailedCallback(self, error);
			scheduleTimer();
		});


		nodeVersion = Number(process.version.match(/^v(\d+\.\d+)/)[1]);
		headers =  {"User-Agent": "Mozilla/5.0 (Node.js "+ nodeVersion + ") MagicMirror/"  + global.version +  " (https://github.com/MichMich/MagicMirror/)"}

		request({uri: url, encoding: null, headers: headers}).pipe(iconv.decodeStream(encoding)).pipe(parser);

	};
Exemplo n.º 3
0
	var fetchNews = function() {
		clearTimeout(reloadTimer);
		reloadTimer = null;
		items = [];

		var parser = new FeedMe();

		parser.on("item", function(item) {

			var title = item.title;
			var description = item.description || item.summary || item.content || '';
			var pubdate = item.pubdate || item.published || item.updated;
			var enclosureUrl = item.enclosure.url;

			if (title && pubdate) {

				var regex = /(<([^>]+)>)/ig;
				description = description.replace(regex, "");

				items.push({
					title: title,
					description: description,
					pubdate: pubdate,
					enclosureUrl: enclosureUrl,
				});

			} else {

				console.log("Can't parse feed item:");
				console.log(item);
				console.log('Title: ' + title);
				console.log('Description: ' + description);
				console.log('Pubdate: ' + pubdate);
				console.log('enclosureUrl: ' + enclosureUrl);

			}
		});

		parser.on("end", function() {
			self.broadcastItems();
			scheduleTimer();
		});

		parser.on("error", function(error) {
			fetchFailedCallback(self, error);
			scheduleTimer();
		});

		var headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'};
		request({uri: url, encoding: null, headers: headers}).pipe(iconv.decodeStream(encoding)).pipe(parser);

	};
Exemplo n.º 4
0
function readFeedAndSaveInDb() {
	var
	parser = new feedme(true),
	d = new Date(),
	date = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate(),
	options = {
		host: 'svenskaloppisar.se',
		path: '/sokrss.asp?searchnow=1&datum='+date+'&onlyoneday=1&loppisnamn=&lan='+config.feed.lan+'&kommun='+config.feed.kommun+''
	},
	loppisar = [];

	parser.on('item', function(item) {
		loppisar.push({
			title: item.title.replace(/[\t]/g, ''),
			description: item.description.replace(/[\t\r]/g, '').replace(/\n/g,'<br>'),
			link: item.link,
		});
	});

	http.get(options, function (res) {
		res.pipe(parser);
		res.on('end', function () {
			console.log(new Date(), 'Updating Loppis Feed.');
			redis.set('loppisar', JSON.stringify(loppisar));
		});
	});	
}
Exemplo n.º 5
0
var FeedMe = require('feedme'), parser = new FeedMe(), url = require('url'), fs = require('fs');
var request = require("request");

    //limit downloads
var counter = 0;

    //On Title event occured
parser.on('title', function (title) {
    console.log('Title of feed is', title);
});

    //On rss Item event occured
parser.on('item', function (item) {
    counter++;

    console.log(item.title);
    console.log(item.enclosure);

    if (counter < 3) downloadFile(item);
});

function downloadFile(item) {
    var filename = url.parse(item.enclosure.url).pathname.split("/").pop();
    //downloading media file
    var req = request(item.enclosure.url);
    //save media to file
    req.pipe(fs.createWriteStream(filename));
    //On chunk data event occured
    req.on('data', function (chunk) {
        console.log('pumping...' + filename);
    });