diff --git a/messages.txt b/messages.txt new file mode 100644 index 0000000..807f60b --- /dev/null +++ b/messages.txt @@ -0,0 +1 @@ +[{"user":"sfkj","content":"kfgjdsasss","timestamp":1449093378770},{"user":"sfkj","content":"kfgjdsassss","timestamp":1449093379142},{"user":"sfkj","content":"kfgjdsasssss","timestamp":1449093379400},{"user":"sfkj","content":"kfgjdsassssss","timestamp":1449093379628},{"user":"sfkj","content":"kfgjdsasssssss","timestamp":1449093379842},{"user":"sfkj","content":"kfgjdsassssssss","timestamp":1449093380029},{"user":"sfkj","content":"kfgjdsasssssssss","timestamp":1449093380218},{"user":"sfkj","content":"kfgjdsassssssssss","timestamp":1449093380457},{"user":"sfkj","content":"kfgjdsassssssssssss","timestamp":1449093380685},{"user":"sfkj","content":"kfgjdsasssssssssssss","timestamp":1449093380851}] \ No newline at end of file diff --git a/package.json b/package.json index 4fa9cad..4f8350f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "body-parser": "^1.14.1", "ejs": "^2.3.4", "express": "^4.13.3", - "html-escape": "^1.0.2" + "html-escape": "^1.0.2", + "node": "0.0.0" } } diff --git a/public/js/script.js b/public/js/script.js index d9abbb8..d5aaab6 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -4,6 +4,9 @@ var messagesRoute = host + '/messages'; function sendMessage (user, content, callback) { $.post(sendRoute, {user: user, content: content}) + .fail(function(data) { + alert(data.responseText); + }) .done(callback); } diff --git a/server.js b/server.js index ca1ef1a..b4af5cd 100644 --- a/server.js +++ b/server.js @@ -2,6 +2,7 @@ var express = require('express'); var bodyParser = require('body-parser'); var escape = require('html-escape'); var app = express(); +var fs = require('fs') var cfg = { port: process.env.PORT || 8080, @@ -25,9 +26,13 @@ var server = app.listen(cfg.port, cfg.hostname, function () { /* Message storage */ - var messages = []; +if (fs.existsSync('messages.txt')) { + messages = JSON.parse(fs.readFileSync('messages.txt', 'uft8')); +} + + /* API Routes */ @@ -35,12 +40,35 @@ app.post('/send', function (req, res) { var user = req.body.user; var content = req.body.content; var timestamp = Date.now(); - + + user = user.substring(0, 16); + + content = content.substring(0, 49); + + content = escape(content); + if (messages.length >= 1){ + var lastMessage = messages[messages.length - 1]; + if (content === lastMessage.content) { + res.status(400).send('stop spamming!!'); + return; + } + } + + // TODO: Save message +var object = {user: user, content: content, timestamp: timestamp}; + + messages.push(object); + if (messages.length > 10) { + messages.shift(); + } + fs.writeFileSync('messages.txt', JSON.stringify(messages), 'utf8'); res.send('ok'); }); + + app.get('/messages', function (req, res) { // The client expects data in this format: // [