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")
}
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
.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()

View File

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