UNPKG

coffea

Version:

event based and extensible nodejs irc client library with multi-network support

48 lines (39 loc) 1.45 kB
/*jslint node: true*/ "use strict"; var utils = require('../utils'); var debug = require('debug')('irc:command'); module.exports = function () { return function (irc) { function emitCommand(event, text) { var message = irc.splitString(text); debug("message: %s", JSON.stringify(message)); var cmd = message && message.shift(); debug("cmd: %s", JSON.stringify(cmd)); utils.emit(irc, event.network, 'command', { "channel": event.channel, "user": event.user, "message": event.text, "cmd": cmd, "args": message, "isAction": event.isAction, "tags": event.tags ? event.tags : [] }); } irc.on('message', function (err, event) { var prefix = irc.getInfo(event.network).prefix; if (prefix) { var text = event.message; if (text.substr(0, prefix.length) === prefix) { text = text.substr(prefix.length); debug("command detected: %s", text); emitCommand(event, text); } } }); irc.on('privatemessage', function (err, event) { var text = event.message; debug("privatemessage command detected: %s", text); emitCommand(event, text); }); }; };