From 90fc3724e144f64b9c901006d6833e81642f1bf7 Mon Sep 17 00:00:00 2001 From: Jason Benson Date: Tue, 16 Jun 2026 11:55:36 -0400 Subject: [PATCH 1/3] WiP, generates new PDFs but can't check for existings ones --- api/src/jobs/GeneratePdf.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/api/src/jobs/GeneratePdf.ts b/api/src/jobs/GeneratePdf.ts index d27a5c22..d64d2a10 100644 --- a/api/src/jobs/GeneratePdf.ts +++ b/api/src/jobs/GeneratePdf.ts @@ -38,7 +38,8 @@ export class PdfGenerator { } private hasPdfAlready(manifest): boolean { - const rendering = (((manifest ?? {}).sequences ?? [])[0] ?? {}).rendering ?? []; + const manifestJson = JSON.parse(manifest); + const rendering = (((manifestJson ?? {}).items ?? [])[0] ?? {}).rendering ?? []; if (rendering.length === 0) { return false; } @@ -49,9 +50,20 @@ export class PdfGenerator { } private getLargeJpegs(manifest): string[] { - const canvases = (((manifest ?? {}).sequences ?? [])[0] ?? {}).canvases ?? []; - return canvases.map((current) => { - return current.images[0].resource["@id"]; + const manifestJson = JSON.parse(manifest); + const canvases = (manifestJson ?? {}).items ?? []; + return canvases.flatMap((canvas) => { + const annotationPages = (canvas ?? {}).items ?? []; + return annotationPages.flatMap((page) => { + const annotations = (page ?? {}).items ?? []; + return annotations + .filter((annotation) => annotation.body?.id) + .map((annotation) => { + // Convert IIIF Image Service endpoint to full-size image URL + const serviceId = annotation.body.id; + return serviceId + "/full/full/0/default.jpg"; + }); + }); }); } @@ -144,4 +156,4 @@ class GeneratePdf implements QueueJobInterface { } } -export default GeneratePdf; +export default GeneratePdf; \ No newline at end of file From 28e9f350b964d9d78c6f65cfb6baa30f84bfdfec Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 15:58:23 +0000 Subject: [PATCH 2/3] Commit from GitHub Actions (Lint Pull Requests) --- api/src/jobs/GeneratePdf.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/jobs/GeneratePdf.ts b/api/src/jobs/GeneratePdf.ts index d64d2a10..d122b8f1 100644 --- a/api/src/jobs/GeneratePdf.ts +++ b/api/src/jobs/GeneratePdf.ts @@ -156,4 +156,4 @@ class GeneratePdf implements QueueJobInterface { } } -export default GeneratePdf; \ No newline at end of file +export default GeneratePdf; From 96bc319ec5f8e2794da562fc07208ea9ce000b63 Mon Sep 17 00:00:00 2001 From: Jason Benson Date: Wed, 17 Jun 2026 10:55:05 -0400 Subject: [PATCH 3/3] Fixes the check for existing PDFs in PDF Generator --- api/src/jobs/GeneratePdf.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/jobs/GeneratePdf.ts b/api/src/jobs/GeneratePdf.ts index d122b8f1..8b996d01 100644 --- a/api/src/jobs/GeneratePdf.ts +++ b/api/src/jobs/GeneratePdf.ts @@ -39,7 +39,7 @@ export class PdfGenerator { private hasPdfAlready(manifest): boolean { const manifestJson = JSON.parse(manifest); - const rendering = (((manifestJson ?? {}).items ?? [])[0] ?? {}).rendering ?? []; + const rendering = (manifestJson ?? {}).rendering ?? []; if (rendering.length === 0) { return false; }