UNPKG

pastec

Version:

Node module for using a Pastec server.

58 lines (44 loc) 1.4 kB
var path = require("path"); var async = require("async"); var JSONStream = require("JSONStream"); var pastec = require("./")({ server: "new.ukiyo-e.org:4212" }); var fileMap = {}; var files = process.argv.slice(2); files.forEach(function(file, i) { fileMap[i + 1] = file; }); var outStream = JSONStream.stringifyObject(); outStream.pipe(process.stdout); var getNiceName = function(file) { var dirs = path.dirname(file).split(path.sep); return dirs[dirs.length - 1] + "/" + path.basename(file); }; async.eachLimit(Object.keys(fileMap), 1, function(id, callback) { id = parseFloat(id); pastec.fileSimilar(fileMap[id], function(err, results) { //console.log(err, results) if (err || !results) { return callback(err, null); } var matches = []; results.image_ids.forEach(function(imageID, i) { if (imageID !== id) { matches.push({ filepath: getNiceName(fileMap[imageID]), rects: results.bounding_rects[i], score: results.scores[i] }); } }); if (matches.length > 0) { var fileName = getNiceName(fileMap[id]); outStream.write([fileName, matches]); } callback(); }); }, function(err, matches) { outStream.end(); //console.log("DONE"); });