Correct order and labels for canvases
This commit is contained in:
parent
735c02f9c7
commit
d707457cb8
@ -12,6 +12,7 @@ class Manifest {
|
||||
#type = 'sc:Manifest';
|
||||
#label = '';
|
||||
resourceId = '';
|
||||
#technique = '';
|
||||
/**
|
||||
* @var {Sequence[]}
|
||||
*/
|
||||
@ -21,6 +22,9 @@ class Manifest {
|
||||
this.context = `https://iiif.io/api/presentation/${IIIFApiVersion}/context.json`;
|
||||
this.BASE_URL = baseURL;
|
||||
}
|
||||
get technique() {
|
||||
return this.#technique;
|
||||
}
|
||||
/**
|
||||
* @param {Sequence} sequence The Sequence object
|
||||
*/
|
||||
@ -28,11 +32,13 @@ class Manifest {
|
||||
this.sequences.push(sequence.toObject());
|
||||
}
|
||||
/**
|
||||
* @todo Technique shouldn't be set here...
|
||||
* @param {string} resourceId From the request
|
||||
*/
|
||||
generateID(resourceId) {
|
||||
this.id = `${this.BASE_URL}/${resourceId}/manifest` ;
|
||||
this.resourceId = resourceId;
|
||||
this.#technique = resourceId.split('-')[2];
|
||||
}
|
||||
/**
|
||||
* Create IIIF label for this manifest
|
||||
@ -43,8 +49,6 @@ class Manifest {
|
||||
/**
|
||||
* Object representation of this
|
||||
* manifest
|
||||
*
|
||||
* @todo Implement
|
||||
* @returns {object}
|
||||
*/
|
||||
toObject() {
|
||||
|
@ -6,7 +6,7 @@ import Manifest from './Manifest.js';
|
||||
import Sequence from './Sequence.js';
|
||||
import Canvas from './Canvas.js';
|
||||
import Image from './Image.js';
|
||||
import ManifestMetadata from './Metadata.js';
|
||||
//import ManifestMetadata from './Metadata.js';
|
||||
const Common = {};
|
||||
|
||||
const TECH_NAMES = {
|
||||
@ -80,19 +80,22 @@ Common.createCanvas = async function (manifest, filename) {
|
||||
process.env.IIIF_API_VERSION,
|
||||
process.env.BASE_URL
|
||||
);
|
||||
const canvasName = filename.split('_')[1];
|
||||
const namePos = {
|
||||
nir: 1,
|
||||
do: 3,
|
||||
dn: 3
|
||||
};
|
||||
const canvasName = filename.split('_')[namePos[manifest.technique]]
|
||||
.replace(/\.\w{1,3}$/, '');
|
||||
canvas.generateID(manifest.resourceId, canvasName);
|
||||
canvas.label = canvasName
|
||||
.replace(/c(\w+)0+(\d+)/, function (str, c, number) {
|
||||
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
||||
return `C${c}. ${number}`;
|
||||
});
|
||||
|
||||
let image = new Image(canvas.id);
|
||||
image.generateID(process.env.IMAGE_SERVER_URL, filename);
|
||||
|
||||
// DEBUG
|
||||
console.log(image.id);
|
||||
|
||||
const imgSize = await this.getImageSize(image.id);
|
||||
image.setSize(imgSize.height, imgSize.width);
|
||||
|
||||
@ -115,6 +118,17 @@ Common.populateCanvases = async function (manifest, images) {
|
||||
// There's only one sequence
|
||||
sequence.generateID(manifest.resourceId, 0);
|
||||
|
||||
// Camice e copertina all'inizio per DN e DO
|
||||
if (manifest.technique.startsWith('d')) {
|
||||
images = [].concat(
|
||||
images
|
||||
.filter(i => i.includes('camice') || i.includes('copertina'))
|
||||
.reverse(),
|
||||
images
|
||||
.filter(i => !i.includes('camice') && !i.includes('copertina'))
|
||||
);
|
||||
}
|
||||
|
||||
for (let img of images) {
|
||||
let canvas = await this.createCanvas(manifest, img);
|
||||
sequence.addCanvas(canvas);
|
||||
|
Loading…
Reference in New Issue
Block a user