From d6f08b04e22f47e0bce6401b648767104a0058fe Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Jul 2015 12:03:44 +0100 Subject: [PATCH] new tech feed --- tech.js | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 tech.js diff --git a/tech.js b/tech.js new file mode 100644 index 0000000..b2f2f14 --- /dev/null +++ b/tech.js @@ -0,0 +1,116 @@ +var outputFile = 'tech', + RssBraider = require('rss-braider'), + fs = require('fs'), + ejs = require('ejs'), + read = require('fs').readFileSync, + join = require('path').join, + str = read(join(__dirname, '/templates/rss.ejs'), 'utf8'), + feeds = {}; + +// Pull feeds from config files: , +// feeds.simple_test_feed = require("./config/feed").feed; +// Or define in-line + +feeds.simple_test_feed = { + "feed_name": "feed", + "default_count": 1, + "no_cdata_fields": [], // Don't wrap these fields in CDATA tags + "meta": { + "title": "Paleo", + "description": "Combined Tech Feed", + 'site_url': 'http://pipes.silvrtree.co.uk/tech.xml' + }, + "sources": [ + { + "count": 100, + "feed_url": "http://feeds.feedburner.com/lenovoblogs/designmatters" + }, + { + "count": 100, + "feed_url": "http://www.engadget.com/rss.xml" + } + , + { + "count": 100, + "feed_url": "http://www.computerweekly.com/rss/All-Computer-Weekly-content.xml" + }, + { + "count": 100, + "feed_url": "http://winsupersite.com/rss.xml" + }, + { + "count": 100, + "feed_url": "https://feeds.feedburner.com/TheGadgeteer" + }, + { + "count": 100, + "feed_url": "http://www.wired.com/category/gear/feed/" + }, + { + "count": 100, + "feed_url": "https://feeds2.feedburner.com/AndroidCommunity" + }, + { + "count": 100, + "feed_url": "https://feeds.feedburner.com/AndroidPolice" + }, + { + "count": 100, + "feed_url": "https://feeds.feedburner.com/AndroidPolice" + }, + { + "count": 100, + "feed_url": "https://feeds2.feedburner.com/PlanetAndroidCom" + }, + { + "count": 100, + "feed_url": "http://www.theverge.com/rss/frontpage" + }, + { + "count": 100, + "feed_url": "http://feed.androidauthority.com/" + } + ] +}; +var braider_options = { + feeds: feeds, + indent: " ", + date_sort_order: "desc", // Newest first + log_level: "warn", + dedupe_fields: ['link', 'guid'] +}; +var rss_braider = RssBraider.createClient(braider_options); + +// Override logging level (debug, info, warn, err, off) +rss_braider.logger.level('off'); + +rss_braider.processFeed('simple_test_feed', 'json', function (err, data) { + if (err) { + return console.log(err); + } + + var j = JSON.parse(data); + var ejsOutput = ejs.compile(str)(j); + + fs.writeFile(__dirname + "/html/" + outputFile + ".html", ejsOutput, function (err) { + + if (err) { + return console.log(err); + } + + console.log("The file was saved!"); + }); +}); + +rss_braider.processFeed('simple_test_feed', 'rss', function (err, data) { + if (err) { + return console.log(err); + } + fs.writeFile(__dirname + "/html/" + outputFile + ".xml", data, function (err) { + if (err) { + return console.log(err); + } + + console.log("The file was saved!"); + }); +});