SpectralScan: Fix no pages found (#9450)
* Fix no pages found * Bump version
This commit is contained in:
parent
717d58a63c
commit
791d203f42
@ -1,7 +1,7 @@
|
||||
ext {
|
||||
extName = 'Spectral Scan'
|
||||
extClass = '.SpectralScan'
|
||||
extVersionCode = 44
|
||||
extVersionCode = 45
|
||||
isNsfw = false
|
||||
}
|
||||
|
||||
|
@ -8,9 +8,13 @@ import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import keiyoushi.utils.parseAs
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import okhttp3.ResponseBody.Companion.toResponseBody
|
||||
import okio.ByteString.Companion.decodeBase64
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
@ -28,6 +32,19 @@ class SpectralScan : ParsedHttpSource() {
|
||||
|
||||
override val client = super.client.newBuilder()
|
||||
.rateLimit(2)
|
||||
.addInterceptor { chain ->
|
||||
val request = chain.request()
|
||||
val response = chain.proceed(request)
|
||||
val url = request.url
|
||||
if (url.fragment.isNullOrBlank().not() && url.fragment!!.contains("page")) {
|
||||
val dto = response.parseAs<ImageSrc>()
|
||||
val byteString = dto.base64.decodeBase64()!!
|
||||
return@addInterceptor response.newBuilder()
|
||||
.body(byteString.toResponseBody(dto.mimeType.toMediaType()))
|
||||
.build()
|
||||
}
|
||||
response
|
||||
}
|
||||
.build()
|
||||
|
||||
// ==================== Popular ==========================
|
||||
@ -121,8 +138,8 @@ class SpectralScan : ParsedHttpSource() {
|
||||
// ==================== Page ==========================
|
||||
|
||||
override fun pageListParse(document: Document): List<Page> {
|
||||
return document.select("#chapterPagesContainer img").mapIndexed { index, element ->
|
||||
Page(index, imageUrl = element.absUrl("src"))
|
||||
return document.select(".manga-page-container canvas").mapIndexed { index, element ->
|
||||
Page(index, imageUrl = "${element.absUrl("data-api-src")}#page")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,22 @@
|
||||
package eu.kanade.tachiyomi.extension.pt.spectralscan
|
||||
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
class SelectFilter(displayName: String = "", val parameter: String = "", private val vals: Array<Pair<String, String>>, state: Int = 0) :
|
||||
Filter.Select<String>(displayName, vals.map { it.first }.toTypedArray(), state) {
|
||||
fun selected() = vals[state].second
|
||||
}
|
||||
|
||||
@Serializable
|
||||
class ImageSrc(
|
||||
@SerialName("image_data")
|
||||
val base64: String,
|
||||
@SerialName("mime_type")
|
||||
val mimeType: String,
|
||||
)
|
||||
|
||||
val sortList = arrayOf(
|
||||
"Mais Recentes" to "latest",
|
||||
"Mais Populares" to "popular",
|
Loading…
x
Reference in New Issue
Block a user