view analytics

This commit is contained in:
sky
2026-02-07 23:47:35 -05:00
parent 71f377ac18
commit 09cb2c6198

View File

@ -32,8 +32,8 @@ const port = process.env.PORT || 3000;
const app = express(); const app = express();
// why the fuck does this have to exist? // why the fuck does this have to exist?
app.use("/resources/semag/hotline-miami/", (req,res,next) => { app.use("/resources/semag/hotline-miami/", (req, res, next) => {
if(req.method == "HEAD") { if (req.method == "HEAD") {
req.socket.destroy(); req.socket.destroy();
} }
next(); next();
@ -41,13 +41,13 @@ app.use("/resources/semag/hotline-miami/", (req,res,next) => {
app.use("/osu/", await minoProxy) app.use("/osu/", await minoProxy)
app.use("/resources/semag/portal/", (req,res,next) => { app.use("/resources/semag/portal/", (req, res, next) => {
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp'); res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin'); res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
next(); next();
}); });
app.use("/resources/semag/terraria/", (req,res,next) => { app.use("/resources/semag/terraria/", (req, res, next) => {
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp'); res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin'); res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
next(); next();
@ -75,9 +75,9 @@ wss.on("connection", function connection(ws, req, res) {
server.on("message", async function message(data) { server.on("message", async function message(data) {
let message = Buffer.from(data).toString(); let message = Buffer.from(data).toString();
if(message.startsWith("online")) { if (message.startsWith("online")) {
ws.send(message); ws.send(message);
} else if(message.startsWith("annc")) { } else if (message.startsWith("annc")) {
ws.send(message); ws.send(message);
} }
}) })
@ -98,7 +98,7 @@ wss.on("connection", function connection(ws, req, res) {
} }
} else if (message.startsWith("annc")) { } else if (message.startsWith("annc")) {
let splitMessage = message.split(";;"); let splitMessage = message.split(";;");
if(await isAdmin(splitMessage[1])) { if (await isAdmin(splitMessage[1])) {
// wss.clients.forEach(client => { // wss.clients.forEach(client => {
// client.send(`annc;;${splitMessage[2]};;${splitMessage[3]}`); // client.send(`annc;;${splitMessage[2]};;${splitMessage[3]}`);
// }) // })
@ -107,7 +107,7 @@ wss.on("connection", function connection(ws, req, res) {
} }
}); });
ws.on("close", () => {server.close()}); ws.on("close", () => { server.close() });
}); });
app.post( app.post(
"/api/event", "/api/event",
@ -124,7 +124,7 @@ app.post(
res.send(response.status); res.send(response.status);
}) })
} }
); );
app.post("/register", async (req, res) => { app.post("/register", async (req, res) => {
let status = await createAccount(req.body.username, req.body.password, req.body["h-captcha-response"]); let status = await createAccount(req.body.username, req.body.password, req.body["h-captcha-response"]);
if (status["success"]) { if (status["success"]) {
@ -178,7 +178,7 @@ app.post("/api/account/upload", async (req, res, next) => {
}); });
app.post("/api/analytics/game", async (req, res) => { app.post("/api/analytics/game", async (req, res) => {
if(req.body && req.body.path.length < 16) { if (req.body && req.body.path.length < 16) {
const query = top.prepare(` const query = top.prepare(`
INSERT INTO stats (game, plays) INSERT INTO stats (game, plays)
VALUES ($id, 1) VALUES ($id, 1)
@ -193,6 +193,13 @@ app.post("/api/analytics/game", async (req, res) => {
return; return;
}) })
app.use("/api/analytics/get", async(req, res) => {
const query = top.prepare(`SELECT * FROM stats ORDER BY plays DESC`);
let data = query.all();
res.send(data);
return;
})
app.post("/api/ai/sendMessage", async (req, res) => { app.post("/api/ai/sendMessage", async (req, res) => {
// take in chat id and message // take in chat id and message
// stream back reply // stream back reply
@ -219,10 +226,10 @@ app.use("/api/music/download", async (req, res, next) => {
res.end(); res.end();
}); });
app.post("/api/recat", async (req, res) => { app.post("/api/recat", async (req, res) => {
if(isAdmin(req.cookies.token)) { if (isAdmin(req.cookies.token)) {
let domain = JSON.parse(req.body)["domain"]; let domain = JSON.parse(req.body)["domain"];
let message; let message;
if(recatters.includes(domain)) { if (recatters.includes(domain)) {
recatters.pop(domain); recatters.pop(domain);
message = `Successfully set ${domain} to Selenite.` message = `Successfully set ${domain} to Selenite.`
} else { } else {
@ -307,7 +314,7 @@ app.use("/api/stats", async (req, res, next) => {
.send({ .send({
"users": accs.query(`SELECT COUNT(*) FROM accounts`).get()["COUNT(*)"], "users": accs.query(`SELECT COUNT(*) FROM accounts`).get()["COUNT(*)"],
// "cpu": os.cpus(), // "cpu": os.cpus(),
"ram": `${(os.totalmem()-os.freemem())/1000000000}GB / ${os.totalmem()/1000000000}GB`, "ram": `${(os.totalmem() - os.freemem()) / 1000000000}GB / ${os.totalmem() / 1000000000}GB`,
"cpuUsage": os.loadavg(), "cpuUsage": os.loadavg(),
"uptime": `${os.uptime()}s` "uptime": `${os.uptime()}s`
}); });