Newer
Older
"use strict";
var exec = require("child_process").exec,
level = require("levelup"),
http = require("combi-server")({
port: 8080,
appname: "Pompey Plays",
useAnsi: true,
websocket: {
enabled: true,
lib: true
}
}),
Form = require("formidable"),
q = require("q"),
reroute = require("./local_modules/reroute"),
path = require("path"),
x = require("./local_modules/xbridge"),
Route = require("combi-server-router"),
router = new Route.Router(),
ni = require("os").networkInterfaces();
const conf = require("./conf");
console.dir(ni);
reroute.add("/", "/index.html");
reroute.add("/help", "/help.html");
reroute.add("/log", "/chat.html");
http.use(reroute.middleware);
http.use((req, res, next) => {
let def = q.defer();
if(req.method.toLowerCase() == "post") {
let form = new Form.IncomingForm();
form.parse(req, (err, fields, files) => {
if(err) {
def.reject(err);
}
req.body = fields;
def.resolve(next());
});
} else {
def.resolve(next());
}
return def.promise;
});
http.static(path.join(__dirname, "public"));
// router.post("/token", (req, res) => {
//
// });
http.use(Route.middleware(router));
http.ws.do("input:json", function(conn, data) {
x.do(data.key)
.then(function(e) {
conn.sendPayload("input-response", x.errs[e]);
http.ws.broadcast(JSON.stringify({
type: "chat",
payload: {
client: conn._id,
message: "pressed " + data.key,
mode: "self"
}
}))
})
.catch(function(err) {
conn.sendPayload("input-response", {
code: 400,
message: err.message
})
});
})