mirror of
https://github.com/Hopiu/postal.js.git
synced 2026-03-17 14:40:24 +00:00
76 lines
1.5 KiB
JavaScript
76 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 );
|
|
} );
|