greek-manifests/controllers/manifest.mjs
2023-10-03 16:56:27 +02:00

40 lines
1.1 KiB
JavaScript

'use strict';
import Manifest from '../src/Manifest.js';
import Sequence from '../src/Sequence.js';
import Canvas from '../src/Canvas.js';
import Image from '../src/Image.js';
import * as fs from 'fs';
/**
* Generate a manifest object to serve
* @param {string} manifestId
*/
export default async function generateManifest(manifestId) {
const IIIF_API_VERSION = process.env.IIIF_API_VERSION;
const BASE_URL = process.env.BASE_URL;
const manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
const sequence = new Sequence();
const canvas = new Canvas(IIIF_API_VERSION, BASE_URL);
const image = new Image(4000, 3000);
canvas.setThumbnail();
canvas.addImage(image);
sequence.addCanvas(canvas);
manifest.addSequence(sequence);
manifest.generateID(manifestId);
console.log(await getImageList(manifestId));
return manifest.toObject();
}
/**
* @param {string} manifestId
*/
async function getImageList(manifestId) {
let folderName = manifestId.replace(/pherc-(\d+)-(\w+)$/, function (match, g1, g2) {
return `PHerc_${g1}_${g2.toUpperCase()}`;
});
return await fs.promises.readdir(`./test-images/${folderName}`);
}