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 {
extName = 'Spectral Scan'
extClass = '.SpectralScan'
extVersionCode = 46
extVersionCode = 47
isNsfw = false
}

View File

@ -42,6 +42,12 @@ class SpectralScan : ParsedHttpSource() {
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))
}
val byteString = dto.base64.decodeBase64()!!
return@addInterceptor response.newBuilder()
.body(byteString.toResponseBody(dto.mimeType.toMediaType()))
@ -125,7 +131,7 @@ class SpectralScan : ParsedHttpSource() {
// ==================== 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")
}
}

View File

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