🚚 Modif pour que lgbtq soit un des types de prides

This commit is contained in:
Kazhnuz 2025-07-12 16:33:34 +02:00
parent 4683ece1d5
commit 845a5b13ea
2 changed files with 78 additions and 68 deletions

146
main.js
View file

@ -1,4 +1,4 @@
import data from './data.json' with { type: "json" };
import lgbtq from './lgbtq.json' with { type: "json" };
import gm from "gm";
import * as fs from "fs";
import archiver from 'archiver';
@ -77,6 +77,82 @@ function createMetadatas(prideflag, text, now = false) {
return {file:filename, alt:alt, localizedAlt:{en: alten, fr: alt}, text:textForAlt};
}
function generateFromList(list, folder) {
fs.mkdirSync(path.join(__dirname, `output/${folder}`),
{ recursive: true });
fs.mkdirSync(path.join(__dirname, `tmp/${folder}`),
{ recursive: true });
list.forEach(prideflag => {
console.log(`- Creating flags for ${prideflag.name.en}`);
const imageMetadata = {title:`Drapeau ${prideflag.name.fr.toLowerCase()} :`, list:[]};
const metadata = createMetadatas(prideflag, "", false)
imageMetadata.list.push(metadata);
createButton(prideflag.source, position.x, position.y, "", position.gravity)
.write(`./output/${folder}/${metadata.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
count++;
prideflag.texts.forEach(text => {
const metadatas = createMetadatas(prideflag, text, false)
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/${folder}/${metadatas.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
count++;
})
if (prideflag.textsNow) {
prideflag.textsNow.forEach(text => {
const metadatas = createMetadatas(prideflag, text, true)
imageMetadata.list.push(metadatas);
//console.log(`Creating button for text "${metadatas.text}" (${metadatas.file})`);
createButton(prideflag.source, position.x+12, position.y, text, position.gravity)
.write(`./tmp/${folder}/${metadatas.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
sleep(500);
myGm(`./tmp/${folder}/${metadatas.file}`)
.composite("./sources/now.gif")
.write(`./output/${folder}/${metadatas.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
count++;
})
}
flagCount++;
metadatas.push(imageMetadata);
});
fs.writeFile(`./output/${folder}/pridebuttons.json`, JSON.stringify(metadatas), (err) => {
if (err) {
console.error(err);
throw err;
}
});
}
// Prepare folders
const __filename = fileURLToPath(import.meta.url);
@ -96,73 +172,7 @@ let count = 0;
let flagCount = 0;
const start = Date.now();
data.forEach(prideflag => {
console.log(`- Creating flags for ${prideflag.name.en}`);
const imageMetadata = {title:`Drapeau ${prideflag.name.fr.toLowerCase()} :`, list:[]};
const metadata = createMetadatas(prideflag, "", false)
imageMetadata.list.push(metadata);
createButton(prideflag.source, position.x, position.y, "", position.gravity)
.write(`./output/${metadata.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
count++;
prideflag.texts.forEach(text => {
const metadatas = createMetadatas(prideflag, text, false)
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;
};
});
count++;
})
if (prideflag.textsNow) {
prideflag.textsNow.forEach(text => {
const metadatas = createMetadatas(prideflag, text, true)
imageMetadata.list.push(metadatas);
//console.log(`Creating button for text "${metadatas.text}" (${metadatas.file})`);
createButton(prideflag.source, position.x+12, position.y, text, position.gravity)
.write(`./tmp/${metadatas.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
sleep(500);
myGm(`./tmp/${metadatas.file}`)
.composite("./sources/now.gif")
.write(`./output/${metadatas.file}`, function (err) {
if (err) {
console.error(err);
throw err;
};
});
count++;
})
}
flagCount++;
metadatas.push(imageMetadata);
});
fs.writeFile("./output/pridebuttons.json", JSON.stringify(metadatas), (err) => {
if (err) {
console.error(err);
throw err;
}
});
generateFromList(lgbtq, "lgbtq");
// Zip the folder