very ugly recoversystem lul

This commit is contained in:
2022-05-22 12:13:44 +00:00
parent 1425361a6f
commit 2c7a55415a
3 changed files with 86 additions and 0 deletions

View File

@ -1,6 +1,7 @@
import db from "../sql.mjs";
import lib from "../lib.mjs";
import { exec } from "child_process";
import { promises as fs } from "fs";
const auth = async (req, res, next) => {
if(!req.session) {
@ -130,5 +131,61 @@ export default (router, tpl) => {
});
});
router.get(/^\/admin\/recover\/?/, auth, async (req, res) => {
if(req.url.qs?.id) {
const id = +req.url.qs.id;
const f0ck = await db`
select dest, mime
from "items"
where
id = ${id} and
active = 'false'
limit 1
`;
if(f0ck.length === 0) {
return res.reply({
body: `f0ck ${id}: f0ck not found`
});
}
await db`update "items" set active = 'true' where id = ${id}`;
await fs.copyFile(`./deleted/b/${f0ck[0].dest}`, `./public/b/${f0ck[0].dest}`).catch(_=>{});
await fs.copyFile(`./deleted/t/${id}.webp`, `./public/t/${id}.webp`).catch(_=>{});
await fs.unlink(`./deleted/b/${f0ck[0].dest}`).catch(_=>{});
await fs.unlink(`./deleted/t/${id}.webp`).catch(_=>{});
if(f0ck[0].mime.startsWith('audio')) {
await fs.copyFile(`./deleted/ca/${id}.webp`, `./public/ca/${id}.webp`).catch(_=>{});
await fs.unlink(`./deleted/ca/${id}.webp`).catch(_=>{});
}
return res.reply({
body: `f0ck ${id} recovered. <a href="/admin/recover">back</a>`
});
}
const _posts = await db`
select id, mime, username
from "items"
where
active = 'false'
`;
if(_posts.length === 0) {
return res.reply({
body: 'blah'
});
}
const posts = await Promise.all(_posts.map(async p => ({ ...p, thumbnail: (await fs.readFile(`./deleted/t/${p.id}.webp`)).toString('base64') })));
res.reply({
body: tpl.render('admin/recover', {
posts
}, req)
});
});
return router;
};