From e963276ac614fdc1d2173917765c852051988f89 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Tue, 4 Feb 2025 20:27:53 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Use=20functions=20for=20th?= =?UTF-8?q?e=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/main.js b/main.js index e44c2f1..2c7a7ed 100644 --- a/main.js +++ b/main.js @@ -8,6 +8,36 @@ const myGm = gm.subClass({imageMagick: true}); const position = {x: 4, y: 2, gravity: "NorthEast"} const metadatas = [] +function createFilename(prideflag, text) { + return `${prideflag.name.en.toLowerCase()}-${text.replace("⋅", "_").replace(" ", "_").replace("\n", '-').toLowerCase()}.png`; +} + +function createButton(source, x, y, text, gravity) { + const turnedText = text + .replace("⋅", "-") + .toUpperCase(); + + return myGm(source) + .font('./NFPixels-Regular.ttf', 10) + .drawText(x-1, y, turnedText, gravity) + .drawText(x+1, y, turnedText, gravity) + .drawText(x, y+1, turnedText, gravity) + .drawText(x, y-1, turnedText, gravity) + .drawText(x-1, y-1, turnedText, gravity) + .drawText(x+1, y+1, turnedText, gravity) + .drawText(x-1, y+1, turnedText, gravity) + .drawText(x+1, y-1, turnedText, gravity) + .fill("#FFFFFF") + .drawText(x, y, turnedText, gravity); +}; + +function createMetadatas(prideflag, text) { + const filename = createFilename(prideflag, text); + const textForAlt = text.replace("\n", " ").toLowerCase(); + const alt = `Drapeau ${prideflag.name.fr.toLowerCase()} avec écrit "${textForAlt}"` + return {file:filename, alt:alt, text:textForAlt}; +} + let count = 0; const start = Date.now(); @@ -15,26 +45,12 @@ data.forEach(prideflag => { console.log(`== Creating flags for ${prideflag.name.en}`); const imageMetadata = {title:`Drapeau ${prideflag.name.fr.toLowerCase()} :`, list:[]}; prideflag.texts.forEach(text => { - const outputfile = `${prideflag.name.en.toLowerCase()}-${text.replace("⋅", "_").replace(" ", "_").replace("\n", '-').toLowerCase()}.png` - console.log(`Creating button for text "${text.replace("\n", " ")}" (${outputfile})`); - const data = {file: outputfile, alt:`Drapeau ${prideflag.name.fr.toLowerCase()} avec écrit "${text.replace("\n", " ").toLowerCase()}"`}; - imageMetadata.list.push(data); - const turnedText = text - .replace("⋅", "-") - .toUpperCase(); - myGm(prideflag.source) - .font('./NFPixels-Regular.ttf', 10) - .drawText(position.x-1, position.y, turnedText, position.gravity) - .drawText(position.x+1, position.y, turnedText, position.gravity) - .drawText(position.x, position.y+1, turnedText, position.gravity) - .drawText(position.x, position.y-1, turnedText, position.gravity) - .drawText(position.x-1, position.y-1, turnedText, position.gravity) - .drawText(position.x+1, position.y+1, turnedText, position.gravity) - .drawText(position.x-1, position.y+1, turnedText, position.gravity) - .drawText(position.x+1, position.y-1, turnedText, position.gravity) - .fill("#FFFFFF") - .drawText(position.x, position.y, turnedText, position.gravity) - .write(`./output/${outputfile}`, function (err) { + const metadatas = createMetadatas(prideflag, text) + imageMetadata.list.push(metadatas); + + console.log(`Creating button for text "${metadatas.text}" (${metadatas.file})`); + createButton(prideflag.source, position.x, position.y, text, position.gravity) + .write(`./output/${metadatas.file}`, function (err) { if (err) { console.error(err); throw err;