querybuilder intensifies

This commit is contained in:
Flummi
2021-05-16 13:24:31 +02:00
parent 3bc0a74932
commit 04d4787232
16 changed files with 244 additions and 410 deletions

View File

@@ -1,19 +1,11 @@
import router from "../router.mjs";
import { mimes, queries } from "./inc/index.mjs";
import sql from "../sql.mjs";
router.get(/^\/random(\/image|\/video|\/audio)?$/, async (req, res) => {
const args = [];
let q = queries.random.main;
q += queries.random.where(mimes[req.url.split[1]] ? mimes[req.url.split[1]].map(mime => `mime = "${mime}"`).join(" or ") : null);
const allowedMimes = [ "audio", "image", "video", "%" ];
try {
const rows = await sql.query(q, args);
res.redirect(`/${req.url.split[1] ? req.url.split[1] + "/" : ""}${rows[0].id}`);
} catch(err) {
res
.writeHead(500)
.end(JSON.stringify(err), "utf-8");
}
router.get(/^\/random(\/image|\/video|\/audio)?$/, async (req, res) => {
const mime = (allowedMimes.filter(n => req.url.split[1]?.startsWith(n))[0] ? req.url.split[1] : "") + "%";
const rows = await sql("items").select("id").where("mime", "like", mime).orderByRaw("rand()").limit(1);
res.redirect(`/${req.url.split[1] ? req.url.split[1] + "/" : ""}${rows[0].id}`);
});