GigaViewer: fix scrambled image detection (#10782)

fix
This commit is contained in:
manti 2025-10-01 09:28:56 +02:00 committed by Draff
parent d0e9279214
commit 744c401773
Signed by: Draff
GPG Key ID: E8A89F3211677653
3 changed files with 13 additions and 6 deletions

View File

@ -2,4 +2,4 @@ plugins {
id("lib-multisrc") id("lib-multisrc")
} }
baseVersionCode = 7 baseVersionCode = 8

View File

@ -269,13 +269,18 @@ abstract class GigaViewer(
} }
} }
val isScrambled = episode.readableProduct.pageStructure.choJuGiga == "baku"
return episode.readableProduct.pageStructure.pages return episode.readableProduct.pageStructure.pages
.filter { it.type == "main" } .filter { it.type == "main" }
.mapIndexed { i, page -> .mapIndexed { i, page ->
val imageUrl = page.src.toHttpUrl().newBuilder() val imageUrl = page.src.toHttpUrl().newBuilder().apply {
.addQueryParameter("width", page.width.toString()) addQueryParameter("width", page.width.toString())
.addQueryParameter("height", page.height.toString()) addQueryParameter("height", page.height.toString())
.toString() if (isScrambled) {
addQueryParameter("baku", "true")
}
}.toString()
Page(i, document.location(), imageUrl) Page(i, document.location(), imageUrl)
} }
} }
@ -309,7 +314,7 @@ abstract class GigaViewer(
protected open fun imageIntercept(chain: Interceptor.Chain): Response { protected open fun imageIntercept(chain: Interceptor.Chain): Response {
var request = chain.request() 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) return chain.proceed(request)
} }
@ -319,6 +324,7 @@ abstract class GigaViewer(
val newUrl = request.url.newBuilder() val newUrl = request.url.newBuilder()
.removeAllQueryParameters("width") .removeAllQueryParameters("width")
.removeAllQueryParameters("height") .removeAllQueryParameters("height")
.removeAllQueryParameters("baku")
.build() .build()
request = request.newBuilder().url(newUrl).build() request = request.newBuilder().url(newUrl).build()

View File

@ -23,6 +23,7 @@ data class GigaViewerReadableProduct(
@Serializable @Serializable
data class GigaViewerPageStructure( data class GigaViewerPageStructure(
val pages: List<GigaViewerPage> = emptyList(), val pages: List<GigaViewerPage> = emptyList(),
val choJuGiga: String,
) )
@Serializable @Serializable