From eb46ca906613aef633d69cb3fef1f074afec2e16 Mon Sep 17 00:00:00 2001 From: Aron Buzinkay Date: Fri, 21 May 2021 18:24:27 +0200 Subject: [PATCH] Added automatic image optimization for contributors.jpg --- site/scripts/get-contributors.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/site/scripts/get-contributors.js b/site/scripts/get-contributors.js index 4b8b19a4b7..2b2760c3a5 100644 --- a/site/scripts/get-contributors.js +++ b/site/scripts/get-contributors.js @@ -39,9 +39,29 @@ async function main() { sprite.composite(image, i * SIZE, 0); } - await sprite.quality(80).write(`../static/contributors.jpg`); - // TODO: Optimizing the static/contributors.jpg image should probably get automated as well - console.log('remember to additionally optimize the resulting /static/contributors.jpg image file via e.g. https://squoosh.app '); + await sprite.quality(80).getBuffer(Jimp.MIME_JPEG, (err, buffer) => { + let quality = 75; + + let content = `--xxxxxxxxxx\r\nContent-Disposition: form-data; name="qlty"; \r\n\r\n${quality}\r\n--xxxxxxxxxx\r\nContent-Disposition: form-data; name="files"; filename="contributors.jpg"\r\nContent-Type:application/octet-stream\r\n\r\n`; + let end = `\r\n--xxxxxxxxxx--\r\n`; + + let body = Buffer.concat([Buffer.from(content, "utf8"), new Buffer(buffer, "binary"), Buffer.from(end)]); + + fetch('https://api.resmush.it/ws.php', { + method: 'POST', + headers: { + "Content-type": 'multipart/form-data; boundary=xxxxxxxxxx', + }, + body: body + }).then(async (res) => { + let response = await res.json() + console.log(`Reduced file size by ${response.percent}%`) + + fetch(response.dest).then(async image => { + fs.writeFileSync('../static/contributors.jpg', await image.buffer()); + }); + }); + }); const str = `[\n\t${authors.map(a => `'${a.login}'`).join(',\n\t')}\n]`;