mirror of
https://gitlab.com/Thoscellen/Wallset.git
synced 2025-05-31 19:04:51 +02:00
Ecriture du générateur de manifeste
Fonctionne en local avec le jeu de test valide, mais à besoin d'être ajuster avec: - Caster les nombres qui sont encore en string - Fluidifier l'execution dans le dossier de travail car le module n'est pas à la racine du projet - Améliorer le debugage local tant via npm que via VSCode (Pourquoi le dossier de travail doit être au niveau du package.json?, j'ai besoin de plus de connaissance) - Voir pour mieux paralléliser l'extraction des données (boucle forEach séquentiel, je pourrais tirer partie d'un Yield ou Async Await)
This commit is contained in:
parent
b349fe729a
commit
774b52e3e8
@ -4,7 +4,7 @@
|
|||||||
"description": "Generate a theme.json file from the images' metadata of the working folder.",
|
"description": "Generate a theme.json file from the images' metadata of the working folder.",
|
||||||
"main": "themeset_builder.js",
|
"main": "themeset_builder.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node themeset_builder.js"
|
"start": "node themeset_builder.js"
|
||||||
},
|
},
|
||||||
"author": "Simon",
|
"author": "Simon",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
@ -7,11 +7,69 @@ const iptc = require('node-iptc');
|
|||||||
// find all images
|
// find all images
|
||||||
const slug = env.PACKAGE_NAME || "valid_set";
|
const slug = env.PACKAGE_NAME || "valid_set";
|
||||||
const root = env.ENTRY_FOLDER || "test";
|
const root = env.ENTRY_FOLDER || "test";
|
||||||
let file = path.join(root, slug, "bl2_eridum_badlands_1.jpg");
|
let workingDirectory = path.join("../..", root, slug);
|
||||||
|
|
||||||
// extract metadata from them
|
// extract metadata from them
|
||||||
fs.readFile(file, function (err, data) {
|
fs.readdir(workingDirectory, (err, files) => {
|
||||||
if (err) { throw err }
|
if (err) { throw err };
|
||||||
var iptc_data = iptc(data);
|
|
||||||
console.log(iptc_data)
|
// construct a JSON file
|
||||||
});
|
let theme = new Object();
|
||||||
|
theme.dayImageList = [];
|
||||||
|
theme.nightImageList = [];
|
||||||
|
theme.sunsetImageList = [];
|
||||||
|
theme.sunriseImageList = [];
|
||||||
|
|
||||||
|
// iterate each files
|
||||||
|
files.filter(file => path.extname(file) == '.jpg').forEach(image => {
|
||||||
|
buffer = fs.readFileSync(path.join(workingDirectory, image));
|
||||||
|
//if (err) { throw err };
|
||||||
|
// extract metadata
|
||||||
|
let metadata = iptc(buffer);
|
||||||
|
// fill object
|
||||||
|
theme.imageFilename ||= metadata.special_instructions + "_*" + path.extname(image);
|
||||||
|
theme.imageCredits ||= metadata.copyright_notice;
|
||||||
|
theme.displayName ||= metadata.headline;
|
||||||
|
// explore categories to find if image is dayHighlight or nightHighlight
|
||||||
|
metadata.supplemental_categories?.forEach(cat => {
|
||||||
|
switch (cat) {
|
||||||
|
case "dayHighlight":
|
||||||
|
theme.dayHighlight ||= metadata.original_transmission_reference;
|
||||||
|
break;
|
||||||
|
case "nightHighlight":
|
||||||
|
theme.nightHighlight ||= metadata.original_transmission_reference;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (metadata.category) {
|
||||||
|
case "day":
|
||||||
|
theme.dayImageList.push(metadata.original_transmission_reference);
|
||||||
|
break;
|
||||||
|
case "night":
|
||||||
|
case "nig":
|
||||||
|
theme.nightImageList.push(metadata.original_transmission_reference);
|
||||||
|
break;
|
||||||
|
case "sunset":
|
||||||
|
case "twilight":
|
||||||
|
case "twi":
|
||||||
|
theme.sunsetImageList.push(metadata.original_transmission_reference);
|
||||||
|
break;
|
||||||
|
case "sunrise":
|
||||||
|
case "dawn":
|
||||||
|
case "daw":
|
||||||
|
theme.sunriseImageList.push(metadata.original_transmission_reference);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
fs.writeFileSync(path.join(workingDirectory, 'theme.json'), JSON.stringify(theme));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user