// var IRC = require('./IRC').IRC; var IRC = require('../node_modules/node-irc/IRC.js').IRC , irc = new IRC('irc.freenode.net', 6667) , url = require('url') , http = require('http') , _ = require('underscore'); var BitrafBot = function(config) { var nick = ''; var nickCount = 0; var nickAdditions = [ '', '^', '_', '\\', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ]; function findNick() { if (nickCount == nickAdditions.length) { nickCount = 0; } return config.nick + nickAdditions[nickCount++]; } nick = findNick(); irc.on('connected', function(server) { console.log('connected to ' + server); irc.join(config.channel, function(error) { irc.privmsg(config.channel, 'well hello yall'); }); }); irc.on('privmsg', function(from, to, message) { if(message == ',checkins') { console.log('checkins request.'); var now = new Date(); var from = (now.getYear() + 1900) + "-" + (now.getMonth() + 1) + "-" + now.getDate(); var options = url.parse(config.checkinsUrl + '?from=' + from); options.headers = { Accept: 'application/vnd.collection+json' }; options.method = 'GET'; var req = http.get(options, function(res) { var chunks = ""; res.on('data', function (chunk) { chunks += chunk; }); res.on('end', function () { // console.log("chunks", chunks); data = JSON.parse(chunks); var checkins = -1; _.each(data["collection"].items, function(item, i) { _.each(item.data, function(item, i) { if(item.name === "checkins") { checkins = parseInt(item.value); } }); }); if(checkins != -1) { irc.privmsg(to, 'checkins: ' + checkins); } else { irc.privmsg(to, 'Could not find any checkins'); } }); }).on('error', function(e) { irc.privmsg(to, 'Problem with request: ' + e.message); }); } }); irc.on('ping', function(from) { console.log('ping from ' + from); irc.ping(from); }); irc.on('ping-reply', function(from, ms) { console.log('ping reply from ' + from + ': ' + ms + ' ms'); }); irc.on('errorcode', function(code) { if (code == 'ERR_NICKNAMEINUSE') { nick = findNick(); irc.nick(nick); } }); irc.connect(nick, 'The useful Bitraf bot', nick); process.on('exit', function () { irc.quit('bye'); }); } module.exports = BitrafBot;