SpectralScan: Fix pages not found (#9479)

Fix pages not found
This commit is contained in:
Chopper 2025-07-01 01:21:11 -03:00 committed by Draff
parent a916378f4e
commit 2512c9e0ad
Signed by: Draff
GPG Key ID: E8A89F3211677653
3 changed files with 15 additions and 5 deletions

View File

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

View File

@ -42,6 +42,12 @@ class SpectralScan : ParsedHttpSource() {
if (url.fragment.isNullOrBlank().not() && url.fragment!!.contains("page")) { if (url.fragment.isNullOrBlank().not() && url.fragment!!.contains("page")) {
val dto = response.parseAs<ImageSrc>() val dto = response.parseAs<ImageSrc>()
if (dto.isBase64().not()) {
response.close()
return@addInterceptor chain.proceed(GET(dto.url, headers))
}
val byteString = dto.base64.decodeBase64()!! val byteString = dto.base64.decodeBase64()!!
return@addInterceptor response.newBuilder() return@addInterceptor response.newBuilder()
.body(byteString.toResponseBody(dto.mimeType.toMediaType())) .body(byteString.toResponseBody(dto.mimeType.toMediaType()))
@ -125,7 +131,7 @@ class SpectralScan : ParsedHttpSource() {
// ==================== Page ========================== // ==================== Page ==========================
override fun pageListParse(document: Document): List<Page> { override fun pageListParse(document: Document): List<Page> {
return document.select(".manga-page-container canvas").mapIndexed { index, element -> return document.select(".manga-page-container").mapIndexed { index, element ->
Page(index, imageUrl = "${element.absUrl("data-api-src")}#page") Page(index, imageUrl = "${element.absUrl("data-api-src")}#page")
} }
} }

View File

@ -12,10 +12,14 @@ class SelectFilter(displayName: String = "", val parameter: String = "", private
@Serializable @Serializable
class ImageSrc( class ImageSrc(
@SerialName("image_data") @SerialName("image_data")
val base64: String, val base64: String = "",
@SerialName("mime_type") @SerialName("mime_type")
val mimeType: String, val mimeType: String = "",
) @SerialName("image_url")
val url: String = "",
) {
fun isBase64() = base64.isNotBlank()
}
val sortList = arrayOf( val sortList = arrayOf(
"Mais Recentes" to "latest", "Mais Recentes" to "latest",