mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
74 lines
1.5 KiB
JavaScript
74 lines
1.5 KiB
JavaScript
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
var express = require('express')
|
|
, stylus = require('stylus')
|
|
, nib = require('nib')
|
|
, sio = require('../../lib/socket.io')
|
|
, irc = require('./irc');
|
|
|
|
/**
|
|
* App.
|
|
*/
|
|
|
|
var app = express.createServer();
|
|
|
|
/**
|
|
* App configuration.
|
|
*/
|
|
|
|
app.configure(function () {
|
|
app.use(stylus.middleware({ src: __dirname + '/public', compile: compile }))
|
|
app.use(express.static(__dirname + '/public'));
|
|
app.set('views', __dirname);
|
|
app.set('view engine', 'jade');
|
|
|
|
function compile (str, path) {
|
|
return stylus(str)
|
|
.set('filename', path)
|
|
.use(nib());
|
|
};
|
|
});
|
|
|
|
/**
|
|
* App routes.
|
|
*/
|
|
|
|
app.get('/', function (req, res) {
|
|
res.render('index', { layout: false });
|
|
});
|
|
|
|
/**
|
|
* App listen.
|
|
*/
|
|
|
|
app.listen(3000, function () {
|
|
var addr = app.address();
|
|
console.log(' app listening on http://' + addr.address + ':' + addr.port);
|
|
});
|
|
|
|
/**
|
|
* Socket.IO server
|
|
*/
|
|
|
|
var io = sio.listen(app)
|
|
|
|
/**
|
|
* Connect to IRC.
|
|
*/
|
|
|
|
var client = new irc.Client('irc.freenode.net', 6667);
|
|
client.connect('socketio\\test\\' + String(Math.random()).substr(-3));
|
|
client.on('001', function () {
|
|
this.send('JOIN', '#node.js');
|
|
});
|
|
client.on('PART', function (prefix) {
|
|
io.sockets.emit('announcement', irc.user(prefix) + ' left the channel');
|
|
});
|
|
client.on('JOIN', function (prefix) {
|
|
io.sockets.emit('announcement', irc.user(prefix) + ' joined the channel');
|
|
});
|
|
client.on('PRIVMSG', function (prefix, channel, text) {
|
|
io.sockets.emit('irc message', irc.user(prefix), text);
|
|
});
|