UNPKG

lirc

Version:

An old IRC client for node

125 lines (113 loc) 2.92 kB
// Generated by CoffeeScript 1.12.7 (function() { var clone, cluster, empty, lirc, merge, ref, toArray, typeOf; lirc = require('./lirc'); cluster = require('cluster'); ref = lirc.utils, merge = ref.merge, clone = ref.clone, typeOf = ref.typeOf, empty = ref.empty, toArray = ref.toArray; lirc.send = function() { var msg, str, text; if (!lirc.session.conn) { return lirc.error('err', "lirc.commands, no lirc.session.conn"); } text = toArray(arguments).join(' '); text = lirc.format.substitute.vars(text); str = text + '\r\n'; lirc.session.conn.write(str); msg = { cmd: 'SEND', text: str, time: new Date().getTime() }; lirc.botnet.emit.master({ cmd: 'emit.web', args: ['msg', [msg]] }); return true; }; lirc.auth = function(user) { var userStr; if (!user) { user = lirc.session.server.user; } userStr = [user.username, user.hostname || user.username, user.server || user.username, ':' + user.realname].join(' '); if (user.pass) { lirc.send('PASS', user.pass); } lirc.send('NICK', user.nick); return lirc.send('USER', userStr); }; lirc.send.privmsg = function(target, text) { if (text == null) { text = ''; } return lirc.send('PRIVMSG', target, ":" + text); }; lirc.send.mode = function(target, text) { if (!text) { return false; } return lirc.send('MODE', target, text); }; lirc.join = function(chans, chanKey) { var chan, i, len, lists, text; chans = chans || lirc.cfg.chans; if (empty(chans)) { return false; } if (typeOf(chans) === 'string') { if (chanKey) { chans = [[chans, chanKey]]; } else { chans = [chans]; } } lists = { chans: [], keys: [] }; for (i = 0, len = chans.length; i < len; i++) { chan = chans[i]; if (typeOf(chan) === 'array') { lists.chans.push(chan[0]); if (chan[1]) { lists.keys.push(chan[1]); } } else { lists.chans.push(chan); } } text = lists.chans.join(','); if (lists.keys) { text += ' ' + lists.keys.join(','); } return lirc.send('JOIN', text); }; lirc.part = function(chans) { var chan, i, len, list, text; chans = chans; if (!chans) { return false; } if (typeOf(chans) === 'string') { chans = [chans]; } list = []; for (i = 0, len = chans.length; i < len; i++) { chan = chans[i]; if (typeOf(chan) === 'array') { list.push(chan[0]); } else { list.push(chan); } } text = list.join(','); return lirc.send('PART', text); }; lirc.quit = function(message) { if (message == null) { message = 'lirc'; } lirc.send('QUIT :' + message); return lirc.session.conn.end(); }; }).call(this);