Skip to content

Instantly share code, notes, and snippets.

@karthik20522
Last active March 23, 2017 20:30
Show Gist options
  • Save karthik20522/2498a4b8064d667a1ec2b7bcd2041a82 to your computer and use it in GitHub Desktop.
Save karthik20522/2498a4b8064d667a1ec2b7bcd2041a82 to your computer and use it in GitHub Desktop.
hackathon.js
/*
npm install async
npm install request
npm install fs
npm install shuffle-array
npm install string-format
usage: node index.js fileWithMasterIds.txt
*/
var fs = require('fs');
var shuffle = require('shuffle-array');
var request = require('request');
var async = require('async');
var format = require('string-format');
var inputFileName = process.argv[2]; //get file name from input
console.log(inputFileName);
var lines = shuffle(fs.readFileSync(inputFileName, 'utf-8').split('\n').map(function(s) {
return s.replace(/^\s*|\s*$/g, ""); //remove empty lines and line breaks
})
.filter(function(x) {
return x;
}));
async.mapLimit(lines, 20, function(line, callback) {
var masterId = line.split(',')[0];
var imageRank = line.split(',')[1];
var url = line.split(',')[2];
console.log(masterId);
request('http://localhost:8089/analyse/' + url, function(error, response, json) {
if (!error && response.statusCode) {
var jsonData = JSON.parse(json);
var data = format("Rank {0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", imageRank,
jsonData.blur,
jsonData.color,
jsonData.avgBrightness,
jsonData.contrast,
jsonData.contrastRMS,
jsonData.contrastWeber,
jsonData.natural,
jsonData.saturation,
jsonData.saturationVariation,
jsonData.sharnessVariation,
jsonData.sharpness) + "\n";
fs.appendFileSync('newop123.txt', data);
}
callback(error, json);
});
}, function(err, results) {
console.log(err);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment