Skip to content

Instantly share code, notes, and snippets.

@davemo
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davemo/7eceadbad29e443cd29f to your computer and use it in GitHub Desktop.
Save davemo/7eceadbad29e443cd29f to your computer and use it in GitHub Desktop.
hearthstone-card-downloader.js
#!/usr/local/bin/node
var fs = require('fs');
var request = require('request');
var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};
request.get('https://raw.githubusercontent.com/pdyck/hearthstone-db/master/cards/all-cards.json', function(err, res, body) {
console.log("Downloading Hearthstone meta-data from github/pdyck/hearthstone-db");
var cardData = JSON.parse(body);
cardData.cards.forEach(function(card) {
var urlSegments = card.image_url.split("/");
var imageName = [card.hero, card.name].join(" ").trim().replace(/([a-z\d])([A-Z]+)/g, '$1_$2').replace(/[-\s]+/g, '_').toLowerCase().replace(":", "_") + ".png";
download(card.image_url, imageName, function(){ console.log("done downloading", card.name, "saved to", imageName);});
});
});
@kbaribeau
Copy link

Here is roughly equivalent bash script. It depends on jshon, which is installable with brew:

for i in `curl -s https://raw.githubusercontent.com/pdyck/hearthstone-db/master/cards/all-cards.json | jshon -e "cards" -a -e "image_url" | sed -e 's/\"//g'`;
do
echo $i;
curl -s $i > `echo $i | sed -e 's/.*\///'`;
done

😄

@davemo
Copy link
Author

davemo commented Nov 1, 2014

I was looking for that json CLI, jshon is the one hey? :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment