From 7cc89b1d4ae8bb32e5e3d4a10c1f4e4c4e43b7d8 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Sat, 28 Jun 2025 12:05:41 -0300 Subject: [PATCH] SpectralScan: Fix chapters not found (#9462) * Fix chapters not found * Fix lint --- src/pt/spectralscan/build.gradle | 2 +- .../extension/pt/spectralscan/SpectralScan.kt | 29 +++++-------------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/src/pt/spectralscan/build.gradle b/src/pt/spectralscan/build.gradle index 0485d24dc..a365f7868 100644 --- a/src/pt/spectralscan/build.gradle +++ b/src/pt/spectralscan/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Spectral Scan' extClass = '.SpectralScan' - extVersionCode = 45 + extVersionCode = 46 isNsfw = false } diff --git a/src/pt/spectralscan/src/eu/kanade/tachiyomi/extension/pt/spectralscan/SpectralScan.kt b/src/pt/spectralscan/src/eu/kanade/tachiyomi/extension/pt/spectralscan/SpectralScan.kt index b8fec5a5d..3b8c05b9b 100644 --- a/src/pt/spectralscan/src/eu/kanade/tachiyomi/extension/pt/spectralscan/SpectralScan.kt +++ b/src/pt/spectralscan/src/eu/kanade/tachiyomi/extension/pt/spectralscan/SpectralScan.kt @@ -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() val byteString = dto.base64.decodeBase64()!! @@ -110,24 +114,7 @@ class SpectralScan : ParsedHttpSource() { // ==================== Chapter ======================= - override fun chapterListParse(response: Response): List { - 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()