summaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2013-02-22 09:59:20 -0800
committerJules Laplace <jules@okfoc.us>2013-02-22 09:59:20 -0800
commit1938bceb0a478358897371c235860397ae2e3e5c (patch)
treeead382ee9c38443c819bbdcb926ff35fb8255342 /server.js
basic chat app
Diffstat (limited to 'server.js')
-rw-r--r--server.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..948bc9e
--- /dev/null
+++ b/server.js
@@ -0,0 +1,99 @@
+var express = require('express'),
+ knox = require('knox'),
+ fs = require('fs'),
+ app = express(),
+ http = require('http'),
+ server = http.createServer(app),
+ io = require('socket.io').listen(server),
+ mongoose = require('mongoose');
+
+var s3 = knox.createClient({
+ key: process.env.ASDF_S3_KEY,
+ secret: process.env.ASDF_S3_SECRET,
+ bucket: 'dump2'
+});
+
+app.configure(function(){
+ app.use(express.logger());
+ app.use(express.methodOverride());
+ app.use(express.bodyParser());
+ app.use(express.static(__dirname + '/public'));
+});
+
+app.get('/latest', function(req, res){
+ var data = { 'image_url': Images.latest() };
+ res.setHeader('Content-Type', 'application/json');
+ res.send(JSON.stringify(data));
+});
+
+app.post('/upload', function(req, res) {
+ var user = req.body.socketid;
+ var image = req.files.image;
+ var filename = "/test/" + timestamp() + "-" + image.name
+
+ var s3req = s3.putFile(image.path, filename, {
+ 'Content-Length': image.size,
+ 'Content-Type': image.type,
+ 'x-amz-acl': 'public-read'
+ }, function(err, s3res){
+ if (200 == s3res.statusCode) {
+ ImageURL = s3res.client._httpMessage.url; // janked
+ Images.push( ImageURL );
+
+ console.log('saved to %s', ImageURL);
+
+ var data = { 'status': 'ok' };
+ res.setHeader('Content-Type', 'application/json');
+ res.send(JSON.stringify(data));
+ }
+ });
+});
+
+io.sockets.on( 'connection', function(socket){
+ socket.emit( 'join', Channel.join() );
+ function echo
+});
+
+var port = process.env.PORT || 5000;
+server.listen(port);
+console.log('Listening on port ' + port);
+
+function timestamp() {
+ return Math.round(new Date().getTime());
+}
+
+var State = {
+ WAITING: 0,
+ DRAWING: 1,
+ VOTING: 2,
+ WIN: 3,
+ RESET: -1,
+}
+function Channel() {
+ this.state = State.WAITING;
+ this.messages = [];
+ this.players = {};
+ this.message_id = 0;
+}
+Channel.prototype.push = function(message){
+ if (this.messages.length > 20) this.messages.shift();
+ var message = { id: ++this.message_id, content: message, user: username, faves: 0 };
+ this.messages.push(message);
+ io.sockets.emit('message', JSON.stringify(message));
+}
+Channel.prototype.fave = function(id){
+ for (var i = 0; i < messages.length; i++) {
+ if (messages[i].id == id) {
+ messages[i].faves++;
+ }
+ }
+}
+Channel.prototype.join = function(){
+ return {
+ state: this.state,
+ messages: this.messages,
+ players: this.players
+ }
+}
+
+