EUS/modules/request_handler.js

50 lines
2.4 KiB
JavaScript

"use strict";
let d = new Date(),
startTime,
endTime,
filesC;
module.exports = {
handle: function(logger, image_json, internals, emoji, config, fs, chalk, req, res, dirname) {
d = new Date();
startTime = d.getTime();
res.set('Server-Type', 'Revolution EUS');
if (req.url == "/" || req.url == "/index.html") {
fs.readFile('./files/index.html', function(err, data) {
if (err) throw err;
fs.readdir(dirname+"i/", (err, files) => {
if (err) throw err;
filesC = data.toString().replace("|replaceVersion|", internals.version).replace("|replaceInstance|", config.server.instance_type);
res.send(filesC);
d = new Date();
endTime = d.getTime();
logger.log(`${internals.types.b}: ${req.method}`, emoji.page, `${req.ip} | ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`)
});
});
} else {
let urs = ""+req.url; urs = urs.split("/")[1];
fs.access(config.server.image_dir+urs+image_json[urs], error => {
if (error) {
fs.access("./files"+req.url, error => {
if (error) {
res.status(404).end("404!");
d = new Date();
endTime = d.getTime();
logger.log(`${internals.types.b}: ${req.method}`, emoji.cross, `${req.ip} | ${chalk.red("[404]")} ${req.url} ${endTime - startTime}ms`);
} else {
res.sendFile(dirname+"files"+req.url);
d = new Date();
endTime = d.getTime();
logger.log(`${internals.types.b}: ${req.method}`, emoji.heavy_check, `${req.ip} | ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
}
});
} else {
res.sendFile(dirname+"i/"+urs+image_json[urs]);
d = new Date();
endTime = d.getTime();
logger.log(`${internals.types.b}: ${req.method}`, emoji.heavy_check, `${req.ip} | ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
}
});
}
}
}