67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
let http = require("http");
|
|
let express = require("express");
|
|
let compression = require("compression");
|
|
let {resolve} = require("path");
|
|
let auth = require("express-basic-auth");
|
|
|
|
const {
|
|
termoutput,
|
|
HTTP_PORT,
|
|
NETWORK_MASK,
|
|
HTTP_AUTH,
|
|
HTTP_AUTH_USERNAME,
|
|
HTTP_AUTH_USERPASSWORD
|
|
} = require("./config");
|
|
|
|
let server = http.createServer();
|
|
const stats = require("./stats");
|
|
let app = express();
|
|
server.addListener("request", app);
|
|
|
|
app.use(compression({
|
|
level: 9
|
|
}));
|
|
|
|
server.listen(HTTP_PORT,NETWORK_MASK,() => {
|
|
termoutput && console.log("HTTP Service Running...");
|
|
});
|
|
server.addListener("error",(err)=> {
|
|
console.err(err)
|
|
})
|
|
exports.http = server;
|
|
|
|
let authorize = auth({
|
|
users:{
|
|
[HTTP_AUTH_USERNAME]: HTTP_AUTH_USERPASSWORD
|
|
},
|
|
challenge: true
|
|
});
|
|
|
|
app.get("/script",(request, response)=>{
|
|
response.sendFile(resolve("./script/index.js"))
|
|
});
|
|
app.get("/test",(request, response)=>{
|
|
response.sendFile(resolve("./script/test.html"))
|
|
});
|
|
app.get("/index.js.map",(request, response)=>{
|
|
response.sendFile(resolve("./script/index.js.map"))
|
|
});
|
|
if(HTTP_AUTH)
|
|
{
|
|
app.get("/stream",(request, response)=>{
|
|
response.sendFile(resolve("./public/index.html"))
|
|
});
|
|
app.use("/stream",express.static(resolve("./public")));
|
|
app.get("/",authorize,(request, response)=>{
|
|
response.sendFile(resolve("./script/index.html"))
|
|
});
|
|
app.post("/stats",authorize,(request, response)=>{
|
|
response.json(stats.others);
|
|
});
|
|
}
|
|
|
|
app.get("*",(request, response)=>{
|
|
response.sendFile(resolve("./script/status.xml"))
|
|
}); |