From d1b96962accbc077e4e27994256650b7a7f0f3de Mon Sep 17 00:00:00 2001 From: Jake Turner <52841588+jakeaturner@users.noreply.github.com> Date: Wed, 2 Sep 2026 08:58:45 -0700 Subject: [PATCH] Revert "fix(zim): use the OPDS catalog host, not Kiwix's gated browse host" This reverts commit 9ed3ac6a462698625830914dfa4152f50d4b7d53. --- admin/app/services/kiwix_catalog_service.ts | 9 +-------- admin/app/services/zim_service.ts | 5 +---- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/admin/app/services/kiwix_catalog_service.ts b/admin/app/services/kiwix_catalog_service.ts index 2d172cf3..e7f0422d 100644 --- a/admin/app/services/kiwix_catalog_service.ts +++ b/admin/app/services/kiwix_catalog_service.ts @@ -24,14 +24,7 @@ import { isRawListRemoteZimFilesResponse } from '../../util/zim.js' * defensive — a malformed entry is skipped, never thrown. */ -// `browse.library.kiwix.org` is Kiwix's *human* browsing host. On 2026-08-29 it grew an -// anti-crawler interstitial that answers HTTP 200 with an HTML "Please confirm..." page -// requiring JS + a cookie, so every catalog request here returned unparseable HTML. -// `parseZimEntries` swallows that as an empty feed, which reads as "no updates available" -// -- a silent, permanent stall of ZIM auto-update. `opds.library.kiwix.org` is the -// machine-facing host for the same API and is not gated; `library.kiwix.org` now 301s to -// it. Keep catalog traffic off the browse host. -const KIWIX_CATALOG_URL = 'https://opds.library.kiwix.org/catalog/v2/entries' +const KIWIX_CATALOG_URL = 'https://browse.library.kiwix.org/catalog/v2/entries' const GITHUB_PMTILES_URL = 'https://api.github.com/repos/Crosstalk-Solutions/project-nomad-maps/contents/pmtiles' diff --git a/admin/app/services/zim_service.ts b/admin/app/services/zim_service.ts index a687c3be..c8a735c2 100644 --- a/admin/app/services/zim_service.ts +++ b/admin/app/services/zim_service.ts @@ -81,10 +81,7 @@ export class ZimService { count: number query?: string }): Promise { - // The machine-facing OPDS host. NOT `browse.library.kiwix.org`, which since 2026-08-29 - // serves an anti-crawler confirmation page (HTTP 200 + HTML) that fails - // `isRawListRemoteZimFilesResponse` and 500s this endpoint. See kiwix_catalog_service. - const LIBRARY_BASE_URL = 'https://opds.library.kiwix.org/catalog/v2/entries' + const LIBRARY_BASE_URL = 'https://browse.library.kiwix.org/catalog/v2/entries' // Kiwix returns pages of content unaware of what the user has installed locally. When // the installed set is large, a single 12-item Kiwix page can come back with everything // already installed → 0 post-filter items → frontend deadlock (#731). Accumulate across