From 271600c44fe5a30f96d8d896af7bcef2a8a3cefe Mon Sep 17 00:00:00 2001 From: bjcscat <87087344+bjcscat@users.noreply.github.com> Date: Sun, 24 Jul 2022 23:00:31 -0700 Subject: [PATCH] Change removeOldImages to be a bit cleaner (#302) --- utils/tempimages.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/utils/tempimages.js b/utils/tempimages.js index 45a135f..a8f4c32 100644 --- a/utils/tempimages.js +++ b/utils/tempimages.js @@ -42,6 +42,7 @@ export async function upload(client, ipc, result, context, interaction = false) export async function removeOldImages(ipc, size) { if (size > process.env.THRESHOLD) { + const files = (await readdir(process.env.TEMPDIR)).map((file) => { return lstat(`${process.env.TEMPDIR}/${file}`).then((stats) => { if (stats.isSymbolicLink()) return; @@ -51,19 +52,23 @@ export async function removeOldImages(ipc, size) { ctime: stats.ctime }; }); - }).filter(Boolean); + }); + const resolvedFiles = await Promise.all(files); - let newSize = resolvedFiles.filter(Boolean).reduce((a, b) => { - return a + b.size; - }, 0); - const oldestFiles = resolvedFiles.sort((a, b) => a.ctime - b.ctime); - while (newSize > process.env.THRESHOLD) { + const oldestFiles = resolvedFiles.filter(Boolean).sort((a, b) => a.ctime - b.ctime); + + do { if (!oldestFiles[0]) break; await rm(`${process.env.TEMPDIR}/${oldestFiles[0].name}`); - newSize -= oldestFiles[0].size; - await ipc.centralStore.set("dirSizeCache", newSize); logger.log(`Removed oldest image file: ${oldestFiles[0].name}`); + size -= oldestFiles[0].csize; oldestFiles.shift(); - } + } while ( size > process.env.THRESHOLD ) + + let newSize = oldestFiles.reduce((a, b) => { + return a + b.size; + }, 0); + await ipc.centralStore.set("dirSizeCache", newSize); + } -} \ No newline at end of file +}