diff --git a/README.md b/README.md index 51c3ac8a..cea696b6 100644 --- a/README.md +++ b/README.md @@ -15,27 +15,27 @@ A better IRC framework for node.js. For bots and full clients. Read the [documen ~~~javascript var bot = new IRC.Client(); bot.connect({ - host: 'irc.freenode.net', - port: 6667, - nick: 'prawnsbot' + host: 'irc.freenode.net', + port: 6697, + tls: true, + nick: 'prawnsbot' }); bot.on('message', function(event) { - if (event.message.indexOf('hello') === 0) { - event.reply('Hi!'); - } - - if (event.message.match(/^!join /)) { - var to_join = event.message.split(' '); - event.reply('Joining ' + to_join + '..'); - bot.join(to_join); - } + if (event.message.indexOf('hello') === 0) { + event.reply('Hi!'); + } + + if (event.message.match(/^!join #\S+/)) { + var to_join = event.message.split(' ')[1]; + event.reply('Joining ' + to_join + '..'); + bot.join(to_join); + } }); - // Or a quicker to match messages... bot.matchMessage(/^hi/, function(event) { - event.reply('hello there!'); + event.reply('hello there!'); }); ~~~ @@ -43,26 +43,27 @@ bot.matchMessage(/^hi/, function(event) { ~~~javascript var bot = new IRC.Client(); bot.connect({ - host: 'irc.freenode.net', - port: 6667, - nick: 'prawnsbot' + host: 'irc.freenode.net', + port: 6697, + tls: true, + nick: 'prawnsbot' }); var buffers = []; bot.on('registered', function() { - var channel = bot.channel('#prawnsalad'); - buffers.push(channel); - - channel.join(); - channel.say('Hi!'); - - channel.updateUsers(function() { - console.log(channel.users); - }); - - // Or you could even stream the channel messages elsewhere - var stream = channel.stream(); - stream.pipe(process.stdout); + var channel = bot.channel('#prawnsalad'); + buffers.push(channel); + + channel.join(); + channel.say('Hi!'); + + channel.updateUsers(function() { + console.log(channel.users); + }); + + // Or you could even stream the channel messages elsewhere + var stream = channel.stream(); + stream.pipe(process.stdout); }); ~~~ @@ -70,28 +71,35 @@ bot.on('registered', function() { #### Middleware ~~~javascript function ExampleMiddleware() { - return function(client, raw_events, parsed_events) { - parsed_events.use(theMiddleware); - } - - - function theMiddleware(command, event, client, next) { - if (command === 'registered') { - if (client.options.nickserv) { - var options = client.options.nickserv; - client.say('nickserv', 'identify ' + options.account + ' ' + options.password); - } - } - - if (command === 'message' && client.caseCompare(event.event.nick, 'nickserv')) { - // Handle success/retries/failures - } - - next(); - } + return function(client, rawEvents, parsedEvents) { + rawEvents.use(rawMiddleware) + parsedEvents.use(parsedMiddleware); + } + + function rawMiddleware(command, event, rawLine, client, next) { + if (command === '254') { + console.log('This network has', event.params[1], 'channels'); + } + + next(); + } + + function parsedMiddleware(command, event, client, next) { + if (command === 'registered') { + if (client.options.nickserv) { + var options = client.options.nickserv; + client.say('nickserv', 'identify ' + options.account + ' ' + options.password); + } + } + + if (command === 'message' && client.caseCompare(event.event.nick, 'nickserv')) { + // Handle success/retries/failures + } + + next(); + } } - -var irc_bot = new IRC.Client(); -irc_bot.use(ExampleMiddleware()); +var bot = new IRC.Client(); +bot.use(ExampleMiddleware()); ~~~