An IRC library for node.js
The best IRC library for node.js
npm install irc-js
We recently released the first beta of IRC-js 2.0. This release brings many changes, and documentation is not quite ready.
IRC-js 2.0 uses a couple of new ECMAScript features, so currently you must use
--harmony flag when running it.
So, for the adventurous, here's how to get started with 2.0:
/* IRC-js 2.0 provides a set of objects representing IRC entities, such as:* Client An IRC client, create one of these first.* Message A client sends and receives instances of this object.* Channel An IRC channel.* Person An IRC user.* Here follows a simple bot demonstrating basic usage.*/var irc = require"irc-js";/* First, lets create an IRC Client.* The quickest way is to use the laziness function `irc.connect()`.* It takes an object configuring the bot, and returns a Client instance.*/ircconnect nick: "bot500"/* This optional callback means the client has connected.* It receives one argument: the Client instance.* Use the `join()` method to join a channel:*/botjoin"#irc-js"/* You get this callback when the client has joined the channel.* The argument here is any eventual Error, and the Channel joined.*/if errconsole.log"Could not join channel :(" err;return;/** Channels also have some handy methods:*/chansay"Hello!";;/* You can also access channels like this:* `bot.channels.get("#irc-js").say("Hello!");`*//* Often you want your bot to do something when it receives a specific type* of message, or when a message contains something of interest.* The `match()` method lets you do both.* Look for INVITE messages and join channels:*/botmatch"INVITE"/* Here the argument is a Message instance.* You can look at the `from` property to see who sent it.* The `reply()` method sends a message to the appropriate channel or person:*/msgreply"Thanks for the invite! On my way.";/* Sometimes you need to know about the parameters an IRC message uses.* The INVITE message has two: invitee and channel.*/botjoinmsgparams1;;/* You can look for messages matching a regular expression.* Each match group is passed as an argument to the callback function.*/botmatch/\bsomecommand\s+\s+//* Here, the `letters` argument contains the text matched by the first group.* And `digits` is the second match. More match groups means more arguments.*/;;