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