var redis = require("redis"), client = redis.createClient(); var amqp = require('amqp'); var amqpc = amqp.createConnection({ host: 'somehost', login: 'guest', password: 'guest', vhost: '/' }); var geoip = require('geoip-lite'); var ll = require("lazylines"); amqpc.on('ready', function () { amqpc.exchange('heatmap', {passive: true}, function(e){ process.stdin.resume(); var inp = new ll.LineReadStream(process.stdin, 'ascii'); inp.on("line", function (line) { var tmp = ll.chomp(line).split(';'), ip = tmp[0], paths = tmp[1].split(','); var geo = geoip.lookup(ip); if (geo && geo['ll']) for (var i in paths) { client.get(paths[i], function(err, reply) { e.publish('latlong.path', JSON.stringify({ src: geo['ll'], dest: JSON.parse(reply) })); }); } }); }); });