diff --git a/app.mjs b/app.mjs index eeb017f..0f7537a 100644 --- a/app.mjs +++ b/app.mjs @@ -1,4 +1,3 @@ -//let createError = require('http-errors'); import createError from 'http-errors'; import logger from 'morgan'; import express from 'express'; diff --git a/controllers/canvas.mjs b/controllers/canvas.mjs index edbf742..4ca5162 100644 --- a/controllers/canvas.mjs +++ b/controllers/canvas.mjs @@ -1,8 +1,11 @@ import Canvas from '../src/Canvas.js'; import Image from '../src/Image.js'; +import Manifest from '../src/Manifest.js'; import Common from '../src/common.js'; /** * Generate a canvas object to serve + * @todo Use createCanvas from Common? + * @todo Pass a Manifest object, not a manifest id * @param {string} manifestId The corresponding manifest's id * @param {number|string} name The canvas name */ @@ -11,8 +14,19 @@ export default async function generateCanvas(manifestId, name) { const BASE_URL = process.env.BASE_URL; const canvas = new Canvas(IIIF_API_VERSION, BASE_URL); + const manifest = new Manifest(IIIF_API_VERSION, BASE_URL); + manifest.generateID(manifestId); + canvas.generateID(manifestId, name); - canvas.label = `${manifestId}-${name.toLowerCase()}`; + let label = name + .replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) { + return `C${c}. ${number}`; + }); + // Add PCA to canvas label for HSI images + if (manifest.technique === 'hsi') { + label += ` ${filename.split('_')[3].replace(/\..*$/,'')}`; + } + canvas.label = label; const image = new Image(canvas.id); image.generateID(process.env.IMAGE_SERVER_URL, await Common.getImageName(canvas)); diff --git a/src/Metadata.js b/src/Metadata.js index fdae7ec..ec17baa 100644 --- a/src/Metadata.js +++ b/src/Metadata.js @@ -9,7 +9,8 @@ class ManifestMetadata { date = ''; imageAuthor = ''; license = 'CC BY-NC-ND 4.0'; - copyright = "Ministero della Cultura (Biblioteca Nazionale 'Vittorio Emanuele III' di Napoli)/CNR-Istituto di Scienze del Patrimonio Culturale"; + copyright = `Ministero della Cultura (Biblioteca Nazionale + 'Vittorio Emanuele III' di Napoli)/CNR-Istituto di Scienze del Patrimonio Culturale`; /** * @todo Maybe this doesn't make any sense?? @@ -39,7 +40,6 @@ class ManifestMetadata { this.license = metadata.license ?? this.license; this.copyright = metadata.copyright ?? this.copyright; } - /** * Returns an array of `label, value` * pairs for all metadata