diff --git a/server.cjs b/server.cjs index 9fa5030..d202358 100644 --- a/server.cjs +++ b/server.cjs @@ -533,9 +533,15 @@ app.delete("/trigger/api/themePlaylists", async (req, res) => { }); app.get("/trigger/api/backgrounds", async (_req, res) => { - fs.readdir("../TriggerFrontend/backgrounds", (_err, files) => { - res.status(200).send(files); - }); + fs.readdir( + "../TriggerFrontend/backgrounds", + { withFileTypes: true }, + (_err, files) => { + res + .status(200) + .send(files.filter((file) => file.isFile()).map((file) => file.name)); + }, + ); }); app.post( @@ -543,7 +549,11 @@ app.post( uploads.single("background"), async (req, res) => { const image = req.file.path; + const thumbnail = `${req.file.destination}thumbs/${req.file.filename}`; exec(`convert ${image} -resize 'x1080' -define jpeg:extent=300kb ${image}`); + exec( + `convert ${image} -resize 'x360' -define jpeg:extent=75kb ${thumbnail}`, + ); res.status(200).send({ status: "success", statusText: image }); }, ); @@ -556,6 +566,13 @@ app.patch("/trigger/api/backgrounds", async (req, res) => { if (err) throw err; }, ); + fs.rename( + `../TriggerFrontend/backgrounds/thumbs/${req.body.fileName}`, + `../TriggerFrontend/backgrounds/thumbs/${req.body.newFileName}`, + (err) => { + if (err) throw err; + }, + ); const conn = await pool.getConnection(); const query = `UPDATE trigger_database.themes SET backgroundImage = ${escapeString(req.body.newFileName)} WHERE backgroundImage = ${escapeString(req.body.fileName)};`; conn @@ -573,6 +590,12 @@ app.delete("/trigger/api/backgrounds", async (req, res) => { fs.rm(`../TriggerFrontend/backgrounds/${req.body.fileName}`, (_err) => { if (_err) throw _err; }); + fs.rm( + `../TriggerFrontend/backgrounds/thumbs/${req.body.fileName}`, + (_err) => { + if (_err) throw _err; + }, + ); const conn = await pool.getConnection(); const query = `UPDATE trigger_database.themes SET backgroundImage = 'none' WHERE backgroundImage = ${escapeString(req.body.fileName)};`; conn