SpectralScan: Fix pages (#9658)

* Fix pages

* Close the response.

---------

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
This commit is contained in:
Chopper 2025-07-16 12:59:52 -03:00 committed by Draff
parent 09bab2593b
commit 0a7189534e
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 6 additions and 26 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Spectral Scan'
extClass = '.SpectralScan'
extVersionCode = 47
extVersionCode = 48
isNsfw = false
}

View File

@ -7,12 +7,8 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import keiyoushi.utils.parseAs
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.Request
import okhttp3.ResponseBody.Companion.toResponseBody
import okio.ByteString.Companion.decodeBase64
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.io.IOException
@ -32,28 +28,12 @@ class SpectralScan : ParsedHttpSource() {
override val client = super.client.newBuilder()
.rateLimit(2)
.addInterceptor { chain ->
val request = chain.request()
val response = chain.proceed(request)
val url = response.request.url
if (url.toString().contains("login")) {
throw IOException("Faça o login na WebView para acessar o contéudo")
}
if (url.fragment.isNullOrBlank().not() && url.fragment!!.contains("page")) {
val dto = response.parseAs<ImageSrc>()
if (dto.isBase64().not()) {
response.close()
return@addInterceptor chain.proceed(GET(dto.url, headers))
chain.proceed(chain.request()).also {
if (it.request.url.toString().contains("login")) {
it.close()
throw IOException("Faça o login na WebView para acessar o contéudo")
}
val byteString = dto.base64.decodeBase64()!!
return@addInterceptor response.newBuilder()
.body(byteString.toResponseBody(dto.mimeType.toMediaType()))
.build()
}
response
}
.build()
@ -132,7 +112,7 @@ class SpectralScan : ParsedHttpSource() {
override fun pageListParse(document: Document): List<Page> {
return document.select(".manga-page-container").mapIndexed { index, element ->
Page(index, imageUrl = "${element.absUrl("data-api-src")}#page")
Page(index, imageUrl = "${element.absUrl("data-image-src")}")
}
}