From 744c40177316f01b4208877742bcf7d816603112 Mon Sep 17 00:00:00 2001 From: manti <133025162+manti-X@users.noreply.github.com> Date: Wed, 1 Oct 2025 09:28:56 +0200 Subject: [PATCH] GigaViewer: fix scrambled image detection (#10782) fix --- lib-multisrc/gigaviewer/build.gradle.kts | 2 +- .../tachiyomi/multisrc/gigaviewer/GigaViewer.kt | 16 +++++++++++----- .../multisrc/gigaviewer/GigaViewerDto.kt | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib-multisrc/gigaviewer/build.gradle.kts b/lib-multisrc/gigaviewer/build.gradle.kts index f0ad544d5..6b8a110f9 100644 --- a/lib-multisrc/gigaviewer/build.gradle.kts +++ b/lib-multisrc/gigaviewer/build.gradle.kts @@ -2,4 +2,4 @@ plugins { id("lib-multisrc") } -baseVersionCode = 7 +baseVersionCode = 8 diff --git a/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewer.kt b/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewer.kt index 8f266576d..35b40e91c 100644 --- a/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewer.kt +++ b/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewer.kt @@ -269,13 +269,18 @@ abstract class GigaViewer( } } + val isScrambled = episode.readableProduct.pageStructure.choJuGiga == "baku" + return episode.readableProduct.pageStructure.pages .filter { it.type == "main" } .mapIndexed { i, page -> - val imageUrl = page.src.toHttpUrl().newBuilder() - .addQueryParameter("width", page.width.toString()) - .addQueryParameter("height", page.height.toString()) - .toString() + val imageUrl = page.src.toHttpUrl().newBuilder().apply { + addQueryParameter("width", page.width.toString()) + addQueryParameter("height", page.height.toString()) + if (isScrambled) { + addQueryParameter("baku", "true") + } + }.toString() Page(i, document.location(), imageUrl) } } @@ -309,7 +314,7 @@ abstract class GigaViewer( protected open fun imageIntercept(chain: Interceptor.Chain): Response { var request = chain.request() - if (!request.url.toString().startsWith(cdnUrl)) { + if (!request.url.toString().startsWith(cdnUrl) || request.url.queryParameter("baku") != "true") { return chain.proceed(request) } @@ -319,6 +324,7 @@ abstract class GigaViewer( val newUrl = request.url.newBuilder() .removeAllQueryParameters("width") .removeAllQueryParameters("height") + .removeAllQueryParameters("baku") .build() request = request.newBuilder().url(newUrl).build() diff --git a/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewerDto.kt b/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewerDto.kt index 6b3481941..7a1b3e1c9 100644 --- a/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewerDto.kt +++ b/lib-multisrc/gigaviewer/src/eu/kanade/tachiyomi/multisrc/gigaviewer/GigaViewerDto.kt @@ -23,6 +23,7 @@ data class GigaViewerReadableProduct( @Serializable data class GigaViewerPageStructure( val pages: List = emptyList(), + val choJuGiga: String, ) @Serializable