Fix 0-padding and sorting for canvases (maybe...)

This commit is contained in:
Nicolò P 2025-12-02 14:48:21 +01:00
parent 00c72fd17b
commit aa260d9fb4
2 changed files with 10 additions and 1 deletions

View File

@ -21,6 +21,7 @@ class Canvas {
* @param {int|string} name A unique name for this canvas * @param {int|string} name A unique name for this canvas
*/ */
generateID(resourceId, name) { generateID(resourceId, name) {
name = name.replace(/cr([1-9]$)/, `cr0$1`);
this.id = `${this.BASE_URL}/${resourceId}/canvas/${name}`; this.id = `${this.BASE_URL}/${resourceId}/canvas/${name}`;
this.resourceId = resourceId; this.resourceId = resourceId;
this.name = name; this.name = name;

View File

@ -187,6 +187,7 @@ Common.createCanvas = async function (manifest, filename) {
dn: 2 dn: 2
}; };
// Remove file extension
let canvasName = filename.split('_')[namePos[manifest.technique]] let canvasName = filename.split('_')[namePos[manifest.technique]]
.replace(/\.\w{1,3}$/, ''); .replace(/\.\w{1,3}$/, '');
@ -225,8 +226,8 @@ Common.createCanvas = async function (manifest, filename) {
*/ */
Common.populateCanvases = async function (manifest, images) { Common.populateCanvases = async function (manifest, images) {
const sequence = new Sequence(process.env.BASE_URL); const sequence = new Sequence(process.env.BASE_URL);
// There's only one sequence
// There's only one sequence
sequence.generateID(manifest.resourceId, 0); sequence.generateID(manifest.resourceId, 0);
for (let img of images) { for (let img of images) {
@ -241,6 +242,13 @@ Common.populateCanvases = async function (manifest, images) {
} }
} }
// Sort them according to their ID number... (cornice, colonna, ecc...)
sequence.canvases.sort((a, b) => {
const firstId = a['@id'].slice(a['@id'].lastIndexOf('/') + 1).replace(/[a-z]+/ig,'');
const secondId = b['@id'].slice(b['@id'].lastIndexOf('/') + 1).replace(/[a-z]+/ig,'');
return Number(firstId) - Number(secondId);
});
manifest.addSequence(sequence); manifest.addSequence(sequence);
return manifest; return manifest;