SpectralScan: Fix chapters not found (#9462)

* Fix chapters not found

* Fix lint
This commit is contained in:
Chopper 2025-06-28 12:05:41 -03:00 committed by Draff
parent 4c9e52353a
commit 7cc89b1d4a
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 9 additions and 22 deletions

View File

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

View File

@ -7,16 +7,15 @@ 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 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
import java.io.IOException
class SpectralScan : ParsedHttpSource() {
@ -35,7 +34,12 @@ class SpectralScan : ParsedHttpSource() {
.addInterceptor { chain ->
val request = chain.request()
val response = chain.proceed(request)
val url = request.url
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>()
val byteString = dto.base64.decodeBase64()!!
@ -110,24 +114,7 @@ class SpectralScan : ParsedHttpSource() {
// ==================== Chapter =======================
override fun chapterListParse(response: Response): List<SChapter> {
val document = response.asJsoup()
val element = document.selectFirst("section.chapter-section")!!
val chapters = element.attr("data-total-chapters")
val pathSegment = element.attr("data-ajax-url")
val url = "$baseUrl$pathSegment".toHttpUrl().newBuilder()
.addQueryParameter("per_page", chapters)
.build()
val newHeaders = headers.newBuilder()
.set("X-Requested-With", "XMLHttpRequest")
.build()
return super.chapterListParse(client.newCall(GET(url, newHeaders)).execute())
}
override fun chapterListSelector() = ".chapter-item"
override fun chapterListSelector() = "a.chapter-item"
override fun chapterFromElement(element: Element) = SChapter.create().apply {
name = element.selectFirst(".chapter-number")!!.text()