Skip to content

Resolve known Memorix detail URLs without page fetches - #978

Merged
lovasoa merged 2 commits into
masterfrom
ophir.lojkine/anubis-metarefresh
Jul 31, 2026
Merged

Resolve known Memorix detail URLs without page fetches#978
lovasoa merged 2 commits into
masterfrom
ophir.lojkine/anubis-metarefresh

Conversation

@lovasoa

@lovasoa lovasoa commented Jul 30, 2026

Copy link
Copy Markdown
Owner

resolve known Memorix detail URLs without page fetches

Some Memorix institution pages block the hosted proxy, but their detail URLs already contain the media UUID.

topviewer.js now includes the institution-to-image-server mappings from VDK/Dememorixer beeldbanken.json, with attribution, and resolves matching /detail/<record>/media/<asset> URLs directly to TopViewer metadata. Gallery URLs without a media UUID keep the existing discovery path.

Verified:

  • cd tests && npm test: 18 passed, including all eight imported mappings and the exact www.beeldbankgroningen.nl #976 URL.
  • cd tests && npm run test:live -- --grep "Beeldbank Groningen": 1 passed.
  • Cloudflare preview with the exact www.beeldbankgroningen.nl #976 URL selected TopViewer, loaded 3237x2082 metadata and a 256px tile. Its only proxy request was the direct images.memorix.nl/gra/topviewjson/... URL; it never requested the protected institution page.

This directly fixes detail URLs such as #976. Gallery URLs such as #975 do not contain a media UUID and are intentionally unchanged. The prior Anubis/refresh implementation was removed from this branch.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 30, 2026

Copy link
Copy Markdown

Deploying dezoomify with  Cloudflare Pages  Cloudflare Pages

Latest commit: ac170aa
Status: ✅  Deploy successful!
Preview URL: https://ae529889.dezoomify.pages.dev
Branch Preview URL: https://ophir-lojkine-anubis-metaref.dezoomify.pages.dev

View logs

@lovasoa lovasoa changed the title Follow timed Anubis redirects Follow timed refresh redirects Jul 30, 2026
@lovasoa

lovasoa commented Jul 30, 2026

Copy link
Copy Markdown
Owner Author

Cloudflare preview proof for the live blocker:

initial challenge X-Real-IP: 172.69.223.44
JWT restriction SHA-256 resolves to: 172.69.223.142
post-auth request X-Real-IP: 141.101.97.23
policyRule matches original challenge: true
auth accepted: false

Anubis defaults JWT_RESTRICTION_HEADER to X-Real-IP. Brute-forcing the observed Cloudflare IPv4 range recovered 172.69.223.142 as the exact preimage of the JWT restriction claim, proving that the pass request and subsequent protected request used different Cloudflare egress IPs.

@lovasoa
lovasoa force-pushed the ophir.lojkine/anubis-metarefresh branch from 1c2b5dc to 311e32a Compare July 31, 2026 18:56
@lovasoa lovasoa changed the title Follow timed refresh redirects Resolve known Memorix detail URLs without page fetches Jul 31, 2026
@lovasoa
lovasoa marked this pull request as ready for review July 31, 2026 19:02

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 311e32a040

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread dezoomers/topviewer.js Outdated
@lovasoa lovasoa linked an issue Jul 31, 2026 that may be closed by this pull request
@lovasoa
lovasoa merged commit 48f5de4 into master Jul 31, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

www.beeldbankgroningen.nl

1 participant