- Node.js
npm install needle
HTTP clientnpm install cheerio
HTML selectornpm install snoocore
reddit api client
node releases.js
var needle = require('needle'); | |
var cheerio = require('cheerio'); | |
var Snoocore = require('snoocore'); | |
var reddit = new Snoocore({ | |
userAgent: 'test@documentation', | |
oauth: { | |
type: 'script', | |
key: 'your app key from reddit here', | |
secret: 'your app secret from reddit here', | |
username: 'approved developer for the app username', | |
password: 'approved developer for the app password', | |
// make sure to set all the scopes you need. | |
scope: [ 'wikiedit' ] | |
} | |
}); | |
var currentregion=""; | |
var currentdate=""; | |
var result={}; | |
var table="Title|NA|EU|Japan|Australia\n:-|:-:|:-:|:-:|:-:\n" | |
needle.get('http://www.gamefaqs.com/vita/releases', function(error, response) { | |
if (!error && response.statusCode == 200) | |
$= cheerio.load(response.body) | |
var elems=$('.post_content .span12 .pod .contrib tr').each(function(i,elem){ | |
var cols=$(this).find('td') | |
var date= cols.eq(0).text() | |
var region= cols.eq(1).text() | |
var name=cols.eq(2).text() | |
if (date){ | |
currentdate=date; | |
} | |
if (region){ | |
currentregion=region; | |
} | |
var regions={"Australia":"","North America":"","Japan":"","Europe":""}; | |
var game={"name":name,"regions":regions} | |
if (typeof result[name]!= 'undefined'){ | |
game=result[name]; | |
} | |
game.regions[currentregion]=currentdate | |
result[name]=game | |
}) | |
for (gamei in result){ | |
var game=result[gamei] | |
table+=game.name+"|"+game.regions["North America"]+"|"+game.regions.Europe+"|"+game.regions.Japan+"|"+game.regions.Australia+"\n" | |
} | |
reddit('/r/vita/api/wiki/edit').post({ | |
content:table, | |
page:"testreleasedates" | |
}); | |
console.log(table) | |
}); |