mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-25 14:18:42 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
var express = require('express');
|
|
var fs = require('fs');
|
|
var io = require('socket.io');
|
|
var _ = require('underscore');
|
|
var Mustache = require('mustache');
|
|
|
|
var app = express.createServer();
|
|
var staticDir = express.static;
|
|
|
|
io = io.listen(app);
|
|
|
|
var opts = {
|
|
port : 1947,
|
|
baseDir : __dirname + '/../../'
|
|
};
|
|
|
|
io.sockets.on( 'connection', function( socket ) {
|
|
|
|
socket.on( 'connect', function( data ) {
|
|
socket.broadcast.emit( 'connect', data );
|
|
});
|
|
|
|
socket.on( 'statechanged', function( data ) {
|
|
socket.broadcast.emit( 'statechanged', data );
|
|
});
|
|
|
|
});
|
|
|
|
app.configure( function() {
|
|
|
|
[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach( function( dir ) {
|
|
app.use( '/' + dir, staticDir( opts.baseDir + dir ) );
|
|
});
|
|
|
|
});
|
|
|
|
app.get('/', function( req, res ) {
|
|
|
|
res.writeHead( 200, { 'Content-Type': 'text/html' } );
|
|
fs.createReadStream( opts.baseDir + '/index.html' ).pipe( res );
|
|
|
|
});
|
|
|
|
app.get( '/notes/:socketId', function( req, res ) {
|
|
|
|
fs.readFile( opts.baseDir + 'plugin/notes-server/notes.html', function( err, data ) {
|
|
res.send( Mustache.to_html( data.toString(), {
|
|
socketId : req.params.socketId
|
|
}));
|
|
});
|
|
|
|
});
|
|
|
|
// Actually listen
|
|
app.listen( opts.port || null );
|
|
|
|
var brown = '\033[33m',
|
|
green = '\033[32m',
|
|
reset = '\033[0m';
|
|
|
|
var slidesLocation = 'http://localhost' + ( opts.port ? ( ':' + opts.port ) : '' );
|
|
|
|
console.log( brown + 'reveal.js - Speaker Notes' + reset );
|
|
console.log( '1. Open the slides at ' + green + slidesLocation + reset );
|
|
console.log( '2. Click on the link your JS console to go to the notes page' );
|
|
console.log( '3. Advance through your slides and your notes will advance automatically' );
|