irc-robot

A simple IRC bot framework.

irc-robot

Small framework for writing irc bots using node.

var ircbot = require('irc-robot');
 
var bot = ircbot({
  name: 'botname',
  pass: 'password',
  chan: '#channelname'
});
 
bot.on(/^hi bot$/, function (reqres) {
  res.send('hello!');
});
 
bot.connect();

This is all very much a work in progress, but so far...

Creates a new bot.

var ircbot = require('irc-robot');
var bot = ircbot({
  name: 'botname',
  chan: '#channelname'
});
  • name
  • chan || channel
  • password (default: "password")
  • realname (default: "I am a bot")
  • server (default: "irc.freenode.org")
  • port (default: 6667)
  • debug (default: false)

Calls the callback when a message in the channel matches the regex.

The callback takes 2 arguments:

  • from - nick of user who sent message
  • to - name of channel
  • msg - full string of the message
  • matches - return value of msg.match(regex)
  • send - function that sends message to channel
bot.on(/^hey (\S+)$/, function (reqres) {
  res.send(req.from + ' said "hey" to ' + req.matches[1]);
});

Calls the callback if a PM to the bot matches the regex.

The callback takes 2 arguments:

  • from - nick of user who sent message
  • to - bot name
  • msg - full string of the message
  • matches - return value of msg.match(regex)
  • send - function that sends a PM back to the user
bot.onPM(/^hey (\S+)$/, function (reqres) {
  res.send('my name is not ' + req.matches[1]);
});

Calls the callback every interval milliseconds.

The callback takes 1 argument:

  • send - function that sends a message to the channel
bot.every(60 * 1000, function (res) {
  res.send('I will send this message every minute');
});

Sends a PM.

  • recipient can be a string for a user or a channel
bot.PM('username', 'hey');

Connects to the channel and starts listening.