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