From 4ffc5277c03c081827c3e1be9690f92f3ca38188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P?= Date: Fri, 3 Nov 2023 14:56:19 +0100 Subject: [PATCH] Metadata-related adjustments --- src/common.js | 50 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/src/common.js b/src/common.js index 0ca3da9..213faa2 100644 --- a/src/common.js +++ b/src/common.js @@ -16,7 +16,33 @@ const TECH_NAMES = { hsi: "Hyperspectral Imaging", uvf: "Technical Photography UVF", } - +const authors = { + DAN: 'Danilo P. Pavone', +}; +/** + * + * @param {string} imgFilename + * @returns {object} + */ +function extractNIRMetadata(imgFilename) { + return { + papyrus: imgFilename.split('_')[0].split('-')[2], + imageAuthor: authors[imgFilename.split('-')[0].replace(/\d{4}/,'')], + date: imgFilename.split('-')[0].match(/\d{4}/)[0], + } +} +/** + * + * @param {string} imgFilename + * @returns {object} + */ +function extractDNOMetadata(imgFilename) { + return { + papyrus: imgFilename.split('_')[1], + imageAuthor: '', + date: '', + } +} /** * @param {string} manifestId */ @@ -25,7 +51,7 @@ Common.getImageList = async function (manifestId) { return `PHerc_${g1}_${g2.toUpperCase()}`; }); - let baseFolder = folderName.split('_')[0] + '_' + folderName.split('_')[1]; + let baseFolder = `${folderName.split('_')[0]}_${folderName.split('_')[1]}`; let files = await fs.promises.readdir( `${process.env.IMAGES_DIR}/${baseFolder}/${folderName}` @@ -147,25 +173,23 @@ Common.populateCanvases = async function (manifest, images) { * @returns {ManifestMetadata} */ Common.createMetadata = function (manifest, imgFilename) { - let metadata = this.getMetadataFromImgName(imgFilename); + let metadata = this.getMetadataFromImgName(imgFilename, manifest.technique); metadata.technique = TECH_NAMES[manifest.technique]; return new ManifestMetadata(metadata); } /** - * @todo Only works with NIR!! * @param {string} imgFilename + * @param {string} technique */ -Common.getMetadataFromImgName = function (imgFilename) { - const authors = { - DAN: 'Danilo P. Pavone' - }; - - return { - papyrus: imgFilename.split('_')[0].split('-')[2], - imageAuthor: authors[imgFilename.split('-')[0].replace(/\d{4}/,'')], - date: imgFilename.split('-')[0].match(/\d{4}/)[0], +Common.getMetadataFromImgName = function (imgFilename, technique) { + const extractor = { + nir: extractNIRMetadata, + dn: extractDNOMetadata, + do: extractDNOMetadata, } + + return extractor[technique](imgFilename); } export default Common; \ No newline at end of file