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 {
|
ext {
|
||||||
extName = 'Spectral Scan'
|
extName = 'Spectral Scan'
|
||||||
extClass = '.SpectralScan'
|
extClass = '.SpectralScan'
|
||||||
extVersionCode = 44
|
extVersionCode = 45
|
||||||
isNsfw = false
|
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.model.SManga
|
||||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
|
import keiyoushi.utils.parseAs
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
|
import okhttp3.ResponseBody.Companion.toResponseBody
|
||||||
|
import okio.ByteString.Companion.decodeBase64
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
|
||||||
@ -28,6 +32,19 @@ class SpectralScan : ParsedHttpSource() {
|
|||||||
|
|
||||||
override val client = super.client.newBuilder()
|
override val client = super.client.newBuilder()
|
||||||
.rateLimit(2)
|
.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()
|
.build()
|
||||||
|
|
||||||
// ==================== Popular ==========================
|
// ==================== Popular ==========================
|
||||||
@ -121,8 +138,8 @@ class SpectralScan : ParsedHttpSource() {
|
|||||||
// ==================== Page ==========================
|
// ==================== Page ==========================
|
||||||
|
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
return document.select("#chapterPagesContainer img").mapIndexed { index, element ->
|
return document.select(".manga-page-container canvas").mapIndexed { index, element ->
|
||||||
Page(index, imageUrl = element.absUrl("src"))
|
Page(index, imageUrl = "${element.absUrl("data-api-src")}#page")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,22 @@
|
|||||||
package eu.kanade.tachiyomi.extension.pt.spectralscan
|
package eu.kanade.tachiyomi.extension.pt.spectralscan
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.source.model.Filter
|
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) :
|
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) {
|
Filter.Select<String>(displayName, vals.map { it.first }.toTypedArray(), state) {
|
||||||
fun selected() = vals[state].second
|
fun selected() = vals[state].second
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
class ImageSrc(
|
||||||
|
@SerialName("image_data")
|
||||||
|
val base64: String,
|
||||||
|
@SerialName("mime_type")
|
||||||
|
val mimeType: String,
|
||||||
|
)
|
||||||
|
|
||||||
val sortList = arrayOf(
|
val sortList = arrayOf(
|
||||||
"Mais Recentes" to "latest",
|
"Mais Recentes" to "latest",
|
||||||
"Mais Populares" to "popular",
|
"Mais Populares" to "popular",
|
Loading…
x
Reference in New Issue
Block a user