import sql from "../src/inc/sql.mjs"; import { promises as fs } from "fs"; const opts = { b: "public/b", t: "public/t", tmp: "tmp" }; const count = { b: 0, t: 0, tmp: 0 }; const rows = await sql('items').select('id', 'dest'); const ids = rows.map(r => r.id.toString() + ".webp"); const dests = rows.map(r => r.dest); const files = { b: (await fs.readdir(opts.b)).filter(f => f !== '.empty'), t: await fs.readdir(opts.t) }; const unused = { b: files.b.filter(f => !dests.includes(f)), t: files.t.filter(f => !ids.includes(f)) } count.b = (await Promise.all(unused.b.map(f => fs.rm(`${opts.b}/${f}`)))).length; count.t = (await Promise.all(unused.t.map(f => fs.rm(`${opts.t}/${f}`)))).length; // clear tmp const tmp = (await fs.readdir(opts.tmp)).filter(f => f !== '.empty'); count.tmp = (await Promise.all(tmp.map(f => fs.rm(`${opts.tmp}/${f}`)))).length; console.log(count, unused);