Kanaye / weechat.js

Node.js module for WeeChat Relay Protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WeeChat.js

WeeChat Relay Protocol module for Node.js

npm

npm install weechat

Usage

.connect(host, port, password, [callback])
Connect to WeeChat:
(host, port password, ssl, callback)

var client = weechat.connect('localhost', 8000, 'test', false, function() {
    console.log('Connected!');
});

Or with SSL support:

var client = weechat.connect('localhost', 9001, 'test', true, function() {
    console.log('Connected!');
});

.send(message, [callback])
Send messages to WeeChat:

client.send('input irc.freenode.#weechat hello guys and girls!');

client.send('info version', function(version) {
    console.log(version.value);
});

.on([type], callback) Listeners, when an even occurs in WeeChat:

client.on('_buffer_line_added', function(line) {
    console.log('Got line', line);
});

client.on(function() {
    console.log('Anything happened', arguments);
});

client.on('line', function(line) {
    console.log('Got line', line);
});

Built in listeners
There are some built in aliases making listeners easier to add:
line: New line added
open: Buffer is opened
close: Buffer is closing
renamed: Buffer is renamed
localvar: Local var is added
title: Title (topic) is changed for a buffer
nicklist: Nicklist

Colorizing

The module return only pure WeeChat strings, including coding for colors.
Calling weechat.style(line); will return an array of parts, like this:

[ { text: 'Hello', fg: 'dark cyan', bg: undefined, attrs: [] },
  { text: 'world!' } ]

fg is foreground color, bg is background color, attrs is an array of attributes, such as underline.

The module supports stripping these codes away, returning a plain string, like this:

weechat.noStyle(line);

Full example

var weechat = require('weechat');

var client = weechat.connect('localhost', 8000, 'test', function() {
    console.log('Connected!');

    client.send('info version', function(version) {
        console.log(version.value);
    });
});

client.on('error', function(err) {
    console.error(err);
});

client.on('end', function() {
    console.log('end');
});

client.on('line', function(line) {
    var from = weechat.noStyle(line.prefix);
    var message = weechat.noStyle(line.message);

    console.log(from, message);
});

License

MIT License (c) Eirik Brandtzæg

About

Node.js module for WeeChat Relay Protocol


Languages

Language:JavaScript 100.0%