Add api endpoint for stats #6

Merged
tgpholly merged 3 commits from add-stats-api into master 2020-02-20 08:03:10 +00:00
Showing only changes of commit 2fe9efd36a - Show all commits

99
EUS.js
View file

@ -3,6 +3,7 @@ config = require("../config/config.json"),
chalk = require("chalk"), chalk = require("chalk"),
busboy = require("connect-busboy"), busboy = require("connect-busboy"),
randomstring = require("randomstring"), randomstring = require("randomstring"),
getSize = require('get-folder-size'),
emoji = require("../misc/emoji_list.json"); emoji = require("../misc/emoji_list.json");
// Defines the function of this module // Defines the function of this module
@ -75,41 +76,79 @@ module.exports = {
res - Response from server res - Response from server
*/ */
let isAPI = false;
if (req.query["stat"] == "get") return res.end('{ "status":1, "version":"'+global.internals.version+'" }'); if (req.query["stat"] == "get") return res.end('{ "status":1, "version":"'+global.internals.version+'" }');
// Register the time at the start of the request if (req.url.split("?")[0] == "/api/get-stats") {
d = new Date(); isAPI = true;
startTime = d.getTime(); const filesaa = req.query["f"],
// Get the requested image spaceaa = req.query["s"];
let urs = ""+req.url; urs = urs.split("/")[1]; let jsonaa = {};
// Get the file type of the image from image_json and make sure it exists if (filesaa == 1) {
fs.access(__dirname + BASE_PATH + "/i/"+urs+image_json[urs], error => { jsonaa["files"] = {};
if (error) { for (var i2 = 0; i2 < eusConfig.acceptedTypes.length; i2++) {
// Doesn't exist, handle request normaly jsonaa["files"][`${eusConfig.acceptedTypes[i2]}`.replace(".", "")] = 0;
if (req.url === "/") { urs = "/index.html" } else { urs = req.url }; }
fs.access(__dirname + BASE_PATH + "/files"+urs, error => { fs.readdir(__dirname + BASE_PATH + "/i", (err, files) => {
if (error) { if (err) throw err;
// Doesn't exist, send a 404 to the client. for (var i = 0; i < files.length; i++) {
res.status(404).end("404!"); for (var i1 = 0; i1 < eusConfig.acceptedTypes.length; i1++) {
d = new Date(); const jsudfg = files[i].split(".");
endTime = d.getTime(); if (`.${jsudfg[jsudfg.length-1]}` == eusConfig.acceptedTypes[i1]) {
global.modules.consoleHelper.printInfo(emoji.cross, `${req.method}: ${chalk.red("[404]")} ${req.url} ${endTime - startTime}ms`); jsonaa["files"][eusConfig.acceptedTypes[i1].replace(".", "")]++;
} else { }
// File does exist, send it back to the client. }
res.sendFile(__dirname + BASE_PATH + "/files"+req.url);
d = new Date();
endTime = d.getTime();
global.modules.consoleHelper.printInfo(emoji.heavy_check, `${req.method}: ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
} }
if (spaceaa != 1) return res.end(JSON.stringify(jsonaa));
}); });
} else {
// Image does exist, send it back.
res.sendFile(__dirname + BASE_PATH + "/i/"+urs+image_json[urs]);
d = new Date();
endTime = d.getTime();
global.modules.consoleHelper.printInfo(emoji.heavy_check, `${req.method}: ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
} }
}); if (spaceaa == 1) {
jsonaa["used"] = "";
getSize(__dirname + BASE_PATH + "/i", (err, size) => {
if (err) throw err;
const sizeOfFolder = (size / 1024 / 1024 / 1024).toFixed(2);
jsonaa["used"] = `${sizeOfFolder} GB`;
return res.end(JSON.stringify(jsonaa));
});
}
}
if (!isAPI) {
// Register the time at the start of the request
d = new Date();
startTime = d.getTime();
// Get the requested image
let urs = ""+req.url; urs = urs.split("/")[1];
// Get the file type of the image from image_json and make sure it exists
fs.access(__dirname + BASE_PATH + "/i/"+urs+image_json[urs], error => {
if (error) {
// Doesn't exist, handle request normaly
if (req.url === "/") { urs = "/index.html" } else { urs = req.url };
fs.access(__dirname + BASE_PATH + "/files"+urs, error => {
if (error) {
// Doesn't exist, send a 404 to the client.
res.status(404).end("404!");
d = new Date();
endTime = d.getTime();
global.modules.consoleHelper.printInfo(emoji.cross, `${req.method}: ${chalk.red("[404]")} ${req.url} ${endTime - startTime}ms`);
} else {
// File does exist, send it back to the client.
res.sendFile(__dirname + BASE_PATH + "/files"+req.url);
d = new Date();
endTime = d.getTime();
global.modules.consoleHelper.printInfo(emoji.heavy_check, `${req.method}: ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
}
});
} else {
// Image does exist, send it back.
res.sendFile(__dirname + BASE_PATH + "/i/"+urs+image_json[urs]);
d = new Date();
endTime = d.getTime();
global.modules.consoleHelper.printInfo(emoji.heavy_check, `${req.method}: ${chalk.green("[200]")} ${req.url} ${endTime - startTime}ms`);
}
});
}
}, },
post:function(req, res) { post:function(req, res) {
/* /*