Skip to content

Instantly share code, notes, and snippets.

@luispeerez
Created February 2, 2016 18:35
Show Gist options
  • Save luispeerez/0537c514e548d90cad9b to your computer and use it in GitHub Desktop.
Save luispeerez/0537c514e548d90cad9b to your computer and use it in GitHub Desktop.
var fs = require('fs');
var data = //Your data source(an array of items)
var request = require('request');
var async = require('async');
var j = request.jar();
//If you need cookie auth
var cookie = request.cookie('cookieKey=cookieValue');
var url = 'you url server, example: http://mydomain.com';
j.setCookie(cookie, url);
request = request.defaults({jar:j})
function updateIcons(){
var url = '<your url path to upload images>';
async.eachSeries(data, function iterator(item, callback) {
if(tour.icon){
var filename = './images/' + item.filename;
var imageData = fs.createReadStream(filename);
var httpRequest = request.post(url, function(err,response,body){
if(err) console.log(err);
else if (response.statusCode > 300){
return console.log(response.statusCode);
}
else{
try{
//You can output some success log here
callback();
}catch(e){
console.log(e); //error in the above string(in this case,yes)!
}
}
});
var form = httpRequest.form();
form.append('<id field name>',item.id);
form.append('<file field name>', imageData);
}else{
callback();
}
});
}
function downloadIcons(){
var basePath = './images/';
var baseUrl = 'your url path to images on a server';
var download = function(uri, filename, callback) {
console.log(uri, filename);
if(filename && typeof filename !== 'undefined'){
// make the filename not need a directory
var file = filename.split('/')[filename.split('/').length - 1];
request.head(uri, function(err, res, body) {
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);
var r = request(uri).pipe(fs.createWriteStream(basePath + file));
r.on('close', callback);
r.on('error', error);
});
}
};
for(var i = 0; i < data.length; i++){
var item = data[i];
if(item.icon){
var img_src = item.filename;
var filepath = (baseUrl + img_src).toString();
download(filepath, img_src, function() {
console.log('downloaded', img_src);
});
}
//break;
}
var error = function(message) {
console.log(message);
};
}
downloadIcons();
//updateIcons();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment