From e4f9c7e9c62fcca0c716c3aa2d49be3c8d71b7c3 Mon Sep 17 00:00:00 2001 From: Grzegorz Gidel Date: Wed, 26 Apr 2023 23:12:16 +0200 Subject: [PATCH] Do not delete characters on failed WebP conversion --- server.js | 11 +++++++++-- tools/charaverter/main.mjs | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index 63888074c..d0fa59fc6 100644 --- a/server.js +++ b/server.js @@ -748,11 +748,13 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes = fs.writeFileSync(charactersPath + target_img + '.png', new Buffer.from(encode(chunks))); if (response !== undefined) response.send(mes); + return true; } catch (err) { console.log(err); - if (response !== undefined) response.send(err); + if (response !== undefined) response.status(500).send(err); + return false; } } @@ -2547,7 +2549,12 @@ async function convertWebp() { await webp.dwebp(source, dest, "-o"); console.log(`Write... ${dest}`); - await charaWrite(dest, data, path.parse(dest).name); + const success = await charaWrite(dest, data, path.parse(dest).name); + + if (!success) { + console.log(`Failure on ${source} -> ${dest}`); + continue; + } console.log(`Remove... ${source}`); fs.rmSync(source); diff --git a/tools/charaverter/main.mjs b/tools/charaverter/main.mjs index c3fda1729..da7f3123d 100644 --- a/tools/charaverter/main.mjs +++ b/tools/charaverter/main.mjs @@ -71,11 +71,13 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes = fs.writeFileSync(target_img, new Buffer.from(encode(chunks))); if (response !== undefined) response.send(mes); + return true; } catch (err) { console.log(err); - if (response !== undefined) response.send(err); + if (response !== undefined) response.status(500).send(err); + return false; } } @@ -102,7 +104,12 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes = await webp.dwebp(source, dest, "-o") console.log(`Write... ${dest}`) - await charaWrite(dest, data, dest) + const success = await charaWrite(dest, data, path.parse(dest).name); + + if (!success) { + console.log(`Failure on ${source} -> ${dest}`); + continue; + } console.log(`Remove... ${source}`) fs.rmSync(source)