mostly finish custom music
This commit is contained in:
112
index.js
112
index.js
@ -37,7 +37,6 @@ const wss = new WebSocketServer({ noServer: true });
|
||||
let openSockets = 0;
|
||||
wss.on("connection", function connection(ws, req, res) {
|
||||
openSockets++;
|
||||
sockets.set(openSockets);
|
||||
setInterval(() => {
|
||||
ws.send("ping");
|
||||
}, 30000);
|
||||
@ -185,110 +184,6 @@ app.get("/api/chat/recent", async (req, res) => {
|
||||
// get last 50 recent messages
|
||||
// offset by a page param
|
||||
})
|
||||
app.get("/api/infinite/get", async (req, res, next) => {
|
||||
if (req.query[1] && req.query[2]) {
|
||||
let success = false;
|
||||
let data;
|
||||
try {
|
||||
let search1Query = infdb.query(`SELECT * FROM caches WHERE 1 = $one AND 2 = $two`)
|
||||
let search1 = await search1Query.get({ $one: req.query[1], $two: req.query[2] });
|
||||
console.log(search1);
|
||||
if (search1 && search1.length > 0) {
|
||||
data = { item: search1[0].result_item, emoji: search1[0].result_emoji, new: false };
|
||||
success = true;
|
||||
} else {
|
||||
let search2Query = infdb.query(`SELECT * FROM caches WHERE 1 = $two AND 2 = $one`)
|
||||
let search2 = await search2Query.get({ $one: req.query[1], $two: req.query[2] });
|
||||
console.log(search2);
|
||||
if (search2 && search2.length > 0) {
|
||||
data = { item: search2[0].result_item, emoji: search2[0].result_emoji, new: false };
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
if (success) {
|
||||
console.log("success");
|
||||
res.send(data);
|
||||
return;
|
||||
}
|
||||
data = await infiniteCraft(req.query[1], req.query[2]);
|
||||
try {
|
||||
let parse = JSON.parse(data);
|
||||
let keys = Object.keys(parse);
|
||||
if (keys.indexOf("item") > -1 && keys.indexOf("emoji") > -1) {
|
||||
parse.new = true;
|
||||
data = parse;
|
||||
const createCached = infdb.query(`INSERT INTO caches (1, 2, result_item, result_emoji) VALUES ($one, $two, $item, $emoji)`)
|
||||
createCached.run({ $one: req.query[1], $two: req.query[2], $item: data.item, $emoji: data.emoji });
|
||||
res.send(data);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
data = { item: "N/A", emoji: "N/A" };
|
||||
res.send(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
app.use("/semag/polytrack/data/", async (req, res, next) => {
|
||||
let path = req.path.substring(1, req.path.length);
|
||||
if(path == "user") {
|
||||
res.sendStatus(200);
|
||||
} else if(path == "leaderboard") {
|
||||
let data = {};
|
||||
|
||||
if(req.method == "POST") {
|
||||
req.body.split("&").forEach((item) => {
|
||||
data[item.split("=")[0]] = item.split("=")[1]
|
||||
});
|
||||
console.log(data);
|
||||
const getExistingRuns = polytrack.query(`SELECT * FROM polytrack WHERE userid = $usrid AND trackid = $trackid`);
|
||||
let existingRuns = getExistingRuns.all({ $usrid: data["userToken"], $trackid: data["trackId"] });
|
||||
let saveRun = true;
|
||||
if(existingRuns !== null) {
|
||||
existingRuns.forEach((item) => {
|
||||
if(saveRun) {
|
||||
if(data.frames > item.frames) {
|
||||
saveRun = false;
|
||||
} else {
|
||||
let deleteRun = polytrack.query(`DELETE FROM polytrack WHERE id = $id`);
|
||||
deleteRun.run({ $id: item.id })
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
if(saveRun) {
|
||||
const addRun = polytrack.query(`INSERT INTO polytrack (trackid, username, colors, recording, frames, userid) VALUES ($id, $usr, $clr, $record, $frames, $usrid)`)
|
||||
let runData = addRun.run({ $id: data["trackId"], $usr: data["name"], $clr: data["carColors"], $record: data["recording"], $usrid: data["userToken"], $frames: data["frames"] });
|
||||
console.log("run", runData);
|
||||
res.send(runData.lastInsertRowid);
|
||||
}
|
||||
} else {
|
||||
let leaderboard = polytrack.query(`SELECT * FROM polytrack WHERE trackid = $id LIMIT $limit OFFSET $offset`).all({ $id: req.query.trackId, $limit: req.query.amount, $offset: req.query.skip })
|
||||
console.log(leaderboard);
|
||||
let returnValue = {"total": leaderboard.length, "entries":[]}
|
||||
for(let i = 0; i<leaderboard.length;i++) {
|
||||
returnValue["entries"][i] = {};
|
||||
returnValue["entries"][i]["id"] = leaderboard[i]["id"];
|
||||
returnValue["entries"][i]["name"] = decodeURIComponent(leaderboard[i]["username"]);
|
||||
returnValue["entries"][i]["carColors"] = leaderboard[i]["colors"];
|
||||
returnValue["entries"][i]["frames"] = leaderboard[i]["frames"];
|
||||
returnValue["entries"][i]["verifiedState"] = true;
|
||||
returnValue["entries"][i]["isSelf"] = false;
|
||||
}
|
||||
res.send(returnValue);
|
||||
}
|
||||
} else if(path == "recording") {
|
||||
let recordingQuery = polytrack.query(`SELECT * FROM polytrack WHERE id = $id`).get({ $id: req.query.recordingId });
|
||||
res.send({
|
||||
"recording": recordingQuery.recording,
|
||||
"frames": recordingQuery.frames,
|
||||
"verifiedState": true,
|
||||
"carColors": recordingQuery.colors
|
||||
});
|
||||
}
|
||||
})
|
||||
app.use("/api/account/load", async (req, res, next) => {
|
||||
if (req.cookies.token && (await verifyCookie(req.cookies.token))) {
|
||||
let status = await retrieveData(req.cookies.token);
|
||||
@ -358,6 +253,9 @@ app.use("/data/:id/:file", async (req, res) => {
|
||||
if (mime.lookup(filePath) == "image/webp") {
|
||||
res.type("image/webp");
|
||||
res.status(200).send(image);
|
||||
} else if (mime.lookup(filePath) == "audio/ogg") {
|
||||
res.type("audio/ogg");
|
||||
res.status(200).send(image);
|
||||
} else {
|
||||
res.status(404).send("File not found");
|
||||
}
|
||||
@ -440,10 +338,6 @@ app.post("/api/admin/ban", async (req, res) => {
|
||||
app.use("/api/music/search", async (req, res, next) => {
|
||||
res.status(200).send(await search(req.query.q))
|
||||
});
|
||||
app.use("/api/music/download", async (req, res, next) => {
|
||||
await download(req.query.url, res);
|
||||
});
|
||||
|
||||
const server = app.listen(port, () => {
|
||||
console.log(log.success("Express is online."));
|
||||
console.log("- " + log.info("http://localhost:" + port));
|
||||
|
Reference in New Issue
Block a user