Skip to content

Instantly share code, notes, and snippets.

@jb55
Created April 8, 2014 07:28
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 jb55/10099453 to your computer and use it in GitHub Desktop.
Save jb55/10099453 to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
var map = require('map-stream');
var csv = require('csv-parse');
var stringify = require('csv-stringify');
var skip = require('skip-stream');
var queue = require('concurrent-map-stream');
var argv = require('minimist')(process.argv.slice(2));
var debug = require('debug')('soundcloudstats');
var through = require('through');
var concurrency = argv.j || 10;
var cid = process.env.SC_CLIENT_ID;
var soundcloud = require('../lib/soundcloud')(cid);
function worker(user, done) {
user = user.trim();
soundcloud.user(user, done);
}
process.stdin
.pipe(csv())
.pipe(map(function(row, done){
done(null, row[0]);
}))
.pipe(queue(worker, concurrency))
.pipe(map(function(user, done){
var row = Object.keys(user).reduce(function(vals, key){
vals.push(user[key]);
return vals;
}, []);
done(null, row);
}))
.pipe(stringify())
.pipe(process.stdout);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment