Skip to content
Snippets Groups Projects
irc.js 800 B
Newer Older
Kasalehlia's avatar
Kasalehlia committed
var irc = require('irc');

Kasalehlia's avatar
Kasalehlia committed
var CHANNEL = '#stratum0';
Kasalehlia's avatar
Kasalehlia committed

function render(content) {
    return '<h3>&nbsp;IRC #stratum0</h3><div class="chat">'+content+'</div>';
}

module.exports = function (io) {
    var client = new irc.Client('chat.freenode.net', 'infodisplay', {
        channels: [CHANNEL]
    });
    var content = [];
    client.addListener('message', function (from, to, message) {
        if (to != CHANNEL) {return;}
        message = message.replace(/</g,'&lt;').replace(/>/g,'&gt;');
        content.push('<p>&nbsp;<span>'+from+'</span> '+message+'</p>');
        if (content.length > 25) {
            content.shift();
        }
        io.emit('irc', render(content.join('')));
    });
    io.on('connect', function (sock) {
        sock.emit('irc', render(content.join('')));
    });
}