diff options
Diffstat (limited to '.c9revisions')
| -rw-r--r-- | .c9revisions/config/chat.js.c9save | 2 | ||||
| -rw-r--r-- | .c9revisions/config/http.js.c9save | 25 | ||||
| -rw-r--r-- | .c9revisions/http.js.c9save | 4 | ||||
| -rw-r--r-- | .c9revisions/server/chat/chat.js.c9save | 43 | ||||
| -rw-r--r-- | .c9revisions/server/chat/workers/messageParser.js.c9save | 8 | ||||
| -rw-r--r-- | .c9revisions/server/http/http.js.c9save | 78 | ||||
| -rw-r--r-- | .c9revisions/view/poc/chat.html.c9save | 2 | ||||
| -rw-r--r-- | .c9revisions/view/poc/css/chat.css.c9save | 2 | ||||
| -rw-r--r-- | .c9revisions/view/poc/js/chat.js.c9save | 5 |
9 files changed, 169 insertions, 0 deletions
diff --git a/.c9revisions/config/chat.js.c9save b/.c9revisions/config/chat.js.c9save new file mode 100644 index 0000000..4f9bb03 --- /dev/null +++ b/.c9revisions/config/chat.js.c9save @@ -0,0 +1,2 @@ +{"ts":1377122411991,"silentsave":true,"restoring":false,"patch":[[{"diffs":[[1,"var config={\r\n port:8080\r\n}\r\n\r\nfunction prod(){\r\n console.log('launched as prod');\r\n config.port=8081;\r\n return config;\r\n}\r\n\r\nfunction dev(){\r\n console.log('launched as dev');\r\n return config;\r\n}\r\n\r\nmodule.exports = function(){\r\n switch(process.env.NODE_ENV){\r\n case 'dev':\r\n return dev();\r\n case 'prod':\r\n return prod();\r\n default:\r\n console.log('environment not specified so defaulting to dev.');\r\n return dev();\r\n }\r\n};"]],"start1":0,"start2":0,"length1":0,"length2":511}]],"length":511} +{"contributors":[],"silentsave":false,"ts":1377122417735,"patch":[[{"diffs":[[0,"og('"],[-1,"environment"],[1,"NODE_ENV"],[0," not"]],"start1":419,"start2":419,"length1":19,"length2":16}]],"length":508,"saved":false} diff --git a/.c9revisions/config/http.js.c9save b/.c9revisions/config/http.js.c9save new file mode 100644 index 0000000..103b5cc --- /dev/null +++ b/.c9revisions/config/http.js.c9save @@ -0,0 +1,25 @@ +{"ts":1376898483741,"silentsave":true,"restoring":false,"patch":[[]],"length":0} +{"contributors":[],"silentsave":false,"ts":1376898631993,"patch":[[{"diffs":[[1,"var prod\r\n\r\n\r\nmodule.exports = function(){\r\n switch(process.env.NODE_ENV){\r\n case 'dev':\r\n return dev;\r\n break;\r\n case 'production':\r\n return prod;\r\n break;\r\n default:\r\n dev.log='environment not specified so defaulting to dev.'\r\n return dev;\r\n }\r\n};"]],"start1":0,"start2":0,"length1":0,"length2":342}]],"length":342,"saved":false} +{"ts":1376898687499,"patch":[[{"diffs":[[0,"var "],[-1,"prod\r\n"],[1,"config={\r\n \r\n}\r\n\r\nfunction prod(){\r\n \r\n return config;\r\n}\r\n\r\nfunction dev(){\r\n \r\n return config;\r\n}"],[0,"\r\n\r\n"]],"start1":0,"start2":0,"length1":14,"length2":122}]],"length":450,"saved":false} +{"ts":1376898715766,"patch":[[{"diffs":[[0," return dev"],[1,"()"],[0,";\r\n"],[-1,""],[0," "]],"start1":218,"start2":218,"length1":27,"length2":29},{"diffs":[[0,"urn prod"],[1,"()"],[0,";\r\n "]],"start1":298,"start2":298,"length1":16,"length2":18},{"diffs":[[0," "],[1,"var def="],[0,"dev"],[1,"()"],[0,".log='en"]],"start1":353,"start2":353,"length1":19,"length2":29},{"diffs":[[0,"eturn de"],[-1,"v"],[1,"f"],[0,";\r\n }"]],"start1":443,"start2":443,"length1":17,"length2":17}]],"length":464,"saved":false} +{"ts":1376898733047,"patch":[[{"diffs":[[0,"ef=dev()"],[1,"\r\n def"],[0,".log='en"]],"start1":366,"start2":366,"length1":16,"length2":33}]],"length":481,"saved":false} +{"ts":1376898814356,"patch":[[{"diffs":[[0,"={\r\n "],[1,"port:16001"],[0,"\r\n}\r\n\r\nf"]],"start1":10,"start2":10,"length1":16,"length2":26}]],"length":491,"saved":false} +{"ts":1376898857283,"patch":[[{"diffs":[[0,"ort:1600"],[-1,"1"],[1,"0"],[0,"\r\n}\r\n\r\nf"]],"start1":19,"start2":19,"length1":17,"length2":17},{"diffs":[[0,"on prod(){\r\n "],[1,"config.port=17000;"],[0,"\r\n return con"]],"start1":41,"start2":41,"length1":32,"length2":50}]],"length":509,"saved":false} +{"ts":1376898864156,"patch":[[{"diffs":[[0,"){\r\n"],[-1," \r\n"],[0," "]],"start1":115,"start2":115,"length1":14,"length2":8}]],"length":503,"saved":false} +{"ts":1376898893510,"patch":[[{"diffs":[[0,"on prod(){\r\n"],[1," console.log('launched as prod');\r\n"],[0," config.p"]],"start1":41,"start2":41,"length1":24,"length2":62},{"diffs":[[0,"ion dev(){\r\n"],[1," console.log('launched as dev');\r\n"],[0," return c"]],"start1":145,"start2":145,"length1":24,"length2":61}]],"length":578,"saved":false} +{"ts":1376899126127,"patch":[[{"diffs":[[0,"prod"],[-1,"uction"],[0,"':\r\n"],[1,""],[0," "]],"start1":366,"start2":366,"length1":18,"length2":12},{"diffs":[[0," "],[-1,"var def=dev()\r\n def"],[1,"console"],[0,".log"],[-1,"="],[1,"("],[0,"'env"]],"start1":448,"start2":448,"length1":43,"length2":20},{"diffs":[[0,"to dev.'"],[1,");"],[0,"\r\n "]],"start1":505,"start2":505,"length1":16,"length2":18},{"diffs":[[0,"eturn de"],[-1,"f"],[1,"v()"],[0,";\r\n }"]],"start1":530,"start2":530,"length1":17,"length2":19}]],"length":553,"saved":false} +{"ts":1376899136915,"patch":[[{"diffs":[[0,"dev();\r\n"],[-1," break;\r\n"],[0," "]],"start1":324,"start2":324,"length1":36,"length2":16},{"diffs":[[0,");\r\n"],[-1," break;\r\n"],[0," "]],"start1":378,"start2":378,"length1":28,"length2":8}]],"length":513,"saved":false} +{"ts":1376899341217,"patch":[[{"diffs":[[0,"ort:"],[-1,"16000"],[1,"8081"],[0,"\r\n}\r"]],"start1":19,"start2":19,"length1":13,"length2":12},{"diffs":[[0,"ort="],[-1,"17000"],[1,"8082"],[0,";\r\n "]],"start1":102,"start2":102,"length1":13,"length2":12}]],"length":511,"saved":false} +{"ts":1376899595054,"patch":[[{"diffs":[[0,":808"],[-1,"1"],[1,"0"],[0,"\r\n}\r"]],"start1":22,"start2":22,"length1":9,"length2":9},{"diffs":[[0,"=808"],[-1,"2"],[1,"1"],[0,";\r\n "]],"start1":105,"start2":105,"length1":9,"length2":9}]],"length":511,"saved":false} +{"contributors":[],"silentsave":false,"ts":1377113814613,"patch":[[{"diffs":[[0,"port:808"],[-1,"0"],[1,"2,\r\n apps:{\r\n \r\n }"],[0,"\r\n}\r\n\r\nf"]],"start1":18,"start2":18,"length1":17,"length2":47},{"diffs":[[0,"=808"],[-1,"1"],[1,"3"],[0,";\r\n "]],"start1":135,"start2":135,"length1":9,"length2":9}]],"length":541,"saved":false} +{"ts":1377114515746,"patch":[[{"diffs":[[0," \r\n"],[1," },\r\n contentType:{\r\n html: 'text/html',\r\n css : 'text/css',\r\n js : 'text/javascript',\r\n txt : 'text/plain'\r\n };\r\n"],[0," }\r\n}"]],"start1":44,"start2":44,"length1":16,"length2":188}]],"length":713,"saved":false} +{"ts":1377116687585,"patch":[[{"diffs":[[0," }\r\n}\r\n\r\n"],[1,"config.rootDIR=process.env.SERVER_ROOT\r\n\r\n"],[0,"function pro"]],"start1":224,"start2":224,"length1":24,"length2":66}]],"length":755,"saved":false} +{"ts":1377116881751,"patch":[[{"diffs":[[0,"}\r\n}\r\n\r\n"],[1,"if(!process.env.SERVER_ROOT){\r\n console.log('SERVER_ROOT not specified, defaulting to current working dir.')\r\n process.env.SERVER_ROOT=process.env.cwd();\r\n}\r\n\r\n"],[0,"config.r"]],"start1":228,"start2":228,"length1":16,"length2":182}]],"length":921,"saved":false} +{"ts":1377116889038,"patch":[[{"diffs":[[0,"process."],[-1,"env."],[0,"cwd();\r\n"]],"start1":377,"start2":377,"length1":20,"length2":16}]],"length":917,"saved":false} +{"ts":1377116902307,"patch":[[{"diffs":[[0," "],[-1," "],[0,"html: 't"]],"start1":79,"start2":79,"length1":20,"length2":16},{"diffs":[[0," "],[-1," "],[-1," "],[0,"css : 't"]],"start1":107,"start2":107,"length1":20,"length2":16},{"diffs":[[0,"text/css',\r\n"],[-1," "],[0," js "]],"start1":122,"start2":122,"length1":28,"length2":24},{"diffs":[[0," "],[-1," "],[-1," "],[0,"txt : 't"]],"start1":168,"start2":168,"length1":20,"length2":16},{"diffs":[[0,"n'\r\n"],[-1," };\r\n"],[0," "]],"start1":192,"start2":192,"length1":20,"length2":8}]],"length":889,"saved":false} +{"ts":1377117744742,"patch":[[{"diffs":[[0," },\r\n"],[1," server:{\r\n index:'index.html'\r\n },\r\n"],[0," cont"]],"start1":52,"start2":52,"length1":16,"length2":66}]],"length":939,"saved":false} +{"ts":1377117777285,"patch":[[{"diffs":[[0,"plain'\r\n"],[1," },\r\n restrictedType:{\r\n \r\n"],[0," }\r\n}"]],"start1":238,"start2":238,"length1":16,"length2":56}]],"length":979,"saved":false} +{"ts":1377121265359,"patch":[[{"diffs":[[0,"VER_ROOT\r\n\r\n"],[1,"console.log(config.rootDIR);\r\n\r\n"],[0,"function pro"]],"start1":490,"start2":490,"length1":24,"length2":56}]],"length":1011,"saved":false} +{"ts":1377121337877,"patch":[[{"diffs":[[0,"R_ROOT\r\n"],[-1,"\r\n"],[0,"console."]],"start1":492,"start2":492,"length1":18,"length2":16},{"diffs":[[0,"og('"],[-1,"environment"],[1,"NODE_ENV"],[0," not"]],"start1":917,"start2":917,"length1":19,"length2":16}]],"length":1006,"saved":false} +{"ts":1377121358190,"patch":[[{"diffs":[[0,"ole.log("],[1,"'SERVER_ROOT is '+"],[0,"config.r"]],"start1":504,"start2":504,"length1":16,"length2":34}]],"length":1024,"saved":false} +{"ts":1377121375132,"patch":[[{"diffs":[[0,"le.log('"],[-1,"SERVER_ROOT"],[1,"config.rootDIR"],[0," is '+co"]],"start1":505,"start2":505,"length1":27,"length2":30}]],"length":1027,"saved":false} diff --git a/.c9revisions/http.js.c9save b/.c9revisions/http.js.c9save new file mode 100644 index 0000000..68ca7ae --- /dev/null +++ b/.c9revisions/http.js.c9save @@ -0,0 +1,4 @@ +{"ts":1376896169884,"silentsave":true,"restoring":false,"patch":[[{"diffs":[[1,"var http = require('http');\r\nhttp.createServer(function (req, res) {\r\n res.writeHead(200, {'Content-Type': 'text/plain'});\r\n res.end('Hello World from Cloud9\\n'+req);\r\n}).listen(process.env.PORT);"]],"start1":0,"start2":0,"length1":0,"length2":198}]],"length":198} +{"contributors":[],"silentsave":false,"ts":1376896231798,"patch":[[{"diffs":[[0,"9\\n'"],[-1,"+req"],[1,");\r\n console.log(res"],[0,");\r\n"]],"start1":158,"start2":158,"length1":12,"length2":29}]],"length":215,"saved":false} +{"ts":1376896239001,"patch":[[{"diffs":[[0,"e.log(re"],[-1,"s"],[1,"q"],[0,");\r\n}).l"]],"start1":174,"start2":174,"length1":17,"length2":17}]],"length":215,"saved":false} +{"ts":1376896260784,"patch":[[{"diffs":[[0,"rom "],[-1,"Cloud9"],[1,"Me"],[0,"\\n')"]],"start1":149,"start2":149,"length1":14,"length2":10}]],"length":211,"saved":false} diff --git a/.c9revisions/server/chat/chat.js.c9save b/.c9revisions/server/chat/chat.js.c9save new file mode 100644 index 0000000..6cc34a7 --- /dev/null +++ b/.c9revisions/server/chat/chat.js.c9save @@ -0,0 +1,43 @@ +{"ts":1376885487169,"silentsave":true,"restoring":false,"patch":[[]],"length":0} +{"contributors":[],"silentsave":false,"ts":1376895291513,"patch":[[{"diffs":[[1,"var path = require('path');\r\nvar netBindings = process.binding('net');\r\nvar Worker = require('../lib/webworker');\r\n\r\nvar fd = netBindings.socket('tcp4');\r\nnetBindings.bind(fd, 80);\r\nnetBindings.listen(fd, 128);\r\n\r\nfor (var i = 0; i < 8; i++) {\r\n var w = new Worker(path.join(__dirname, 'worker.js'));\r\n w.postMessage({ 'banner' : 'Hello, world!' }, fd);\r\n}"]],"start1":0,"start2":0,"length1":0,"length2":362}]],"length":362,"saved":false} +{"ts":1376895866425,"patch":[[{"diffs":[[0,"var "],[-1,"path"],[1,"io"],[0," = requi"]],"start1":0,"start2":0,"length1":16,"length2":14},{"diffs":[[0,"re('"],[-1,"path');\r\nvar netBindings = process.binding('net');\r\nvar Worker = require('../lib/webworker');\r\n\r\nvar fd = netBindings.socket('tcp4');\r\nnetBindings.bind(fd, 80);\r\nnetBindings.listen(fd, 128);\r\n\r\nfor (var i = 0; i < 8; i++) {\r\n var w = new Worker(path.join(__dirname, 'worker.js'));\r\n w.postMessage({ 'banner' : 'Hello, world!' }, fd"],[1,"socket.io').listen(80);\r\n\r\nio.sockets.on('connection', function (socket) {\r\n socket.emit('news', { hello: 'world' });\r\n socket.on('my other event', function (data) {\r\n console.log(data);\r\n }"],[0,");\r\n}"],[1,");"]],"start1":14,"start2":14,"length1":346,"length2":207}]],"length":221,"saved":false} +{"ts":1376896007926,"patch":[[{"diffs":[[0,"isten(80"],[1,"80"],[0,");\r\n\r\nio"]],"start1":31,"start2":31,"length1":16,"length2":18},{"diffs":[[0,"kets.on("],[1,"\r\n "],[0,"'connect"]],"start1":53,"start2":53,"length1":16,"length2":22},{"diffs":[[0,"ction', "],[1,"\r\n "],[0,"function"]],"start1":73,"start2":73,"length1":16,"length2":22},{"diffs":[[0,"ket) {\r\n"],[1," "],[0," socket"]],"start1":100,"start2":100,"length1":16,"length2":22},{"diffs":[[0,"\r\n "],[-1,"socket.on('my other event', function (data) {\r\n console.log"],[1," \r\n socket.on(\r\n 'toRoom', \r\n function (data) {\r\n \r\n }\r\n );\r\n \r\n socket.on(\r\n 'toUser', \r\n function "],[0,"(data)"],[-1,";"],[1," {"],[0,"\r\n "],[-1,"});\r\n}"],[1," \r\n }\r\n );\r\n }\r\n"],[0,");"]],"start1":156,"start2":156,"length1":85,"length2":271}]],"length":427,"saved":false} +{"ts":1376896011438,"patch":[[{"diffs":[[0," );\r\n"],[1," \r\n"],[0," }\r\n);"]],"start1":406,"start2":406,"length1":21,"length2":31}]],"length":437,"saved":false} +{"ts":1376897525240,"patch":[[{"diffs":[[0,"\r\n \r\n"],[1," socket.on(\r\n 'join', \r\n function (data) {\r\n socket.join(\r\n data.room\r\n );\r\n }\r\n );\r\n \r\n"],[0," }\r\n);"]],"start1":416,"start2":416,"length1":21,"length2":212}]],"length":628,"saved":false} +{"ts":1376897628928,"patch":[[{"diffs":[[0," "],[1,"socket.broadcast.to(\r\n data.room\r\n ).emit(\r\n 'room.chat', \r\n data\r\n )"],[0,"\r\n }\r"]],"start1":243,"start2":243,"length1":32,"length2":188}]],"length":784,"saved":false} +{"ts":1376898042093,"patch":[[{"diffs":[[0," )"],[1,";"],[0,"\r\n "]],"start1":407,"start2":407,"length1":16,"length2":17},{"diffs":[[0," "],[1,"io.sockets.manager[data.id].emit(\r\n 'private.message',\r\n {\r\n from:{\r\n socket.id,\r\n socket.handle\r\n },\r\n data:data\r\n }\r\n )"],[0,"\r\n }\r"]],"start1":530,"start2":530,"length1":32,"length2":348}]],"length":1101,"saved":false} +{"ts":1376898048899,"patch":[[{"diffs":[[0,"er[data."],[1,"to."],[0,"id].emit"]],"start1":562,"start2":562,"length1":16,"length2":19}]],"length":1104,"saved":false} +{"ts":1376898110337,"patch":[[{"diffs":[[0," "],[1," id :"],[0," socket.id,\r\n "]],"start1":690,"start2":690,"length1":32,"length2":42},{"diffs":[[0," "],[1," handle :"],[0," socket.handle\r\n"]],"start1":740,"start2":740,"length1":32,"length2":42}]],"length":1124,"saved":false} +{"ts":1376898275139,"patch":[[{"diffs":[[0," "],[-1,"socket.emit('news', { hello: 'world' }"],[1,"\r\n socket.on(\r\n 'use.handle',\r\n socket.emit(\r\n 'online',\r\n {\r\n id:socket.id\r\n }\r\n )\r\n "],[0,");\r\n"]],"start1":112,"start2":112,"length1":46,"length2":205},{"diffs":[[0," '"],[-1,"toRoom"],[1,"room.chat"],[0,"', \r"]],"start1":356,"start2":356,"length1":14,"length2":17}]],"length":1286,"saved":false} +{"ts":1376898284903,"patch":[[{"diffs":[[0," '"],[-1,"toUser"],[1,"user.message"],[0,"', \r"]],"start1":646,"start2":646,"length1":14,"length2":20}]],"length":1292,"saved":false} +{"ts":1376898293244,"patch":[[{"diffs":[[0," '"],[-1,"private"],[1,"user"],[0,".mes"]],"start1":769,"start2":769,"length1":15,"length2":12}]],"length":1289,"saved":false} +{"ts":1376898309003,"patch":[[{"diffs":[[0,");\r\n"],[-1," \r\n socket.on(\r\n 'join', \r\n function (data) {\r\n socket.join(\r\n data.room\r\n );\r\n }\r\n );\r\n \r\n"],[0," "]],"start1":1075,"start2":1075,"length1":209,"length2":8}]],"length":1088,"saved":false} +{"ts":1376898330022,"patch":[[{"diffs":[[0," socket.on(\r\n"],[1," 'room.join', \r\n function (data) {\r\n socket.join(\r\n data.room\r\n );\r\n }\r\n );\r\n \r\n socket.on(\r\n"],[0," 'roo"]],"start1":331,"start2":331,"length1":32,"length2":228}]],"length":1284,"saved":false} +{"ts":1376898991814,"patch":[[{"diffs":[[1,"var Config = require('../config/chat.js'),\r\n conf = new Config();\r\n"],[0,"var io "],[1," "],[0,"= re"]],"start1":0,"start2":0,"length1":11,"length2":86}]],"length":1359,"saved":false} +{"ts":1376899004333,"patch":[[{"diffs":[[0,"ig()"],[-1,";\r\nvar"],[1,",\r\n "],[0," io "]],"start1":63,"start2":63,"length1":14,"length2":14}]],"length":1359,"saved":false} +{"ts":1376899013591,"patch":[[{"diffs":[[0,"ten("],[-1,"8080"],[1,"conf.port"],[0,");\r\n"]],"start1":108,"start2":108,"length1":12,"length2":17}]],"length":1364,"saved":false} +{"ts":1376899224908,"patch":[[{"diffs":[[0,"rt);\r\n\r\n"],[1,"console.log(conf);\r\n\r\n"],[0,"io.socke"]],"start1":119,"start2":119,"length1":16,"length2":38}]],"length":1386,"saved":false} +{"ts":1376901345511,"patch":[[{"diffs":[[0," '"],[-1,"u"],[0,"se"],[1,"t"],[0,".handle'"]],"start1":245,"start2":245,"length1":19,"length2":19}]],"length":1386,"saved":false} +{"ts":1376903158960,"patch":[[{"diffs":[[0,"nf);\r\n\r\n"],[1,"var Chat = function(){\r\n function handleSet(data){\r\n socket.emit(\r\n 'online',\r\n {\r\n id:socket.id\r\n }\r\n )\r\n }\r\n \r\n return {\r\n online : handleSet,\r\n room : {\r\n \r\n },\r\n user : {\r\n \r\n }\r\n }\r\n}\r\n\r\n\r\n"],[0,"io.socke"]],"start1":141,"start2":141,"length1":16,"length2":351},{"diffs":[[0," "],[-1,"socket.emit(\r\n 'online',\r\n {\r\n id:socket.id\r\n }\r\n )"],[0,"\r\n "]],"start1":610,"start2":610,"length1":134,"length2":8}]],"length":1595,"saved":false} +{"ts":1376903311875,"patch":[[{"diffs":[[0," "],[-1,"return {\r\n online : handleSet,\r\n room : {\r\n \r\n },"],[1,"function joinRoom(data) {\r\n socket.join(\r\n data.room\r\n );\r\n }"],[0,"\r\n "],[1,"\r\n"],[0," "],[-1,"user : {\r\n \r\n }\r\n }\r\n}\r\n\r\n\r\nio.sockets.on(\r\n 'connection', \r\n function (socket) {\r\n "],[1,"function messageRoom(data) {\r\n socket.broadcast.to(\r\n data.room"],[0,"\r\n "]],"start1":333,"start2":333,"length1":224,"length2":190},{"diffs":[[0,"om\r\n "],[-1,"socket.on"],[1,").emit"],[0,"(\r\n "]],"start1":517,"start2":517,"length1":33,"length2":30},{"diffs":[[0," '"],[-1,"set.handle"],[1,"room.chat"],[0,"',"],[1," "],[0,"\r\n "]],"start1":547,"start2":547,"length1":20,"length2":20},{"diffs":[[0,", \r\n "],[1,"data"],[0,"\r\n );\r\n "]],"start1":561,"start2":561,"length1":32,"length2":36},{"diffs":[[0," );\r\n "],[1,"}\r\n"],[0," \r\n so"]],"start1":583,"start2":583,"length1":32,"length2":35},{"diffs":[[0," "],[-1," socket.on(\r\n 'room.join', \r\n function (data) {\r\n socket.join(\r\n data.r"],[1,"return {\r\n online : handleSet,\r\n room : {\r\n join:joinRoom,\r\n chat:messageR"],[0,"oom\r"]],"start1":608,"start2":608,"length1":138,"length2":122},{"diffs":[[0,"om\r\n "],[1,"},\r\n"],[0," "],[-1,");"],[1,"user : {"],[0,"\r\n "]],"start1":727,"start2":727,"length1":34,"length2":47},{"diffs":[[0," "],[-1,"}\r\n );"],[0,"\r\n \r\n"]],"start1":764,"start2":764,"length1":37,"length2":24},{"diffs":[[0," "],[1,"}"],[0,"\r\n "],[-1," "],[1,"}\r\n}\r\n\r\n\r\nio."],[0,"socket"],[1,"s"],[0,".on(\r\n "]],"start1":778,"start2":778,"length1":32,"length2":43},{"diffs":[[0," "],[-1," 'room.chat"],[1,"'connection"],[0,"', \r\n"],[-1," "],[0," "]],"start1":819,"start2":819,"length1":39,"length2":24},{"diffs":[[0,"\r\n function ("],[-1,"data"],[1,"socket"],[0,") {\r\n "]],"start1":837,"start2":837,"length1":36,"length2":38},{"diffs":[[0,"ket) {\r\n "],[1,"\r\n"],[0," socket.b"]],"start1":856,"start2":856,"length1":32,"length2":34},{"diffs":[[0," socket."],[-1,"broadcast.t"],[0,"o"],[1,"n"],[0,"(\r\n "]],"start1":877,"start2":877,"length1":36,"length2":26},{"diffs":[[0," "],[-1," data.room"],[1,"'set.handle',\r\n "],[0,"\r\n "]],"start1":898,"start2":898,"length1":33,"length2":43},{"diffs":[[0," "],[1,");\r\n"],[0," "],[-1,").emit("],[0,"\r\n "]],"start1":935,"start2":935,"length1":31,"length2":28},{"diffs":[[0," \r\n "],[1,"socket.on(\r\n"],[0," 'roo"]],"start1":949,"start2":949,"length1":32,"length2":44},{"diffs":[[0," 'room."],[-1,"chat"],[1,"join"],[0,"', \r\n "]],"start1":979,"start2":979,"length1":36,"length2":36},{"diffs":[[0," "],[1,"\r\n"],[0," "],[-1,"data\r\n );"],[1,");\r\n \r\n socket.on(\r\n 'room.chat', "],[0,"\r\n "]],"start1":1012,"start2":1012,"length1":40,"length2":77},{"diffs":[[0,", \r\n "],[-1,"}"],[0,"\r\n );\r\n "]],"start1":1083,"start2":1083,"length1":33,"length2":32}]],"length":1594,"saved":false} +{"ts":1376903364462,"patch":[[{"diffs":[[0," {\r\n "],[1,"chat"],[0,"\r\n"],[-1,""],[0," }\r\n }"]],"start1":760,"start2":760,"length1":34,"length2":38},{"diffs":[[0,"ser."],[-1,"message', \r\n function (data) {\r\n io.sockets.manager[data.to.id].emit(\r\n 'user.message',\r\n {\r\n from:{\r\n id : socket.id,\r\n handle : socket.handle\r\n },\r\n data:data\r\n }\r\n )\r\n }"],[1,"chat', \r\n "],[0,"\r\n "]],"start1":1161,"start2":1161,"length1":418,"length2":29}]],"length":1209,"saved":false} +{"ts":1376903388966,"patch":[[{"diffs":[[0," join"],[-1,":"],[1," : "],[0,"joinRoom"]],"start1":681,"start2":681,"length1":17,"length2":19},{"diffs":[[0,"chat"],[-1,":message"],[1," : to"],[0,"Room"]],"start1":715,"start2":715,"length1":16,"length2":13}]],"length":1208,"saved":false} +{"ts":1376903420153,"patch":[[{"diffs":[[0,"ion "],[-1,"message"],[1,"to"],[0,"Room"]],"start1":443,"start2":443,"length1":15,"length2":10},{"diffs":[[0," data\r\n"],[-1,""],[0," "]],"start1":570,"start2":570,"length1":16,"length2":16},{"diffs":[[0," }\r\n \r\n"],[1," function toUser(data) {\r\n io.sockets.manager[data.to.id].emit(\r\n 'user.message',\r\n {\r\n from:{\r\n id : socket.id,\r\n handle : socket.handle\r\n },\r\n data:data\r\n }\r\n )\r\n }\r\n \r\n"],[0," return {"]],"start1":591,"start2":591,"length1":24,"length2":340}]],"length":1519,"saved":false} +{"ts":1376903442165,"patch":[[{"diffs":[[0,"}\r\n}\r\n\r\n"],[1,"var chat=new Chat();\r\n"],[0,"\r\nio.soc"]],"start1":1107,"start2":1107,"length1":16,"length2":38}]],"length":1541,"saved":false} +{"ts":1376903461847,"patch":[[{"diffs":[[0,"g(conf);\r\n\r\n"],[1,"//Need to convert into npm module\r\n"],[0,"var Chat = f"]],"start1":137,"start2":137,"length1":24,"length2":59}]],"length":1576,"saved":false} +{"ts":1376903475209,"patch":[[{"diffs":[[0," chat"],[1," : toUser"],[0,"\r\n "]],"start1":1117,"start2":1117,"length1":16,"length2":25}]],"length":1585,"saved":false} +{"ts":1376903494333,"patch":[[{"diffs":[[0," {\r\n"],[-1," online : handleSet,\r\n"],[0," "]],"start1":964,"start2":964,"length1":38,"length2":8},{"diffs":[[0," user : {\r\n"],[1," online : handleSet,\r\n"],[0," chat"]],"start1":1063,"start2":1063,"length1":32,"length2":66}]],"length":1589,"saved":false} +{"ts":1376903502131,"patch":[[{"diffs":[[0," chat "],[1," "],[0,": toUser\r\n "]],"start1":1118,"start2":1118,"length1":24,"length2":27}]],"length":1592,"saved":false} +{"ts":1376903532444,"patch":[[{"diffs":[[0,"',\r\n "],[1,"chat.user.online"],[0,"\r\n"],[-1,""],[0," );\r\n "]],"start1":1304,"start2":1304,"length1":34,"length2":50},{"diffs":[[0,", \r\n "],[1,"chat.room.join"],[0,"\r\n );\r\n "]],"start1":1403,"start2":1403,"length1":32,"length2":46},{"diffs":[[0,", \r\n "],[1,"chat.room.chat"],[0,"\r\n );\r\n "]],"start1":1500,"start2":1500,"length1":32,"length2":46},{"diffs":[[0," 'user.chat', \r\n"],[-1,""],[0," \r\n "]],"start1":1585,"start2":1585,"length1":32,"length2":32},{"diffs":[[0,", \r\n "],[1,"chat.user.chat"],[0,"\r\n );\r\n "]],"start1":1597,"start2":1597,"length1":32,"length2":46}]],"length":1650,"saved":false} +{"ts":1376903651127,"patch":[[{"diffs":[[0," return {\r\n"],[1," set : {\r\n handle : handleSet\r\n },\r\n"],[0," room"]],"start1":956,"start2":956,"length1":24,"length2":89},{"diffs":[[0,"line : "],[-1,"handleSet"],[1,"userOnline"],[0,",\r\n "]],"start1":1158,"start2":1158,"length1":25,"length2":26},{"diffs":[[0,"hat."],[-1,"u"],[0,"se"],[-1,"r.onlin"],[1,"t.handl"],[0,"e\r\n "]],"start1":1387,"start2":1387,"length1":18,"length2":17}]],"length":1715,"saved":false} +{"ts":1376903737913,"patch":[[{"diffs":[[0,"Set(data){\r\n"],[1," socket.handle=data.handle;\r\n userOnline();\r\n }\r\n \r\n function userOnline={\r\n"],[0," sock"]],"start1":227,"start2":227,"length1":24,"length2":123},{"diffs":[[0," id"],[-1,":"],[1," : "],[0,"socket.i"]],"start1":408,"start2":408,"length1":17,"length2":24},{"diffs":[[0,"ocket.id"],[1,",\r\n handle : socket.handle"],[0,"\r\n "]],"start1":425,"start2":425,"length1":16,"length2":58}]],"length":1863,"saved":false} +{"ts":1376903751157,"patch":[[{"diffs":[[0,"erOnline"],[-1,"="],[1,"()"],[0,"{\r\n "]],"start1":326,"start2":326,"length1":17,"length2":18}]],"length":1864,"saved":false} +{"ts":1376903814859,"patch":[[{"diffs":[[0," );\r\n"],[1," \r\n socket.on(\r\n 'disconnect',\r\n chat.user.offline\r\n );\r\n"],[0," }\r\n);"]],"start1":1843,"start2":1843,"length1":21,"length2":121}]],"length":1964,"saved":false} +{"ts":1376903838736,"patch":[[{"diffs":[[0,"nline,\r\n"],[1," offline : userOffline,\r\n"],[0," "]],"start1":1320,"start2":1320,"length1":16,"length2":52}]],"length":2000,"saved":false} +{"ts":1376903875384,"patch":[[{"diffs":[[0,")\r\n }\r\n \r\n"],[1," function userOnline(){\r\n if(!socket.handle)\r\n return;\r\n \r\n socket.emit(\r\n 'online',\r\n {\r\n id : socket.id,\r\n handle : socket.handle\r\n }\r\n )\r\n }\r\n \r\n"],[0," function joi"]],"start1":501,"start2":501,"length1":32,"length2":301}]],"length":2269,"saved":false} +{"ts":1376903890962,"patch":[[{"diffs":[[0,"\r\n 'o"],[-1,"n"],[1,"ff"],[0,"line',\r\n "]],"start1":628,"start2":628,"length1":33,"length2":34}]],"length":2270,"saved":false} +{"ts":1376903906416,"patch":[[{"diffs":[[0," function userO"],[-1,"n"],[1,"ff"],[0,"line(){\r\n "]],"start1":519,"start2":519,"length1":33,"length2":34}]],"length":2271,"saved":false} +{"ts":1376904568129,"patch":[[{"diffs":[[0,"ket) {\r\n "],[1,"("],[0,"\r\n"],[1," function(){\r\n "],[0," socket.o"]],"start1":1765,"start2":1765,"length1":34,"length2":68},{"diffs":[[0," "],[1," "],[1," "],[0,"'set.han"]],"start1":1841,"start2":1841,"length1":16,"length2":24},{"diffs":[[0," "],[1," "],[1," "],[0,"chat.set.han"]],"start1":1872,"start2":1872,"length1":24,"length2":32},{"diffs":[[0,"le\r\n "],[-1,");\r\n \r\n"],[1," );\r\n \r\n "],[0," sock"]],"start1":1905,"start2":1905,"length1":38,"length2":62},{"diffs":[[0," "],[1," "],[1," "],[0,"'room.join',"]],"start1":1975,"start2":1975,"length1":24,"length2":32},{"diffs":[[0,", \r\n "],[1," "],[1," "],[0,"chat.room.join\r\n"]],"start1":2006,"start2":2006,"length1":32,"length2":40},{"diffs":[[0,"m.join\r\n "],[1," "],[1," "],[0,");\r\n \r\n "]],"start1":2038,"start2":2038,"length1":32,"length2":40},{"diffs":[[0,");\r\n "],[1," "],[-1,"\r\n"],[1," \r\n "],[0," "],[1," "],[0,"socket.on(\r\n"]],"start1":2062,"start2":2062,"length1":34,"length2":50},{"diffs":[[0," socket.on(\r\n"],[1," "],[0," 'roo"]],"start1":2096,"start2":2096,"length1":32,"length2":40},{"diffs":[[0,", \r\n "],[1," "],[1," "],[0,"chat.room.chat\r\n"]],"start1":2143,"start2":2143,"length1":32,"length2":40},{"diffs":[[0,"at\r\n "],[-1,");\r\n \r\n"],[1," );\r\n \r\n "],[0," sock"]],"start1":2179,"start2":2179,"length1":38,"length2":62},{"diffs":[[0," "],[1," "],[1," "],[0,"'user.chat',"]],"start1":2249,"start2":2249,"length1":24,"length2":32},{"diffs":[[0,", \r\n "],[1," "],[1," "],[0,"chat.user.chat\r\n"]],"start1":2280,"start2":2280,"length1":32,"length2":40},{"diffs":[[0," "],[1," "],[-1,");\r\n \r\n"],[1," );\r\n \r\n "],[0," "],[1," "],[0,"sock"]],"start1":2324,"start2":2324,"length1":30,"length2":54},{"diffs":[[0," "],[1," "],[1," "],[0,"'disconn"]],"start1":2390,"start2":2390,"length1":16,"length2":24},{"diffs":[[0,"',\r\n "],[1," "],[1," "],[0,"chat.user.offlin"]],"start1":2417,"start2":2417,"length1":32,"length2":40},{"diffs":[[0,"ffline\r\n "],[1," );\r\n }\r\n )(socket"],[0,")"],[-1,";"],[0,"\r\n }\r\n);"]],"start1":2452,"start2":2452,"length1":29,"length2":71}]],"length":2523,"saved":false} +{"contributors":[],"silentsave":false,"ts":1377123401751,"patch":[[{"diffs":[[0," Config "],[1," "],[0,"= requir"]],"start1":3,"start2":3,"length1":16,"length2":17},{"diffs":[[0,"ire('../"],[1,"../"],[0,"config/c"]],"start1":18,"start2":18,"length1":16,"length2":19},{"diffs":[[0," conf "],[1," "],[0,"= new Co"]],"start1":49,"start2":49,"length1":16,"length2":19},{"diffs":[[0,"ort)"],[-1,";\r\n\r\nconsole.log(conf);\r\n\r\n//Need to convert into npm module"],[1,",\r\n url = require('url'),\r\n Worker = require('webworker-threads').Worker;\r\n"],[0,"\r\nva"]],"start1":125,"start2":125,"length1":68,"length2":94},{"diffs":[[0,"Chat = function("],[1,"socket"],[0,"){\r\n function"]],"start1":221,"start2":221,"length1":32,"length2":38},{"diffs":[[0,"\n socket."],[-1,""],[1,"broadcast."],[0,"emit(\r\n "]],"start1":377,"start2":377,"length1":32,"length2":42},{"diffs":[[0," "],[1," "],[0,"socket."],[1,"broadcast."],[0,"emit(\r\n "]],"start1":658,"start2":658,"length1":23,"length2":34},{"diffs":[[0," "],[-1,"}\r\n \r\n function toRoom(data) {"],[1," socket.room=data.room;\r\n //Emit event to room that someone has joined\r\n }\r\n \r\n function leaveRoom(data) {\r\n socket.leave(\r\n data.room\r\n );\r\n socket.room=null;\r\n //Emit event to room that someone has left\r\n }\r\n \r\n function toRoom(data) {\r\n if(!socket.room)\r\n return;\r\n \r\n var messageParser = new Worker(\r\n __dirname+'/messageParser.js'\r\n );\r\n \r\n console.log(messageParser,123,'FU');\r\n \r\n messageParser.onmessage=function(data){\r\n console.log(data)\r\n };\r\n \r\n messageParser.postMessage(data);\r\n \r\n data.handle=socket.handle;"],[0,"\r\n "]],"start1":936,"start2":936,"length1":44,"length2":725},{"diffs":[[0,"o(\r\n "],[-1,"data"],[1,"socket"],[0,".room\r\n )"]],"start1":1685,"start2":1685,"length1":36,"length2":38},{"diffs":[[0,"nRoom,\r\n"],[1," leave: leaveRoom,\r\n"],[0," "]],"start1":2239,"start2":2239,"length1":16,"length2":47},{"diffs":[[0,"\r\n\r\n"],[-1,"var chat=new Chat();\r\n\r\nio.sockets.on"],[1,"//NEED TO CONVERT INTO A MODULE\r\nfunction getAudio(){\r\n postMessage"],[0,"(\r\n "],[-1,"'connection', \r\n function (socket) {\r\n (\r\n function(){\r\n socket.on("],[1," {\r\n type: 'log',\r\n msg : 'testing multi threading'\r\n }\r\n )\r\n onmessage = function(e) {\r\n postMessage(e.data);\r\n terminate();\r\n };\r\n}\r\n\r\nfunction gotAudio(e){\r\n switch(e.data.type){\r\n case 'log' :\r\n console.log(e.data.msg)"],[0,"\r\n "]],"start1":2458,"start2":2458,"length1":155,"length2":383},{"diffs":[[0," "],[1,"break;\r\n"],[0," "],[1,"}\r\n"],[0," "],[-1,"'set.handle',\r\n "],[1,"//dispatch audio data;\r\n}\r\n\r\nio.sockets.on(\r\n 'connection', \r\n function (socket) {\r\n"],[0," "],[1,"var"],[0," chat"],[-1,".set.handle"],[1,"=new Chat(socket);"],[0,"\r\n "]],"start1":2847,"start2":2847,"length1":66,"length2":151},{"diffs":[[0," "],[1,"\r\n"],[0," "],[-1,");\r\n "],[1,"socket.on(\r\n 'set.handle',\r\n chat.set.handle\r\n );"],[0,"\r\n "]],"start1":3000,"start2":3000,"length1":36,"length2":96},{"diffs":[[0," );\r\n "],[1,"\r\n"],[0," socket.o"]],"start1":3086,"start2":3086,"length1":32,"length2":34},{"diffs":[[0," "],[-1," '"],[1,"'room.join', \r\n chat."],[0,"room.join', "]],"start1":3124,"start2":3124,"length1":33,"length2":56},{"diffs":[[0," chat.room.join"],[-1,"', "],[0,"\r\n "]],"start1":3161,"start2":3161,"length1":35,"length2":32},{"diffs":[[0," "],[1,");\r\n"],[0," "],[1,"\r\n "],[0," "],[-1,"chat.room.join\r\n );\r\n "],[1," socket.on(\r\n 'room.leave', \r\n chat.room.leave\r\n"],[0," "],[1," );"],[0,"\r\n "]],"start1":3183,"start2":3183,"length1":72,"length2":109},{"diffs":[[0," );\r\n "],[1,"\r\n"],[0," socket.o"]],"start1":3282,"start2":3282,"length1":32,"length2":34},{"diffs":[[0,"socket.on(\r\n"],[-1," "],[0," "]],"start1":3308,"start2":3308,"length1":32,"length2":24},{"diffs":[[0," "],[-1," "],[0,"chat.room.ch"]],"start1":3347,"start2":3347,"length1":32,"length2":24},{"diffs":[[0,"at\r\n "],[1,");\r\n"],[0," "],[-1,");"],[0,"\r\n "]],"start1":3371,"start2":3371,"length1":34,"length2":36},{"diffs":[[0," "],[1,"socket.on(\r\n"],[0," "],[-1,"\r\n"],[0," "],[-1," socket.on(\r\n 'user.chat', \r\n "],[1,"'user.chat', \r\n chat.user.chat\r\n );\r\n \r\n socket.on(\r\n 'disconnect',\r\n"],[0," "]],"start1":3401,"start2":3401,"length1":89,"length2":144},{"diffs":[[0,"at.user."],[-1,"chat\r\n "],[1,"offline\r\n"],[0," "]],"start1":3555,"start2":3555,"length1":30,"length2":25},{"diffs":[[0," "],[-1," \r\n socket.on(\r\n 'disconnect',\r\n chat.user.offline\r\n "],[1,"\r\n socket.on(\r\n 'testAudio',\r\n function(data){\r\n var audioWorker = new Worker(\r\n getAudio\r\n );\r\n \r\n audioWorker.onmessage=gotAudio;\r\n audioWorker.postMessage(data"],[0,");\r\n"]],"start1":3588,"start2":3588,"length1":136,"length2":293},{"diffs":[[0," )"],[-1,"(socket)"],[0,"\r\n }\r"]],"start1":3897,"start2":3897,"length1":24,"length2":16}]],"length":3916,"saved":false} +{"ts":1377123474665,"patch":[[{"diffs":[[0," \r\n"],[-1," console.log(messageParser,123,'FU');\r\n \r\n"],[0," "]],"start1":1409,"start2":1409,"length1":64,"length2":8}]],"length":3860,"saved":false} +{"ts":1377123576415,"patch":[[{"diffs":[[0,"rname+'/"],[1,"workers/"],[0,"messageP"]],"start1":1364,"start2":1364,"length1":16,"length2":24}]],"length":3868,"saved":false} diff --git a/.c9revisions/server/chat/workers/messageParser.js.c9save b/.c9revisions/server/chat/workers/messageParser.js.c9save new file mode 100644 index 0000000..051f547 --- /dev/null +++ b/.c9revisions/server/chat/workers/messageParser.js.c9save @@ -0,0 +1,8 @@ +{"ts":1377122622520,"silentsave":true,"restoring":false,"patch":[[]],"length":0} +{"contributors":[],"silentsave":false,"ts":1377122628724,"patch":[[{"diffs":[[1,"url = require('url');"]],"start1":0,"start2":0,"length1":0,"length2":21}]],"length":21,"saved":false} +{"ts":1377122657298,"patch":[[{"diffs":[[1,"var "],[0,"url = re"]],"start1":0,"start2":0,"length1":8,"length2":12},{"diffs":[[0,"('url');"],[1,"\n\nonmessage=funcrion(data){\n console.log(data);\n}"]],"start1":17,"start2":17,"length1":8,"length2":60}]],"length":77,"saved":false} +{"ts":1377122854103,"patch":[[{"diffs":[[0,"age=func"],[-1,"r"],[1,"t"],[0,"ion(data"]],"start1":33,"start2":33,"length1":17,"length2":17}]],"length":77,"saved":false} +{"ts":1377122903467,"patch":[[{"diffs":[[-1,"var url = require('url');\n\n"],[0,"onme"]],"start1":0,"start2":0,"length1":31,"length2":4}]],"length":50,"saved":false} +{"ts":1377122919647,"patch":[[{"diffs":[[0,"on"],[-1,"m"],[1,"M"],[0,"essa"]],"start1":0,"start2":0,"length1":7,"length2":7},{"diffs":[[0,"(data);\n"],[1," //postMessage\n"],[0,"}"]],"start1":41,"start2":41,"length1":9,"length2":27}]],"length":68,"saved":false} +{"ts":1377123036375,"patch":[[{"diffs":[[0,"essage\n}"],[1,"\n\nconsole.log('init');"]],"start1":60,"start2":60,"length1":8,"length2":30}]],"length":90,"saved":false} +{"ts":1377123223670,"patch":[[{"diffs":[[0,"on"],[-1,"M"],[1,"m"],[0,"essage=f"]],"start1":0,"start2":0,"length1":11,"length2":11}]],"length":90,"saved":false} diff --git a/.c9revisions/server/http/http.js.c9save b/.c9revisions/server/http/http.js.c9save new file mode 100644 index 0000000..e909ef4 --- /dev/null +++ b/.c9revisions/server/http/http.js.c9save @@ -0,0 +1,78 @@ +{"ts":1376896342244,"silentsave":true,"restoring":false,"patch":[[{"diffs":[[1,"var http = require('http');\nhttp.createServer(function (req, res) {\n res.writeHead(200, {'Content-Type': 'text/plain'});\n res.end('Hello World from Cloud9\\n');\n}).listen(process.env.PORT);"]],"start1":0,"start2":0,"length1":0,"length2":190}]],"length":190} +{"contributors":[],"silentsave":false,"ts":1376896347118,"patch":[[{"diffs":[[0,"'http');"],[1,"\r"],[0,"\nhttp.cr"]],"start1":19,"start2":19,"length1":16,"length2":17},{"diffs":[[0,", res) {"],[1,"\r"],[0,"\n res.w"]],"start1":60,"start2":60,"length1":16,"length2":17},{"diffs":[[0,"lain'});"],[1,"\r"],[0,"\n res.e"]],"start1":115,"start2":115,"length1":16,"length2":17},{"diffs":[[0,"rom "],[-1,"Cloud9\\n');"],[1,"Me\\n');\r\n console.log(req);\r"],[0,"\n})."]],"start1":149,"start2":149,"length1":19,"length2":37}]],"length":211,"saved":false} +{"ts":1376896461961,"patch":[[{"diffs":[[0,"v.PORT);"],[1,"\r\n\r\nconsole.log(process.env.PORT);"]],"start1":203,"start2":203,"length1":8,"length2":42}]],"length":245,"saved":false} +{"ts":1376896634129,"patch":[[{"diffs":[[0,"var http"],[-1," "],[0,"= requir"]],"start1":0,"start2":0,"length1":17,"length2":16},{"diffs":[[0,"ttp');\r\n"],[1,"var fs = require('fs');\r\n"],[0,"http.cre"]],"start1":20,"start2":20,"length1":16,"length2":42},{"diffs":[[0,"end("],[-1,"'Hello World from Me\\n'"],[0,");\r\n"]],"start1":156,"start2":156,"length1":31,"length2":8}]],"length":247,"saved":false} +{"ts":1376896674423,"patch":[[{"diffs":[[0,"eServer("],[1,"\r\n "],[0,"function"]],"start1":64,"start2":64,"length1":16,"length2":22},{"diffs":[[0,"res) {\r\n"],[1," "],[0," res.wr"]],"start1":93,"start2":93,"length1":16,"length2":22},{"diffs":[[0,"ead("],[-1,"200, {'Content-Type': 'text/plain'});\r\n res.end("],[1,"\r\n 200, \r\n {'Content-Type': 'text/html'}\r\n );\r\n res.end(\r\n \r\n "],[0,");\r\n"]],"start1":119,"start2":119,"length1":57,"length2":124}]],"length":326,"saved":false} +{"ts":1376896679006,"patch":[[{"diffs":[[0,");\r\n"],[-1," console.log(req);\r\n"],[0,"}).l"]],"start1":239,"start2":239,"length1":29,"length2":8}]],"length":305,"saved":false} +{"ts":1376896686124,"patch":[[{"diffs":[[0," );\r\n"],[-1,"}"],[1," }\r\n"],[0,").listen"]],"start1":235,"start2":235,"length1":17,"length2":23},{"diffs":[[0,"RT);"],[-1,"\r\n\r\nconsole.log(process.env.PORT);"]],"start1":273,"start2":273,"length1":38,"length2":4}]],"length":277,"saved":false} +{"ts":1376896770027,"patch":[[{"diffs":[[0," "],[-1,"res.end("],[1,"fs.readFile('/etc/passwd', function (err, data) {\r\n if (err) throw err;\r\n console.log(data);"],[0,"\r\n "]],"start1":203,"start2":203,"length1":16,"length2":122},{"diffs":[[0," "],[1,"}"],[0,"\r\n "]],"start1":327,"start2":327,"length1":16,"length2":17}]],"length":384,"saved":false} +{"ts":1376896821988,"patch":[[{"diffs":[[0,"ile("],[-1,"'/etc/passwd',"],[1,"\r\n '/view/apps/chat.html', \r\n "],[0," fun"]],"start1":215,"start2":215,"length1":22,"length2":59},{"diffs":[[0," "],[1," "],[0,"if (err)"]],"start1":299,"start2":299,"length1":16,"length2":20},{"diffs":[[0," "],[1," "],[-1,"console.log"],[1," res.end"],[0,"(dat"]],"start1":340,"start2":340,"length1":19,"length2":19}]],"length":425,"saved":false} +{"ts":1376896886365,"patch":[[{"diffs":[[0," '"],[1,".."],[0,"/view/ap"]],"start1":226,"start2":226,"length1":16,"length2":18}]],"length":427,"saved":false} +{"ts":1376896967223,"patch":[[{"diffs":[[0," '"],[-1,"../view/apps/"],[0,"chat."],[-1,"html"],[1,"js"],[0,"', \r"]],"start1":230,"start2":230,"length1":30,"length2":15}]],"length":412,"saved":false} +{"ts":1376897062235,"patch":[[{"diffs":[[0," '"],[1,"view/apps/"],[0,"chat."],[-1,"js"],[1,"html"],[0,"', \r"]],"start1":230,"start2":230,"length1":15,"length2":27}]],"length":424,"saved":false} +{"ts":1376902736255,"patch":[[{"diffs":[[0,"tp')"],[-1,";\r\nvar"],[1,",\r\n "],[0," fs "]],"start1":21,"start2":21,"length1":14,"length2":14},{"diffs":[[0,"re('fs')"],[-1,";"],[1,",\r\n Config = require('../config/chat.js'),\r\n conf = new Config();\r\n "],[0,"\r\nhttp.c"]],"start1":43,"start2":43,"length1":17,"length2":93},{"diffs":[[0,"ten("],[-1,"process.env.PORT"],[1,"conf.port"],[0,");"]],"start1":478,"start2":478,"length1":22,"length2":15}]],"length":493,"saved":false} +{"ts":1376902745130,"patch":[[{"diffs":[[0,"/config/"],[-1,"chat"],[1,"http"],[0,".js'),\r\n"]],"start1":78,"start2":78,"length1":20,"length2":20}]],"length":493,"saved":false} +{"contributors":[],"silentsave":false,"ts":1377114020773,"patch":[[{"diffs":[[0,"var http"],[1," "],[0,"= requir"]],"start1":0,"start2":0,"length1":16,"length2":17},{"diffs":[[0,"ire("],[-1,"'"],[1,"\""],[0,"http"],[-1,"'"],[1,"\"),\r\n url = require(\"url\"),\r\n path = require(\"path\""],[0,"),\r\n"]],"start1":15,"start2":15,"length1":14,"length2":70},{"diffs":[[0,"\n fs "],[-1," "],[0,"= requir"]],"start1":84,"start2":84,"length1":17,"length2":16},{"diffs":[[0,"ire("],[-1,"'fs'"],[1,"\"fs\""],[0,"),\r\n"]],"start1":98,"start2":98,"length1":12,"length2":12},{"diffs":[[0,"\r\n \r\n"],[1,"\r\nhttp.createServer(function(request, response) {\r\n\r\n var uri = url.parse(request.url).pathname\r\n , filename = path.join(process.cwd(), uri);\r\n\r\n var contentTypesByExtension = {\r\n '.html': \"text/html\",\r\n '.css': \"text/css\",\r\n '.js': \"text/javascript\"\r\n };\r\n\r\n path.exists(filename, function(exists) {\r\n if(!exists) {\r\n response.writeHead(404, {\"Content-Type\": \"text/plain\"});\r\n response.write(\"404 Not Found\\n\");\r\n response.end();\r\n return;\r\n }\r\n\r\n if (fs.statSync(filename).isDirectory()) filename += '/index.html';\r\n\r\n fs.readFile(filename, \"binary\", function(err, file) {\r\n if(err) { \r\n response.writeHead(500, {\"Content-Type\": \"text/plain\"});\r\n response.write(err + \"\\n\");\r\n response.end();\r\n return;\r\n }\r\n\r\n var headers = {};\r\n var contentType = contentTypesByExtension[path.extname(filename)];\r\n if (contentType) headers[\"Content-Type\"] = contentType;\r\n response.writeHead(200, headers);\r\n response.write(file, \"binary\");\r\n response.end();\r\n });\r\n });\r\n}).listen(conf.port);\r\n\r\n"],[0,"http.cre"]],"start1":178,"start2":178,"length1":16,"length2":1130},{"diffs":[[0," }\r\n).listen(conf.port"],[-1,""],[1,");\r\nconsole.log(\"Static file server running at\\n => http://localhost:\" + port + \"/\\nCTRL + C to shutdown\""],[0,");"]],"start1":1637,"start2":1637,"length1":26,"length2":132}]],"length":1769,"saved":false} +{"ts":1377114409325,"patch":[[{"diffs":[[0,"eServer("],[1,"\r\n "],[0,"function"]],"start1":198,"start2":198,"length1":16,"length2":22},{"diffs":[[0,"nse) {\r\n"],[-1,"\r\n"],[1," "],[0," var ur"]],"start1":235,"start2":235,"length1":18,"length2":22},{"diffs":[[0,"name"],[1,", "],[0,"\r\n "],[-1,","],[1," "],[0," fil"]],"start1":288,"start2":288,"length1":15,"length2":23},{"diffs":[[0," uri);\r\n"],[-1,"\r\n"],[1," \r\n "],[0," var co"]],"start1":343,"start2":343,"length1":18,"length2":28},{"diffs":[[0,"ension = {\r\n"],[1," "],[0," '.html':"]],"start1":386,"start2":386,"length1":24,"length2":32},{"diffs":[[0,"ext/html\",\r\n"],[1," "],[0," '.css': "]],"start1":421,"start2":421,"length1":24,"length2":32},{"diffs":[[0,"text/css\",\r\n"],[1," "],[0," '.js': "]],"start1":455,"start2":455,"length1":24,"length2":32},{"diffs":[[0,"\r\n "],[-1,"};\r\n\r\n path.exists(filename, function"],[1," };\r\n \r\n path.exists(\r\n filename,\r\n serveFile\r\n );\r\n }\r\n).listen(conf.port);\r\n\r\nfunction serveFile"],[0,"(exi"]],"start1":505,"start2":505,"length1":46,"length2":153},{"diffs":[[0,"!exists) {\r\n"],[1," "],[0," respon"]],"start1":673,"start2":673,"length1":24,"length2":26},{"diffs":[[0,"lain\"});\r\n "],[1," "],[0,"response.write(\""]],"start1":741,"start2":741,"length1":32,"length2":34},{"diffs":[[0,"und\\n\");\r\n "],[1," "],[0,"response.end();\r"]],"start1":785,"start2":785,"length1":32,"length2":34},{"diffs":[[0,"d();\r\n "],[1," "],[1," "],[0,"return;\r\n "]],"start1":814,"start2":814,"length1":24,"length2":26},{"diffs":[[0,"ctory())"],[1,"\r\n "],[0," filenam"]],"start1":882,"start2":882,"length1":16,"length2":25},{"diffs":[[0,"ile("],[-1,"filename, \"binary\","],[1,"\r\n filename, \r\n \"binary\", \r\n "],[0," fun"]],"start1":942,"start2":942,"length1":27,"length2":57},{"diffs":[[0,"\r\n "],[1," "],[1," "],[0,"if(err) "]],"start1":1017,"start2":1017,"length1":16,"length2":22},{"diffs":[[0," { \r\n"],[1," "],[0," resp"]],"start1":1038,"start2":1038,"length1":24,"length2":32},{"diffs":[[0,"text/plain\"});\r\n"],[1," "],[0," response"]],"start1":1108,"start2":1108,"length1":32,"length2":40},{"diffs":[[0,"\"\\n\");\r\n "],[1," "],[1," "],[0,"response.end();\r"]],"start1":1161,"start2":1161,"length1":32,"length2":40},{"diffs":[[0,"end();\r\n "],[1," "],[1," "],[0,"return;\r\n }"]],"start1":1194,"start2":1194,"length1":32,"length2":40},{"diffs":[[0,"urn;\r\n "],[-1,"}\r\n\r\n"],[1," }\r\n \r\n "],[0," var he"]],"start1":1221,"start2":1221,"length1":29,"length2":45},{"diffs":[[0,"ders = {};\r\n"],[1," "],[0," var co"]],"start1":1267,"start2":1267,"length1":24,"length2":30},{"diffs":[[0,"ame)];\r\n"],[1," "],[0," if"]],"start1":1351,"start2":1351,"length1":16,"length2":22},{"diffs":[[0,"ntType) "],[1,"\r\n "],[0,"headers["]],"start1":1380,"start2":1380,"length1":16,"length2":34},{"diffs":[[0,"entType;\r\n "],[1," "],[1," "],[0,"response.writeHe"]],"start1":1436,"start2":1436,"length1":32,"length2":38},{"diffs":[[0,"eaders);\r\n "],[1," "],[1," "],[0,"response.write(f"]],"start1":1483,"start2":1483,"length1":32,"length2":38},{"diffs":[[0,"y\");\r\n "],[1," "],[1," "],[0,"response.end"]],"start1":1532,"start2":1532,"length1":24,"length2":30},{"diffs":[[0," "],[-1,"});"],[1," }"],[0,"\r\n "],[-1,"}"],[1," "],[0,");\r\n}"],[-1,").listen(conf.port);"],[0,"\r\n\r\n"]],"start1":1567,"start2":1567,"length1":41,"length2":24}]],"length":2060,"saved":false} +{"ts":1377114440842,"patch":[[{"diffs":[[0," \r\n"],[-1," var contentTypesByExtension = {\r\n '.html': \"text/html\",\r\n '.css': \"text/css\",\r\n '.js': \"text/javascript\"\r\n };\r\n \r\n"],[0," "]],"start1":353,"start2":353,"length1":176,"length2":8}]],"length":1892,"saved":false} +{"ts":1377114707735,"patch":[[{"diffs":[[0,"(exists) {\r\n"],[1," //Do not allow access to Dirs\r\n if (fs.statSync(filename).isDirectory()){\r\n serveForbidden();\r\n }\r\n \r\n var contentType = path.extname(filename);\r\n \r\n"],[0," if(!exis"]],"start1":486,"start2":486,"length1":24,"length2":199},{"diffs":[[0,"!exists) {\r\n"],[-1,""],[0," resp"]],"start1":680,"start2":680,"length1":24,"length2":24},{"diffs":[[0," return;\r\n"],[1,""],[0," }\r\n\r\n "]],"start1":832,"start2":832,"length1":24,"length2":24},{"diffs":[[0,"\r\n\r\n"],[-1," if (fs.statSync(filename).isDirectory())\r\n filename += '/index.html';\r\n\r\n"],[0," "]],"start1":849,"start2":849,"length1":92,"length2":8},{"diffs":[[0,"};\r\n"],[-1," var contentType = contentTypesByExtension[path.extname(filename)];\r\n"],[0," "]],"start1":1198,"start2":1198,"length1":88,"length2":8}]],"length":1903,"saved":false} +{"ts":1377114719456,"patch":[[{"diffs":[[0,"rbidden();\r\n"],[1," return\r\n"],[0," }\r\n \r"]],"start1":595,"start2":595,"length1":24,"length2":40}]],"length":1919,"saved":false} +{"ts":1377114854914,"patch":[[{"diffs":[[0,"ire("],[-1,"\""],[1,"'"],[0,"http"],[-1,"\""],[1,"'"],[0,"),\r\n"]],"start1":15,"start2":15,"length1":14,"length2":14},{"diffs":[[0,"ire("],[-1,"\"url\""],[1,"'url'"],[0,"),\r\n"]],"start1":43,"start2":43,"length1":13,"length2":13},{"diffs":[[0,"ire("],[-1,"\""],[1,"'"],[0,"path"],[-1,"\""],[1,"'"],[0,"),\r\n"]],"start1":71,"start2":71,"length1":14,"length2":14},{"diffs":[[0,"ire("],[-1,"\"fs\""],[1,"'fs'"],[0,"),\r\n"]],"start1":98,"start2":98,"length1":12,"length2":12},{"diffs":[[0," "],[-1,"response.writeHead(404, {\"Content-Type\": \"text/plain\"});\r\n response.write(\"404 Not Found\\n\");\r\n response.end();\r\n return;"],[0,"\r\n "]],"start1":712,"start2":712,"length1":150,"length2":8},{"diffs":[[0," "],[-1,"\""],[1,"'"],[0,"binary"],[-1,"\""],[1,"'"],[0,", \r\n "]],"start1":765,"start2":765,"length1":24,"length2":24},{"diffs":[[0,"d(500, {"],[-1,"\""],[1,"'"],[0,"Content-"]],"start1":880,"start2":880,"length1":17,"length2":17},{"diffs":[[0,"Type"],[-1,"\": \""],[1,"': '"],[0,"text"]],"start1":897,"start2":897,"length1":12,"length2":12},{"diffs":[[0,"xt/plain"],[-1,"\""],[1,"'"],[0,"});\r\n "]],"start1":907,"start2":907,"length1":17,"length2":17},{"diffs":[[0,"r + "],[-1,"\"\\n\""],[1,"'\\n'"],[0,");\r\n"]],"start1":954,"start2":954,"length1":12,"length2":12},{"diffs":[[0,"headers["],[-1,"\""],[1,"'"],[0,"Content-"]],"start1":1123,"start2":1123,"length1":17,"length2":17},{"diffs":[[0,"ent-Type"],[-1,"\""],[1,"'"],[0,"] = cont"]],"start1":1136,"start2":1136,"length1":17,"length2":17},{"diffs":[[0,"le, "],[-1,"\""],[1,"'"],[0,"binary"],[-1,"\""],[1,"'"],[0,");\r\n"]],"start1":1239,"start2":1239,"length1":16,"length2":16},{"diffs":[[0," );\r\n}\r\n\r\n"],[1,"function serveForbidden(){\r\n response.writeHead(403, \r\n {\r\n 'Content-Type' : 'text/plain'\r\n }\r\n );\r\n response.write('404 Not Found\\n');\r\n response.end();\r\n return;\r\n}\r\n\r\n"],[0,"http.createS"]],"start1":1296,"start2":1296,"length1":24,"length2":234},{"diffs":[[0,"ole.log("],[-1,"\""],[1,"'"],[0,"Static f"]],"start1":1887,"start2":1887,"length1":17,"length2":17},{"diffs":[[0,"calhost:"],[-1,"\""],[1,"'"],[0," + port "]],"start1":1941,"start2":1941,"length1":17,"length2":17},{"diffs":[[0," port + "],[-1,"\""],[1,"'"],[0,"/\\nCTRL "]],"start1":1952,"start2":1952,"length1":17,"length2":17},{"diffs":[[0,"down"],[-1,"\""],[1,"'"],[0,");"]],"start1":1980,"start2":1980,"length1":7,"length2":7}]],"length":1987,"saved":false} +{"ts":1377115009100,"patch":[[{"diffs":[[0,"me);\r\n \r\n"],[1," \r\n \r\n"],[0," if(!exis"]],"start1":677,"start2":677,"length1":24,"length2":36},{"diffs":[[0," );\r\n}\r\n\r\n"],[1,"function serve(status,headers,body){\r\n response.writeHead(\r\n status, \r\n headers\r\n );\r\n response.write(body);\r\n response.end();\r\n return;\r\n}\r\n\r\n"],[0,"function ser"]],"start1":1308,"start2":1308,"length1":24,"length2":196},{"diffs":[[0,"rbidden(){\r\n"],[-1,""],[0," response"]],"start1":1508,"start2":1508,"length1":24,"length2":24},{"diffs":[[0,"('40"],[-1,"4 Not Foun"],[1,"3 not allowe"],[0,"d\\n'"]],"start1":1641,"start2":1641,"length1":18,"length2":20}]],"length":2173,"saved":false} +{"ts":1377115096365,"patch":[[{"diffs":[[0,"n serve("],[1,"body,"],[0,"status,h"]],"start1":1327,"start2":1327,"length1":16,"length2":21},{"diffs":[[0,"ders"],[-1,",body){"],[1,"){\r\n //defaults to 200\r\n if(!status)\r\n status=200;\r\n //defaults to text/plain\r\n if(!headers)\r\n headers={\r\n 'Content-type':'text/plain'\r\n }"],[0,"\r\n "]],"start1":1350,"start2":1350,"length1":15,"length2":190}]],"length":2353,"saved":false} +{"ts":1377115113862,"patch":[[{"diffs":[[0,"s=200;\r\n"],[1," \r\n"],[0," //de"]],"start1":1411,"start2":1411,"length1":16,"length2":22},{"diffs":[[0,"/plain\r\n"],[-1,""],[0," if(!"]],"start1":1447,"start2":1447,"length1":16,"length2":16},{"diffs":[[0,"\n }\r\n"],[1," \r\n"],[0," response"]],"start1":1532,"start2":1532,"length1":24,"length2":34},{"diffs":[[0,"eaders\r\n );\r\n"],[1,""],[0," response.wri"]],"start1":1606,"start2":1606,"length1":32,"length2":32},{"diffs":[[0,"\r\n\r\n"],[-1,"function serveForbidden(){\r\n response.writeHead(403, \r\n {\r\n 'Content-Type' : 'text/plain'\r\n }\r\n );\r\n response.write('403 not allowed\\n');\r\n response.end();\r\n return;\r\n}\r\n\r\n"],[0,"http"]],"start1":1684,"start2":1684,"length1":220,"length2":8}]],"length":2157,"saved":false} +{"ts":1377115234516,"patch":[[{"diffs":[[0,"erve"],[-1,"Forbidden("],[1,"(\r\n 'Access Denied',\r\n 403\r\n "],[0,");\r\n"]],"start1":589,"start2":589,"length1":18,"length2":66},{"diffs":[[0," return"],[1,";"],[0,"\r\n }\r"]],"start1":661,"start2":661,"length1":16,"length2":17},{"diffs":[[0,");\r\n"],[-1," \r\n \r\n \r\n"],[0," "]],"start1":728,"start2":728,"length1":26,"length2":8}]],"length":2188,"saved":false} +{"ts":1377115290647,"patch":[[{"diffs":[[0,"filename);\r\n"],[1," \r\n"],[0," if(!exis"]],"start1":720,"start2":720,"length1":24,"length2":30}]],"length":2194,"saved":false} +{"ts":1377115325146,"patch":[[{"diffs":[[0,"(exists) {\r\n"],[1," if(!exists) {\r\n serve(\r\n 'MIA',\r\n 404\r\n );\r\n return;\r\n }\r\n \r\n"],[0," //Do not"]],"start1":486,"start2":486,"length1":24,"length2":138},{"diffs":[[0," \r\n"],[-1," if(!exists) {\r\n \r\n }\r\n\r\n"],[0," "]],"start1":848,"start2":848,"length1":46,"length2":8}]],"length":2270,"saved":false} +{"ts":1377115348194,"patch":[[{"diffs":[[0," '"],[1,"404 "],[0,"MIA',\r\n "]],"start1":538,"start2":538,"length1":16,"length2":20},{"diffs":[[0," '"],[1,"403 "],[0,"Access D"]],"start1":719,"start2":719,"length1":16,"length2":20}]],"length":2278,"saved":false} +{"ts":1377115758817,"patch":[[{"diffs":[[0,"me);\r\n \r\n"],[1," //Only serve specified file types \r\n if(!conf.contentType){\r\n serve(\r\n '415 File type not supported',\r\n 415\r\n );\r\n return;\r\n }\r\n \r\n //Deny restricted file types \r\n if(!conf.contentType){\r\n serve(\r\n '415 File type not supported',\r\n 415\r\n );\r\n return;\r\n }\r\n \r\n"],[0," fs.readF"]],"start1":848,"start2":848,"length1":24,"length2":393}]],"length":2647,"saved":false} +{"ts":1377115904379,"patch":[[{"diffs":[[0," if ("],[1,"\r\n "],[0,"fs.statS"]],"start1":651,"start2":651,"length1":16,"length2":26},{"diffs":[[0,"ectory()"],[1," ||\r\n \r\n "],[0,"){\r\n "]],"start1":696,"start2":696,"length1":16,"length2":35},{"diffs":[[0,"Deni"],[-1,"ed',\r\n 403\r\n );\r\n return;\r\n }\r\n \r\n var contentType = path.extname(filename);\r\n \r\n //Only serve specified file types \r\n if(!conf.contentType){\r\n serve(\r\n '415 File type not supported',\r\n 415\r\n );\r\n return;\r\n }\r\n \r\n //Deny restricted file types \r\n if(!conf.contentType){\r\n serve(\r\n '415 File type not support"],[0,"ed',"]],"start1":767,"start2":767,"length1":430,"length2":8},{"diffs":[[0," 4"],[-1,"15"],[1,"03"],[0,"\r\n "]],"start1":786,"start2":786,"length1":10,"length2":10}]],"length":2254,"saved":false} +{"ts":1377115971332,"patch":[[{"diffs":[[0," }\r\n \r\n"],[1," var contentType = path.extname(filename);\r\n \r\n //Only serve specified file types \r\n if(!conf.contentType){\r\n serve(\r\n '415 File type not supported',\r\n 415\r\n );\r\n return;\r\n }\r\n \r\n //Deny restricted file types \r\n if(!conf.contentType[contentType]){\r\n serve(\r\n '415 File type not supported',\r\n 415\r\n );\r\n return;\r\n }\r\n \r\n"],[0," //Do not"]],"start1":604,"start2":604,"length1":24,"length2":459},{"diffs":[[0,"||\r\n "],[1,"conf.restrictedType[contentType]"],[0,"\r\n ){\r\n "]],"start1":1140,"start2":1140,"length1":24,"length2":56}]],"length":2721,"saved":false} +{"ts":1377115991346,"patch":[[{"diffs":[[0," to Dirs"],[1," or restricted file types"],[0,"\r\n if"]],"start1":1076,"start2":1076,"length1":16,"length2":41}]],"length":2746,"saved":false} +{"ts":1377116068020,"patch":[[{"diffs":[[0," "],[-1,"response.writeHead(500, {'Content-Type': 'text/plain'});\r\n response.write(err + '\\n');"],[1,"serve(\r\n '500 '+err,\r\n 500"],[0,"\r\n "]],"start1":1460,"start2":1460,"length1":109,"length2":72},{"diffs":[[0," "],[-1,"response.end("],[0,");\r\n "]],"start1":1534,"start2":1534,"length1":37,"length2":24}]],"length":2696,"saved":false} +{"ts":1377116118876,"patch":[[{"diffs":[[0," = {"],[-1,"};"],[0,"\r\n "]],"start1":1619,"start2":1619,"length1":10,"length2":8},{"diffs":[[0," "],[-1,"if (c"],[1," 'C"],[0,"ontent"],[1,"-"],[0,"Type"],[-1,") \r\n headers['C"],[1,"' : conf.c"],[0,"ontent"],[-1,"-"],[0,"Type"],[-1,"'] = "],[1,"["],[0,"cont"]],"start1":1633,"start2":1633,"length1":69,"length2":46},{"diffs":[[0,"tentType"],[-1,";"],[1,"]\r\n }"],[0,"\r\n "]],"start1":1678,"start2":1678,"length1":17,"length2":32}]],"length":2686,"saved":false} +{"ts":1377116232346,"patch":[[{"diffs":[[0,"ite("],[-1,"file, 'binary'"],[0,");\r\n"]],"start1":1774,"start2":1774,"length1":22,"length2":8},{"diffs":[[0,",headers"],[1,",encoding"],[0,"){\r\n "]],"start1":1861,"start2":1861,"length1":16,"length2":25}]],"length":2681,"saved":false} +{"ts":1377116301471,"patch":[[{"diffs":[[0," }\r\n "],[1,"\r\n //defaults to utf8\r\n if(!encoding)\r\n encoding='utf8'\r\n \r\n \r\n"],[0," \r\n re"]],"start1":2060,"start2":2060,"length1":24,"length2":106},{"diffs":[[0,"ite(body"],[1,",encoding"],[0,");\r\n "]],"start1":2243,"start2":2243,"length1":16,"length2":25}]],"length":2772,"saved":false} +{"ts":1377116311181,"patch":[[{"diffs":[[0,"g='utf8'"],[1,";"],[0,"\r\n \r"]],"start1":2131,"start2":2131,"length1":16,"length2":17}]],"length":2773,"saved":false} +{"ts":1377116314759,"patch":[[{"diffs":[[0,"';\r\n"],[-1," \r\n \r\n"],[0," "]],"start1":2138,"start2":2138,"length1":21,"length2":8}]],"length":2760,"saved":false} +{"ts":1377116372740,"patch":[[{"diffs":[[0," "],[-1,"response.writeHead(200,"],[1,"serve(\r\n file,\r\n 200,\r\n "],[0," headers"],[-1,");"],[1,","],[0,"\r\n "]],"start1":1712,"start2":1712,"length1":41,"length2":85},{"diffs":[[0," "],[-1,"response.write("],[1," 'binary'\r\n "],[0,");\r\n "]],"start1":1799,"start2":1799,"length1":31,"length2":42},{"diffs":[[0," re"],[-1,"sponse.end()"],[1,"turn"],[0,";\r\n }"]],"start1":1839,"start2":1839,"length1":36,"length2":28}]],"length":2807,"saved":false} +{"ts":1377116735626,"patch":[[{"diffs":[[0,"d(), uri);\r\n"],[1," console.log(filename);\r\n"],[0," \r\n "]],"start1":339,"start2":339,"length1":24,"length2":60}]],"length":2843,"saved":false} +{"ts":1377116993145,"patch":[[{"diffs":[[0,";\r\n}"],[-1,"\r\n\r\nhttp.createServer(\r\n function (req, res) {\r\n res.writeHead(\r\n 200, \r\n {'Content-Type': 'text/html'}\r\n );\r\n fs.readFile(\r\n 'view/apps/chat.html', \r\n function (err, data) {\r\n if (err) throw err;\r\n res.end(data);\r\n }\r\n );\r\n }\r\n).listen(conf.port);\r\nconsole.log('Static file server running at\\n => http://localhost:' + port + '/\\nCTRL + C to shutdown');"]],"start1":2366,"start2":2366,"length1":477,"length2":4}]],"length":2370,"saved":false} +{"ts":1377117026617,"patch":[[{"diffs":[[0,"\r\n \r\n"],[1,"conf.port=8080;"],[0,"\r\nhttp.c"]],"start1":178,"start2":178,"length1":16,"length2":31}]],"length":2385,"saved":false} +{"ts":1377117134037,"patch":[[{"diffs":[[0,"ole.log("],[-1,"filename"],[1,"\r\n {\r\n uri : uri,\r\n filename: filename\r\n }\r\n "],[0,");\r\n "]],"start1":382,"start2":382,"length1":24,"length2":144}]],"length":2505,"saved":false} +{"ts":1377117289388,"patch":[[{"diffs":[[0," );\r\n "],[1," \r\n //Do not allow access to Dirs\r\n if (!filename){\r\n serve(\r\n '403 Access Denied',\r\n 403\r\n );\r\n return;\r\n }\r\n "],[0,"\r\n pa"]],"start1":514,"start2":514,"length1":24,"length2":229}]],"length":2710,"saved":false} +{"ts":1377117385907,"patch":[[{"diffs":[[0,"esponse) {\r\n"],[1," (\r\n function(){\r\n "],[0," var "]],"start1":246,"start2":246,"length1":24,"length2":68},{"diffs":[[0,", \r\n "],[1," "],[1," "],[0,"filename = path."]],"start1":351,"start2":351,"length1":32,"length2":40},{"diffs":[[0," "],[1," "],[0,"console."]],"start1":422,"start2":422,"length1":16,"length2":24},{"diffs":[[0," "],[1," "],[-1,"{\r\n"],[1," {\r\n "],[0," "]],"start1":460,"start2":460,"length1":19,"length2":35},{"diffs":[[0," "],[1," "],[1," "],[0,"filename: filena"]],"start1":527,"start2":527,"length1":32,"length2":40},{"diffs":[[0," "],[-1,"}\r\n"],[1," }\r\n "],[0," );\r\n"]],"start1":571,"start2":571,"length1":35,"length2":48},{"diffs":[[0," "],[1," "],[0,");\r\n \r\n "]],"start1":599,"start2":599,"length1":32,"length2":35},{"diffs":[[0," "],[1," "],[-1,"\r\n"],[1," \r\n "],[0," "],[1," "],[0,"//Do not"]],"start1":622,"start2":622,"length1":26,"length2":42},{"diffs":[[0,"ss to Dirs\r\n"],[1," "],[0," if ("]],"start1":675,"start2":675,"length1":24,"length2":32},{"diffs":[[0," "],[1," "],[1," "],[0,"serve(\r\n"],[1," "],[0," "]],"start1":720,"start2":720,"length1":32,"length2":48},{"diffs":[[0," "],[1," "],[1," "],[0,"403\r\n "]],"start1":794,"start2":794,"length1":32,"length2":40},{"diffs":[[0,"03\r\n "],[1," "],[1," "],[0,");\r\n "]],"start1":819,"start2":819,"length1":32,"length2":40},{"diffs":[[0,");\r\n "],[1," "],[1," "],[0,"return;\r\n "]],"start1":843,"start2":843,"length1":32,"length2":40},{"diffs":[[0," "],[1," "],[-1,"}\r\n \r\n"],[1," }\r\n \r\n "],[0," "]],"start1":880,"start2":880,"length1":21,"length2":45},{"diffs":[[0,"s(\r\n "],[1," "],[1," "],[0,"filename,\r\n "]],"start1":939,"start2":939,"length1":32,"length2":40},{"diffs":[[0," "],[1," "],[1," "],[0,"serveFile\r\n "]],"start1":974,"start2":974,"length1":24,"length2":32},{"diffs":[[0,"veFile\r\n "],[1," );\r\n }\r\n )(request,response"],[0,");\r\n }\r\n).lis"]],"start1":997,"start2":997,"length1":32,"length2":85}]],"length":2967,"saved":false} +{"ts":1377117458547,"patch":[[{"diffs":[[0,"ename = "],[-1,"path"],[1,"fs"],[0,".join(pr"]],"start1":378,"start2":378,"length1":20,"length2":18},{"diffs":[[0," "],[-1,"path"],[1,"fs"],[0,".exists("]],"start1":919,"start2":919,"length1":20,"length2":18}]],"length":2963,"saved":false} +{"ts":1377117474731,"patch":[[{"diffs":[[0,"ename = "],[-1,"fs"],[1,"path"],[0,".join(pr"]],"start1":378,"start2":378,"length1":18,"length2":20}]],"length":2965,"saved":false} +{"ts":1377117614875,"patch":[[{"diffs":[[0,"rl).pathname"],[-1,", "],[1,";"],[0,"\r\n "]],"start1":339,"start2":339,"length1":26,"length2":25},{"diffs":[[0," "],[-1," filename = path.join(process.cwd(), "],[1,"if ("],[0,"uri)"],[-1,";"],[1,"{"],[0,"\r\n "]],"start1":366,"start2":366,"length1":53,"length2":17},{"diffs":[[0," "],[-1,"console.log"],[1,"serve"],[0,"(\r\n "]],"start1":397,"start2":397,"length1":19,"length2":13},{"diffs":[[0," "],[-1,"{"],[1,"'403 Access Denied',"],[0,"\r\n "]],"start1":425,"start2":425,"length1":17,"length2":36},{"diffs":[[0," "],[1,"403\r\n"],[0," "],[-1,"uri"],[0," "],[-1,": uri,\r\n"],[1," "],[0," "]],"start1":475,"start2":475,"length1":28,"length2":23},{"diffs":[[0," "],[1,");\r\n"],[0," "]],"start1":488,"start2":488,"length1":32,"length2":36},{"diffs":[[0," "],[-1,"filename: filename"],[1," return;"],[0,"\r\n "]],"start1":522,"start2":522,"length1":26,"length2":17},{"diffs":[[0,"\n "],[1," }\r\n"],[0," }\r\n "]],"start1":536,"start2":536,"length1":32,"length2":36},{"diffs":[[0," }\r\n "],[-1,"}"],[1," "],[0,"\r\n "]],"start1":549,"start2":549,"length1":33,"length2":39},{"diffs":[[0," "],[1,"var filename = path.join(\r\n "],[0," "],[-1,");\r\n"],[0," "]],"start1":578,"start2":578,"length1":32,"length2":59},{"diffs":[[0," "],[1,"process.cwd(), "],[0,"\r\n "]],"start1":625,"start2":625,"length1":32,"length2":47},{"diffs":[[0," "],[-1,"//Do not allow access to Dirs"],[1," uri"],[0,"\r\n "]],"start1":670,"start2":670,"length1":37,"length2":19},{"diffs":[[0," "],[-1,"if (!filename){"],[1," );"],[0,"\r\n "]],"start1":699,"start2":699,"length1":23,"length2":14},{"diffs":[[0," "],[-1,"serve"],[1,"console.log"],[0,"(\r\n "]],"start1":715,"start2":715,"length1":37,"length2":43},{"diffs":[[0," "],[-1,"'403 Access Denied',\r\n"],[1,"{\r\n "],[0," "]],"start1":761,"start2":761,"length1":38,"length2":27},{"diffs":[[0," "],[1,"uri"],[0," "],[-1,"403"],[1," : uri,"],[0,"\r\n "]],"start1":784,"start2":784,"length1":39,"length2":46},{"diffs":[[0," "],[-1,");"],[1," filename: filename"],[0,"\r\n "]],"start1":820,"start2":820,"length1":34,"length2":58},{"diffs":[[0," "],[-1,"return;"],[1," }"],[0,"\r\n "]],"start1":868,"start2":868,"length1":39,"length2":37},{"diffs":[[0," "],[-1,"}"],[1," );"],[0,"\r\n "]],"start1":891,"start2":891,"length1":33,"length2":38}]],"length":2985,"saved":false} +{"ts":1377117698165,"patch":[[{"diffs":[[0," if (uri"],[1,"=='/'"],[0,"){\r\n "]],"start1":369,"start2":369,"length1":16,"length2":21},{"diffs":[[0," "],[-1,"serve(\r\n '403 Access Denied',\r\n 403\r\n );\r\n return;\r\n }"],[1,"uri=conf.server.index;"],[0,"\r\n "]],"start1":402,"start2":402,"length1":161,"length2":30},{"diffs":[[0," "],[-1," "],[0,"process."]],"start1":503,"start2":503,"length1":20,"length2":16},{"diffs":[[0," "],[-1," "],[-1," "],[0,"uri\r\n"],[-1," "],[0," "]],"start1":544,"start2":544,"length1":21,"length2":13},{"diffs":[[0," "],[1,"\r\n "],[1," "],[0," console."]],"start1":577,"start2":577,"length1":24,"length2":38},{"diffs":[[0," "],[-1," {\r\n "],[1,"{\r\n"],[0," "]],"start1":637,"start2":637,"length1":18,"length2":11},{"diffs":[[0," "],[-1," "],[0,"uri "]],"start1":660,"start2":660,"length1":17,"length2":16},{"diffs":[[0,": uri,\r\n"],[-1," "],[0," "]],"start1":676,"start2":676,"length1":20,"length2":16},{"diffs":[[0," "],[-1," }\r\n "],[1,"}\r\n"],[0," "]],"start1":736,"start2":736,"length1":35,"length2":27}]],"length":2841,"saved":false} +{"ts":1377117809212,"patch":[[{"diffs":[[0,"ri=='/')"],[-1,"{"],[0,"\r\n "]],"start1":375,"start2":375,"length1":17,"length2":16}]],"length":2840,"saved":false} +{"ts":1377117869733,"patch":[[{"diffs":[[0,"Config()"],[1,",\r\n Worker = require('webworker-threads').Worker"],[0,";\r\n \r"]],"start1":169,"start2":169,"length1":16,"length2":68}]],"length":2892,"saved":false} +{"ts":1377118015472,"patch":[[{"diffs":[[0,"esponse) {\r\n"],[1," var httpWorker = new Worker(\r\n serveFile\r\n );\r\n \r\n httpWorker.onmessage=fileServed;\r\n httpWorker.postMessage(request, response);\r\n"],[0," (\r\n "]],"start1":298,"start2":298,"length1":24,"length2":201}]],"length":3069,"saved":false} +{"contributors":[],"silentsave":false,"ts":1377119552517,"patch":[[{"diffs":[[0,"ire('../"],[-1,""],[0,""],[1,"../"],[0,"config/h"]],"start1":127,"start2":127,"length1":16,"length2":19},{"diffs":[[0," "],[-1,"serveFile\r\n );\r\n \r\n httpWorker.onmessage=fileServed;\r\n httpWorker.postMessage(request, response);\r\n (\r\n function(){\r\n var uri = url.parse(request.url).pathname;\r\n if (uri=='/')\r\n uri=conf.server.index;\r\n \r\n var filename = path.join(\r\n process.cwd(), \r\n uri\r\n );\r\n \r\n console.log(\r\n {\r\n uri : uri,\r\n filename: filename\r\n }\r\n );\r\n \r\n fs.exists(\r\n filename,\r\n serveFile\r\n );\r\n }\r\n )"],[1,"__dirname+'/workers/httpWorker.js'\r\n );\r\n \r\n httpWorker.postMessage"],[0,"(req"]],"start1":359,"start2":359,"length1":799,"length2":96},{"diffs":[[0,"request,"],[1," "],[0,"response"]],"start1":452,"start2":452,"length1":16,"length2":17},{"diffs":[[0," return;\r\n}"],[1,"\r\n\r\nfunction requestRecieved(request,response){\r\n var uri = url.parse(request.url).pathname;\r\n if (uri=='/')\r\n uri=conf.server.index;\r\n \r\n var filename = path.join(\r\n process.cwd(), \r\n uri\r\n );\r\n \r\n console.log(\r\n {\r\n uri : uri,\r\n filename: filename\r\n }\r\n );\r\n \r\n fs.exists(\r\n filename,\r\n serveFile\r\n );\r\n}"]],"start1":2358,"start2":2358,"length1":12,"length2":426}]],"length":2784,"saved":false} +{"ts":1377119570139,"patch":[[{"diffs":[[0," "],[-1,"function(request, response) {\r\n var httpWorker = new Worker(\r\n __dirname+'/workers/httpWorker.js'\r\n );\r\n \r\n httpWorker.postMessage(request, response);\r\n }"],[1,"requestRecieved"],[0,"\r\n)."]],"start1":278,"start2":278,"length1":204,"length2":23}]],"length":2603,"saved":false} +{"ts":1377119655852,"patch":[[{"diffs":[[0,"(exists) {\r\n"],[1," console.log(request);\r\n"],[0," if(!exis"]],"start1":341,"start2":341,"length1":24,"length2":51}]],"length":2630,"saved":false} +{"ts":1377119671909,"patch":[[{"diffs":[[0," {\r\n"],[-1," console.log(request);\r\n"],[0," "]],"start1":349,"start2":349,"length1":35,"length2":8}]],"length":2603,"saved":false} +{"ts":1377119698279,"patch":[[{"diffs":[[0," \r\n"],[-1," console.log(\r\n {\r\n uri : uri,\r\n filename: filename\r\n }\r\n );\r\n \r\n"],[0," "]],"start1":2422,"start2":2422,"length1":122,"length2":8}]],"length":2489,"saved":false} +{"ts":1377119704865,"patch":[[{"diffs":[[0," uri="],[1,"'/'+"],[0,"conf.ser"]],"start1":2309,"start2":2309,"length1":16,"length2":20}]],"length":2493,"saved":false} +{"ts":1377119728981,"patch":[[{"diffs":[[0," );\r\n \r\n"],[1," (\r\n function(){\r\n "],[0," fs.exist"]],"start1":2418,"start2":2418,"length1":24,"length2":60},{"diffs":[[0,"xists(\r\n "],[1," "],[1," "],[0,"filename,\r\n "]],"start1":2474,"start2":2474,"length1":32,"length2":40},{"diffs":[[0,"e,\r\n "],[1," "],[1," "],[0,"serveFile\r\n "]],"start1":2505,"start2":2505,"length1":24,"length2":32},{"diffs":[[0,"veFile\r\n"],[1," );\r\n }\r\n"],[0," );\r\n"]],"start1":2528,"start2":2528,"length1":16,"length2":43}]],"length":2572,"saved":false} +{"ts":1377119752074,"patch":[[{"diffs":[[0," );\r\n }\r\n "],[1,")(request,response"],[0,");\r\n}"]],"start1":2543,"start2":2543,"length1":29,"length2":47}]],"length":2590,"saved":false} +{"ts":1377119792761,"patch":[[{"diffs":[[0,"(exists) {\r\n"],[1," console.log(request)\r\n"],[0," if(!exis"]],"start1":341,"start2":341,"length1":24,"length2":50}]],"length":2616,"saved":false} +{"ts":1377119845606,"patch":[[{"diffs":[[0,"unction(){\r\n"],[1," console.log(request)\r\n"],[0," "]],"start1":2472,"start2":2472,"length1":24,"length2":58}]],"length":2650,"saved":false} +{"ts":1377119887784,"patch":[[{"diffs":[[0," "],[-1,"console.log(request)\r\n"],[1,"fs.exists(\r\n "],[0," "]],"start1":2488,"start2":2488,"length1":38,"length2":30},{"diffs":[[0," "],[-1,"fs.exists("],[1," filename,"],[0,"\r\n "]],"start1":2510,"start2":2510,"length1":34,"length2":35},{"diffs":[[0," f"],[-1,"ilename,\r\n"],[1,"unction(exists){\r\n "],[0," "]],"start1":2540,"start2":2540,"length1":34,"length2":46},{"diffs":[[0,"erveFile"],[1,"(exists)\r\n }"],[0,"\r\n "]],"start1":2591,"start2":2591,"length1":16,"length2":43}]],"length":2682,"saved":false} +{"ts":1377119924784,"patch":[[{"diffs":[[0," \r\n"],[-1," (\r\n function(){\r\n "],[0," "]],"start1":2452,"start2":2452,"length1":44,"length2":8},{"diffs":[[0,"s(\r\n "],[-1," "],[-1," "],[0,"filename,\r\n "]],"start1":2468,"start2":2468,"length1":32,"length2":24},{"diffs":[[0," filename,\r\n"],[-1," "],[0," func"]],"start1":2479,"start2":2479,"length1":32,"length2":24},{"diffs":[[0," "],[-1," "],[-1," "],[0,"serveFile(ex"]],"start1":2518,"start2":2518,"length1":32,"length2":24},{"diffs":[[0," "],[1,"}\r\n"],[0," "],[-1," }\r\n );\r\n }\r\n )(request,response"],[0,");\r\n"]],"start1":2553,"start2":2553,"length1":68,"length2":15}]],"length":2569,"saved":false} +{"ts":1377119937578,"patch":[[{"diffs":[[0,"e(exists"],[1,",request,response"],[0,")\r\n "]],"start1":2538,"start2":2538,"length1":16,"length2":33}]],"length":2586,"saved":false} +{"ts":1377119945966,"patch":[[{"diffs":[[0,"eFile(exists"],[1,",request,response"],[0,") {\r\n con"]],"start1":336,"start2":336,"length1":24,"length2":41}]],"length":2603,"saved":false} +{"ts":1377119961822,"patch":[[{"diffs":[[0," {\r\n"],[-1," console.log(request)\r\n"],[0," "]],"start1":366,"start2":366,"length1":34,"length2":8}]],"length":2577,"saved":false} +{"ts":1377119981584,"patch":[[{"diffs":[[0,"e(exists"],[-1,",request,response"],[0,") {\r\n "]],"start1":340,"start2":340,"length1":33,"length2":16}]],"length":2560,"saved":false} +{"ts":1377120002557,"patch":[[{"diffs":[[0," "],[-1,"serveFile(exists,"],[1,"(function(){\r\n serveFile(exists)\r\n })("],[0,"requ"]],"start1":2500,"start2":2500,"length1":25,"length2":68}]],"length":2603,"saved":false} +{"ts":1377120026789,"patch":[[{"diffs":[[0,"(exists) {\r\n"],[1," console.log(response)\r\n"],[0," if(!exis"]],"start1":341,"start2":341,"length1":24,"length2":51}]],"length":2630,"saved":false} +{"ts":1377120073564,"patch":[[{"diffs":[[0,"ists"],[-1,") {\r\n console.log("],[1,",request,"],[0,"resp"]],"start1":344,"start2":344,"length1":29,"length2":17},{"diffs":[[0,"st,response)"],[1," {"],[0,"\r\n if(!ex"]],"start1":354,"start2":354,"length1":24,"length2":26},{"diffs":[[0," "],[-1,"(function(){\r\n serveFile(exists)\r\n })(request"],[1,"serveFile(exists"],[0,",res"]],"start1":2517,"start2":2517,"length1":75,"length2":24}]],"length":2569,"saved":false} +{"ts":1377120085752,"patch":[[{"diffs":[[0,"(exists,"],[-1,"request,"],[0,"response"]],"start1":341,"start2":341,"length1":24,"length2":16}]],"length":2561,"saved":false} +{"ts":1377120150088,"patch":[[{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," '404"]],"start1":381,"start2":381,"length1":32,"length2":55},{"diffs":[[0,"'404 MIA',\r\n"],[-1,""],[0," "]],"start1":432,"start2":432,"length1":24,"length2":24},{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," '415"]],"start1":624,"start2":624,"length1":32,"length2":55},{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," '415"]],"start1":842,"start2":842,"length1":32,"length2":55},{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," '403"]],"start1":1152,"start2":1152,"length1":32,"length2":55},{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," "]],"start1":1412,"start2":1412,"length1":32,"length2":63},{"diffs":[[0," serve(\r\n"],[1," response,\r\n"],[0," "]],"start1":1695,"start2":1695,"length1":32,"length2":59},{"diffs":[[0,"}\r\n );\r\n}\r\n\r\n"],[-1,""],[0,"function serve(b"]],"start1":1880,"start2":1880,"length1":32,"length2":32},{"diffs":[[0,"n serve("],[1,"response,"],[0,"body,sta"]],"start1":1903,"start2":1903,"length1":16,"length2":25}]],"length":2720,"saved":false} +{"ts":1377120368175,"patch":[[{"diffs":[[0," serveFile("],[1,"filename,"],[0,"exists,response)"]],"start1":2666,"start2":2666,"length1":32,"length2":41}]],"length":2729,"saved":false} +{"ts":1377120376555,"patch":[[{"diffs":[[0,"rveFile("],[1,"filename,"],[0,"exists,r"]],"start1":334,"start2":334,"length1":16,"length2":25}]],"length":2738,"saved":false} +{"ts":1377120488205,"patch":[[{"diffs":[[0,"me);\r\n \r\n"],[1," console.log(contentType)\r\n \r\n"],[0," //Only s"]],"start1":553,"start2":553,"length1":24,"length2":60}]],"length":2774,"saved":false} +{"ts":1377120529817,"patch":[[{"diffs":[[0,"ame)"],[-1,";\r\n \r\n console.log(contentType)"],[1,".slice(1);"],[0,"\r\n "]],"start1":552,"start2":552,"length1":45,"length2":18}]],"length":2747,"saved":false} +{"ts":1377120767769,"patch":[[{"diffs":[[0,"ig()"],[-1,",\r\n Worker = require('webworker-threads').Worker"],[0,";\r\n "]],"start1":176,"start2":176,"length1":60,"length2":8}]],"length":2695,"saved":false} +{"ts":1377121164377,"patch":[[{"diffs":[[0," "],[-1,"process.cwd()"],[1,"conf.rootDIR"],[0,", \r\n"]],"start1":2516,"start2":2516,"length1":21,"length2":20}]],"length":2694,"saved":false} diff --git a/.c9revisions/view/poc/chat.html.c9save b/.c9revisions/view/poc/chat.html.c9save new file mode 100644 index 0000000..b5e8475 --- /dev/null +++ b/.c9revisions/view/poc/chat.html.c9save @@ -0,0 +1,2 @@ +{"ts":1377018386171,"silentsave":true,"restoring":false,"patch":[[{"diffs":[[1,"<!DOCTYPE html>\n<html>\n <head>\n <title>Chaos Chat</title>\n <!-- NEED TO FIX URL!! -->\n <script src=\"http://chaos-audio-platform.riaevangelist.c9.io/socket.io/socket.io.js\"></script>\n <script>\n //NEED TO EXTERNALIZE CONFIG AND SCRIPTS!!\n \n \n //Chat Class\n var Chat=function(){\n function joinRoom(){\n var room=document.getElementById(\n 'room-name'\n ).value;\n \n if(socket.room)\n leaveRoom();\n \n socket.room=room;\n socket.emit(\n 'room.join',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML=socket.room;\n var join=document.getElementById('modal-join');\n join.style.opacity=0;\n join.style.zIndex=0;\n document.getElementById('chat-primary').style.opacity=1;\n document.getElementById('playlist-area').style.opacity=1;\n document.querySelector('main').style.zIndex=5\n }\n \n function leaveRoom(){\n socket.emit(\n 'room.leave',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML='nowhere';\n }\n \n function setHandle(e){\n if (webkitNotifications.checkPermission() != 0) {\n webkitNotifications.requestPermission();\n }\n \n socket.handle=document.getElementById(\n 'user-handle'\n ).value\n \n socket.emit(\n 'set.handle',\n {\n handle:socket.handle\n }\n )\n \n document.getElementById('user-current-handle').innerHTML=socket.handle;\n var handle=document.getElementById('modal-handle');\n handle.style.opacity=0;\n handle.style.zIndex=0;\n var join=document.getElementById('modal-join');\n join.style.opacity=1;\n join.style.zIndex=5;\n }\n \n function fromRoom(data){\n var box=document.getElementById(\n 'chat-primary-window'\n );\n box.innerHTML+='<li><p>'+\n data.handle+':<pre>'+\n data.msg+\n '</pre></p></li>';\n \n box.scrollTop=box.scrollHeight;\n //should not scroll down if user is not at the bottom.\n }\n \n function toRoom(){\n if(!socket.room)\n return;\n \n var input=document.getElementById(\n 'chat-primary-input'\n );\n var data={\n msg:input.value\n }\n input.value='';\n socket.emit(\n 'room.chat',\n data\n );\n \n data.handle=socket.handle;\n fromRoom(data);\n }\n \n function fromUser(data){\n //show private message\n }\n \n function toUser(){\n //send private message\n }\n \n function userOnline(data){\n var notification=webkitNotifications.createNotification(\n '', \n data.handle+' is Online', \n data.handle+' has just come online on the server'\n );\n notification.show();\n (\n function(){\n setTimeout(\n function() {\n notification.close();\n }, \n 1000\n );\n }\n )(notification)\n }\n \n return {\n room : {\n join : joinRoom,\n leave : leaveRoom,\n chat : toRoom\n },\n user : {\n chat:toUser\n },\n set : {\n handle:setHandle\n },\n on : {\n room: {\n chat:fromRoom\n },\n user: {\n chat : fromUser,\n online : userOnline\n }\n }\n };\n }\n \n \n //config\n var conf={\n remote:{\n base : 'http://chaos-audio-platform.riaevangelist.c9.io',\n socket : '',\n port : ':80'\n }\n };\n \n \n \n //begin chat app code\n \n var socket = io.connect(\n [\n conf.remote.base,\n conf.remote.socket,\n conf.remote.port\n ].join('')\n );\n \n \n var chat=new Chat();\n \n function init(){\n var setHandle = document.getElementById('set-handle'),\n roomJoin = document.getElementById('room-join'),\n chatPost = document.getElementById('chat-primary-post');\n \n setHandle.addEventListener(\n 'click',\n chat.set.handle\n );\n \n roomJoin.addEventListener(\n 'click',\n chat.room.join\n );\n \n chatPost.addEventListener(\n 'click',\n chat.room.chat\n );\n \n socket.on(\n 'room.chat',\n chat.on.room.chat\n )\n \n socket.on(\n 'online',\n chat.on.user.online\n )\n \n //NEED to add private chatting functionality and UI\n }\n \n window.addEventListener(\n 'load',\n init\n );\n </script>\n <style>\nhtml,body{\n padding:0;\n margin:0;\n height:100%;\n}\n\nbody{\n font-family:helvetica, arial, verdana;\n font-size:16px;\n background:rgb(231,249,255);\n color:rgb(167,185,191);\n overflow:auto;\n}\n\nbody *{\n position:relative;\n}\n\nheader{\n background:rgb(69,142,166);\n box-shadow:0 4px 5px rgba(167,185,191,.5);\n padding:20px;\n position:fixed;\n top:0;\n left:0;\n width:calc(100% - 40px);\n color:rgb(231,249,255);\n z-index:1000;\n}\n\nheader h1 {\n margin:0;\n}\n\nmain{\n height:calc(100% - 120px);\n top:80px;\n}\n\nfooter{\n background:rgb(69,142,166);\n box-shadow:0 -3px 4px rgba(167,185,191,.5);\n padding:10px;\n position:fixed;\n bottom:0;\n left:0;\n width:calc(100% - 20px);\n height:20px;\n color:rgb(231,249,255);\n}\n\n.chat-primary{\n width:calc(75% - 20px);\n padding:10px;\n height:300px;\n opacity:0;\n position:absolute;\n left:0;\n top:0;\n transition:opacity 500ms;\n}\n \n.chat-window{\n list-style:none;\n height:250px;\n box-shadow:inset 0 0 30px rgb(212,244,255),\n 0 0 4px rgb(167,185,191);\n margin:0;\n padding:2px 9px;\n z-index:100;\n margin-bottom:5px;\n overflow-y:auto;\n}\n\n.chat-input{\n width:100%;\n height:50px;\n border:none;\n}\n\ntextarea,\ninput{\n height:50px;\n border:none;\n box-shadow:inset 0 26px 30px rgb(212, 244, 255),\n 0 0 4px rgba(167,185,191,.75);\n border-radius:5px;\n}\n\ninput{\n line-height:50px;\n font-size:20px;\n}\n\n.playlist{\n width:calc(25% - 10px);\n padding:5px;\n height:300px;\n opacity:0;\n position:absolute;\n right:0;\n top:0;\n transition:opacity 500ms;\n}\n\n.modal{\n position:absolute;\n top:200px;\n left:50%;\n padding:50px;\n margin:0 0 0 -150px;\n background:rgb(212,244,255);\n border-radius:8px;\n box-shadow:0 0 8px rgba(167,185,191,.7),\n inset 0 5px 20px rgb(231,249,255);\n transition:opacity 500ms;\n}\n\n.modal h2{\n margin-top:0;\n}\n\n.modal-join{\n opacity:0;\n}\n </style>\n </head>\n <body>\n <header>\n <h1>Chaos Chat</h1>\n </header>\n <main>\n <section\n id='chat-primary' \n class='chat-primary'>\n <ul \n id='chat-primary-window' \n class='chat-window'></ul>\n <textarea \n id='chat-primary-input' \n class='chat-input'></textarea>\n <button \n id='chat-primary-post' class='post'>post</button>\n </section>\n <section id='playlist-area' class='playlist'>\n <h2>\n Playlist\n </h2>\n <ul id='playlist'></ul>\n </section>\n </main>\n <section id='modal-join' class='modal modal-join'>\n <h2>Join a Room</h2>\n <p>try chaos</p>\n <input id='room-name'/>\n <button \n id='room-join' \n data-event='room.join'>Join</button>\n </section>\n <section id='modal-handle' class='modal modal-handle'>\n <h2>Set Your Handle</h2>\n <input id='user-handle' />\n <button \n id='set-handle' \n data-event='set.handle'>Set</button>\n </section>\n <footer>\n Chatting as <span id='user-current-handle'>nobody</span> in <span id='user-current-room'>nowhere</span> room\n </footer>\n </body>\n</html>\n"]],"start1":0,"start2":0,"length1":0,"length2":10951}]],"length":10951} +{"contributors":[],"silentsave":false,"ts":1377122279381,"patch":[[{"diffs":[[0," <"],[-1,"!-- NEED TO FIX URL!! -->\n <script src=\"http://chaos-audio-platform.riaevangelist.c9.io/socket.io/socket.io.js\"></script>\n <script>\n //NEED TO EXTERNALIZE CONFIG AND SCRIPTS!!\n \n \n //Chat Class\n var Chat=function(){\n function joinRoom(){\n var room=document.getElementById(\n 'room-name'\n ).value;\n \n if(socket.room)\n leaveRoom();\n \n socket.room=room;\n socket.emit(\n 'room.join',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML=socket.room;\n var join=document.getElementById('modal-join');\n join.style.opacity=0;\n join.style.zIndex=0;\n document.getElementById('chat-primary').style.opacity=1;\n document.getElementById('playlist-area').style.opacity=1;\n document.querySelector('main').style.zIndex=5\n }\n \n function leaveRoom(){\n socket.emit(\n 'room.leave',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML='nowhere';\n }\n \n function setHandle(e){\n if (webkitNotifications.checkPermission() != 0) {\n webkitNotifications.requestPermission();\n }\n \n socket.handle=document.getElementById(\n 'user-handle'\n ).value\n \n socket.emit(\n 'set.handle',\n {\n handle:socket.handle\n }\n )\n \n document.getElementById('user-current-handle').innerHTML=socket.handle;\n var handle=document.getElementById('modal-handle');\n handle.style.opacity=0;\n handle.style.zIndex=0;\n var join=document.getElementById('modal-join');\n join.style.opacity=1;\n join.style.zIndex=5;\n }\n \n function fromRoom(data){\n var box=document.getElementById(\n 'chat-primary-window'\n );\n box.innerHTML+='<li><p>'+\n data.handle+':<pre>'+\n data.msg+\n '</pre></p></li>';\n \n box.scrollTop=box.scrollHeight;\n //should not scroll down if user is not at the bottom.\n }\n \n function toRoom(){\n if(!socket.room)\n return;\n \n var input=document.getElementById(\n 'chat-primary-input'\n );\n var data={\n msg:input.value\n }\n input.value='';\n socket.emit(\n 'room.chat',\n data\n );\n \n data.handle=socket.handle;\n fromRoom(data);\n }\n \n function fromUser(data){\n //show private message\n }\n \n function toUser(){\n //send private message\n }\n \n function userOnline(data){\n var notification=webkitNotifications.createNotification(\n '', \n data.handle+' is Online', \n data.handle+' has just come online on the server'\n );\n notification.show();\n (\n function(){\n setTimeout(\n function() {\n notification.close();\n }, \n 1000\n );\n }\n )(notification)\n }\n \n return {\n room : {\n join : joinRoom,\n leave : leaveRoom,\n chat : toRoom\n },\n user : {\n chat:toUser\n },\n set : {\n handle:setHandle\n },\n on : {\n room: {\n chat:fromRoom\n },\n user: {\n chat : fromUser,\n online : userOnline\n }\n }\n };\n }\n \n \n //config\n var conf={\n remote:{\n base : 'http://chaos-audio-platform.riaevangelist.c9.io',\n socket : '',\n port : ':80'\n }\n };\n \n \n \n //begin chat app code\n \n var socket = io.connect(\n [\n conf.remote.base,\n conf.remote.socket,\n conf.remote.port\n ].join('')\n );\n \n \n var chat=new Chat();\n \n function init(){\n var setHandle = document.getElementById('set-handle'),\n roomJoin = document.getElementById('room-join'),\n chatPost = document.getElementById('chat-primary-post');\n \n setHandle.addEventListener(\n 'click',\n chat.set.handle\n );\n \n roomJoin.addEventListener(\n 'click',\n chat.room.join\n );\n \n chatPost.addEventListener(\n 'click',\n chat.room.chat\n );\n \n socket.on(\n 'room.chat',\n chat.on.room.chat\n )\n \n socket.on(\n 'online',\n chat.on.user.online\n )\n \n //NEED to add private chatting functionality and UI\n }\n \n window.addEventListener(\n 'load',\n init\n );\n </script>\n <style>\nhtml,body{\n padding:0;\n margin:0;\n height:100%;\n}\n\nbody{\n font-family:helvetica, arial, verdana;\n font-size:16px;\n background:rgb(231,249,255);\n color:rgb(167,185,191);\n overflow:auto;\n}\n\nbody *{\n position:relative;\n}\n\nheader{\n background:rgb(69,142,166);\n box-shadow:0 4px 5px rgba(167,185,191,.5);\n padding:20px;\n position:fixed;\n top:0;\n left:0;\n width:calc(100% - 40px);\n color:rgb(231,249,255);\n z-index:1000;\n}\n\nheader h1 {\n margin:0;\n}\n\nmain{\n height:calc(100% - 120px);\n top:80px;\n}\n\nfooter{\n background:rgb(69,142,166);\n box-shadow:0 -3px 4px rgba(167,185,191,.5);\n padding:10px;\n position:fixed;\n bottom:0;\n left:0;\n width:calc(100% - 20px);\n height:20px;\n color:rgb(231,249,255);\n}\n\n.chat-primary{\n width:calc(75% - 20px);\n padding:10px;\n height:300px;\n opacity:0;\n position:absolute;\n left:0;\n top:0;\n transition:opacity 500ms;\n}\n \n.chat-window{\n list-style:none;\n height:250px;\n box-shadow:inset 0 0 30px rgb(212,244,255),\n 0 0 4px rgb(167,185,191);\n margin:0;\n padding:2px 9px;\n z-index:100;\n margin-bottom:5px;\n overflow-y:auto;\n}\n\n.chat-input{\n width:100%;\n height:50px;\n border:none;\n}\n\ntextarea,\ninput{\n height:50px;\n border:none;\n box-shadow:inset 0 26px 30px rgb(212, 244, 255),\n 0 0 4px rgba(167,185,191,.75);\n border-radius:5px;\n}\n\ninput{\n line-height:50px;\n font-size:20px;\n}\n\n.playlist{\n width:calc(25% - 10px);\n padding:5px;\n height:300px;\n opacity:0;\n position:absolute;\n right:0;\n top:0;\n transition:opacity 500ms;\n}\n\n.modal{\n position:absolute;\n top:200px;\n left:50%;\n padding:50px;\n margin:0 0 0 -150px;\n background:rgb(212,244,255);\n border-radius:8px;\n box-shadow:0 0 8px rgba(167,185,191,.7),\n inset 0 5px 20px rgb(231,249,255);\n transition:opacity 500ms;\n}\n\n.modal h2{\n margin-top:0;\n}\n\n.modal-join{\n opacity:0;\n}\n </style"],[1,"link rel='stylesheet' href='css/chat.css'/>\n <!-- NEED TO FIX URL!! -->\n <script src='http://chaos-audio-platform.riaevangelist.c9.io/socket.io/socket.io.js'></script>\n <script src='js/chat.js'></script"],[0,">\n "]],"start1":73,"start2":73,"length1":9395,"length2":231}]],"length":1787,"saved":false} diff --git a/.c9revisions/view/poc/css/chat.css.c9save b/.c9revisions/view/poc/css/chat.css.c9save new file mode 100644 index 0000000..35f9a88 --- /dev/null +++ b/.c9revisions/view/poc/css/chat.css.c9save @@ -0,0 +1,2 @@ +{"ts":1377122087768,"silentsave":true,"restoring":false,"patch":[[]],"length":0} +{"contributors":[],"silentsave":false,"ts":1377122089792,"patch":[[{"diffs":[[1,"html,body{\n padding:0;\n margin:0;\n height:100%;\n}\n\nbody{\n font-family:helvetica, arial, verdana;\n font-size:16px;\n background:rgb(231,249,255);\n color:rgb(167,185,191);\n overflow:auto;\n}\n\nbody *{\n position:relative;\n}\n\nheader{\n background:rgb(69,142,166);\n box-shadow:0 4px 5px rgba(167,185,191,.5);\n padding:20px;\n position:fixed;\n top:0;\n left:0;\n width:calc(100% - 40px);\n color:rgb(231,249,255);\n z-index:1000;\n}\n\nheader h1 {\n margin:0;\n}\n\nmain{\n height:calc(100% - 120px);\n top:80px;\n}\n\nfooter{\n background:rgb(69,142,166);\n box-shadow:0 -3px 4px rgba(167,185,191,.5);\n padding:10px;\n position:fixed;\n bottom:0;\n left:0;\n width:calc(100% - 20px);\n height:20px;\n color:rgb(231,249,255);\n}\n\n.chat-primary{\n width:calc(75% - 20px);\n padding:10px;\n height:300px;\n opacity:0;\n position:absolute;\n left:0;\n top:0;\n transition:opacity 500ms;\n}\n \n.chat-window{\n list-style:none;\n height:250px;\n box-shadow:inset 0 0 30px rgb(212,244,255),\n 0 0 4px rgb(167,185,191);\n margin:0;\n padding:2px 9px;\n z-index:100;\n margin-bottom:5px;\n overflow-y:auto;\n}\n\n.chat-input{\n width:100%;\n height:50px;\n border:none;\n}\n\ntextarea,\ninput{\n height:50px;\n border:none;\n box-shadow:inset 0 26px 30px rgb(212, 244, 255),\n 0 0 4px rgba(167,185,191,.75);\n border-radius:5px;\n}\n\ninput{\n line-height:50px;\n font-size:20px;\n}\n\n.playlist{\n width:calc(25% - 10px);\n padding:5px;\n height:300px;\n opacity:0;\n position:absolute;\n right:0;\n top:0;\n transition:opacity 500ms;\n}\n\n.modal{\n position:absolute;\n top:200px;\n left:50%;\n padding:50px;\n margin:0 0 0 -150px;\n background:rgb(212,244,255);\n border-radius:8px;\n box-shadow:0 0 8px rgba(167,185,191,.7),\n inset 0 5px 20px rgb(231,249,255);\n transition:opacity 500ms;\n}\n\n.modal h2{\n margin-top:0;\n}\n\n.modal-join{\n opacity:0;\n}"]],"start1":0,"start2":0,"length1":0,"length2":1992}]],"length":1992,"saved":false} diff --git a/.c9revisions/view/poc/js/chat.js.c9save b/.c9revisions/view/poc/js/chat.js.c9save new file mode 100644 index 0000000..46a1e46 --- /dev/null +++ b/.c9revisions/view/poc/js/chat.js.c9save @@ -0,0 +1,5 @@ +{"ts":1377122027957,"silentsave":true,"restoring":false,"patch":[[]],"length":0} +{"contributors":[],"silentsave":false,"ts":1377122042341,"patch":[[{"diffs":[[1,"//Chat Class\nvar Chat=function(){\n function joinRoom(){\n var room=document.getElementById(\n 'room-name'\n ).value;\n \n if(socket.room)\n leaveRoom();\n \n socket.room=room;\n socket.emit(\n 'room.join',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML=socket.room;\n var join=document.getElementById('modal-join');\n join.style.opacity=0;\n join.style.zIndex=0;\n document.getElementById('chat-primary').style.opacity=1;\n document.getElementById('playlist-area').style.opacity=1;\n document.querySelector('main').style.zIndex=5\n }\n \n function leaveRoom(){\n socket.emit(\n 'room.leave',\n {\n room:socket.room\n }\n );\n \n document.getElementById('user-current-room').innerHTML='nowhere';\n }\n \n function setHandle(e){\n if (webkitNotifications.checkPermission() != 0) {\n webkitNotifications.requestPermission();\n }\n \n socket.handle=document.getElementById(\n 'user-handle'\n ).value\n \n socket.emit(\n 'set.handle',\n {\n handle:socket.handle\n }\n )\n \n document.getElementById('user-current-handle').innerHTML=socket.handle;\n var handle=document.getElementById('modal-handle');\n handle.style.opacity=0;\n handle.style.zIndex=0;\n var join=document.getElementById('modal-join');\n join.style.opacity=1;\n join.style.zIndex=5;\n }\n \n function fromRoom(data){\n var box=document.getElementById(\n 'chat-primary-window'\n );\n box.innerHTML+='<li><p>'+\n data.handle+':<pre>'+\n data.msg+\n '</pre></p></li>';\n \n box.scrollTop=box.scrollHeight;\n //should not scroll down if user is not at the bottom.\n }\n \n function toRoom(){\n if(!socket.room)\n return;\n \n var input=document.getElementById(\n 'chat-primary-input'\n );\n var data={\n msg:input.value\n }\n input.value='';\n socket.emit(\n 'room.chat',\n data\n );\n \n data.handle=socket.handle;\n fromRoom(data);\n }\n \n function fromUser(data){\n //show private message\n }\n \n function toUser(){\n //send private message\n }\n \n function userOnline(data){\n var notification=webkitNotifications.createNotification(\n '', \n data.handle+' is Online', \n data.handle+' has just come online on the server'\n );\n notification.show();\n (\n function(){\n setTimeout(\n function() {\n notification.close();\n }, \n 1000\n );\n }\n )(notification)\n }\n \n return {\n room : {\n join : joinRoom,\n leave : leaveRoom,\n chat : toRoom\n },\n user : {\n chat:toUser\n },\n set : {\n handle:setHandle\n },\n on : {\n room: {\n chat:fromRoom\n },\n user: {\n chat : fromUser,\n online : userOnline\n }\n }\n };\n}\n\n\n//config\nvar conf={\n remote:{\n base : 'http://chaos-audio-platform.riaevangelist.c9.io',\n socket : '',\n port : ':80'\n }\n};\n\n\n\n//begin chat app code\n\nvar socket = io.connect(\n [\n conf.remote.base,\n conf.remote.socket,\n conf.remote.port\n ].join('')\n);\n\n\nvar chat=new Chat();\n\nfunction init(){\n var setHandle = document.getElementById('set-handle'),\n roomJoin = document.getElementById('room-join'),\n chatPost = document.getElementById('chat-primary-post');\n \n setHandle.addEventListener(\n 'click',\n chat.set.handle\n );\n \n roomJoin.addEventListener(\n 'click',\n chat.room.join\n );\n \n chatPost.addEventListener(\n 'click',\n chat.room.chat\n );\n \n socket.on(\n 'room.chat',\n chat.on.room.chat\n )\n \n socket.on(\n 'online',\n chat.on.user.online\n )\n \n //NEED to add private chatting functionality and UI\n}\n\nwindow.addEventListener(\n 'load',\n init\n);"]],"start1":0,"start2":0,"length1":0,"length2":4627}]],"length":4627,"saved":false} +{"contributors":[],"silentsave":false,"ts":1377123653990,"patch":[[{"diffs":[[0,"\n )\n \n"],[1," socket.on(\n 'connect',\n chat.on.connect\n )\n \n"],[0," //NEED t"]],"start1":4508,"start2":4508,"length1":24,"length2":93}]],"length":4696,"saved":false} +{"ts":1377123704978,"patch":[[{"diffs":[[0," room"],[1," "],[0,": {\n"],[-1,""],[0," "]],"start1":3389,"start2":3389,"length1":20,"length2":24},{"diffs":[[0," user"],[1," "],[0,": {\n "]],"start1":3458,"start2":3458,"length1":16,"length2":20},{"diffs":[[0," userOnline\n"],[-1,""],[0," "]],"start1":3535,"start2":3535,"length1":24,"length2":24},{"diffs":[[0,"ne\n }"],[1,",\n connect : reConnect"],[0,"\n }\n }"]],"start1":3544,"start2":3544,"length1":32,"length2":65}]],"length":4737,"saved":false} +{"ts":1377123825814,"patch":[[{"diffs":[[0,"\n }\n \n"],[1," function reConnect(){\n if(socket.handle)\n socket.emit(\n 'set.handle',\n {\n handle:socket.handle\n }\n );\n \n if(socket.room)\n socket.emit(\n 'room.join',\n {\n room:socket.room\n }\n );\n }\n \n"],[0," return {"]],"start1":3096,"start2":3096,"length1":24,"length2":409}]],"length":5122,"saved":false} |
