SpectralScan: Fix chapters not found (#9462)
* Fix chapters not found * Fix lint
This commit is contained in:
parent
4c9e52353a
commit
7cc89b1d4a
@ -1,7 +1,7 @@
|
|||||||
ext {
|
ext {
|
||||||
extName = 'Spectral Scan'
|
extName = 'Spectral Scan'
|
||||||
extClass = '.SpectralScan'
|
extClass = '.SpectralScan'
|
||||||
extVersionCode = 45
|
extVersionCode = 46
|
||||||
isNsfw = false
|
isNsfw = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,16 +7,15 @@ import eu.kanade.tachiyomi.source.model.Page
|
|||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
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 keiyoushi.utils.parseAs
|
import keiyoushi.utils.parseAs
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.Response
|
|
||||||
import okhttp3.ResponseBody.Companion.toResponseBody
|
import okhttp3.ResponseBody.Companion.toResponseBody
|
||||||
import okio.ByteString.Companion.decodeBase64
|
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
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
class SpectralScan : ParsedHttpSource() {
|
class SpectralScan : ParsedHttpSource() {
|
||||||
|
|
||||||
@ -35,7 +34,12 @@ class SpectralScan : ParsedHttpSource() {
|
|||||||
.addInterceptor { chain ->
|
.addInterceptor { chain ->
|
||||||
val request = chain.request()
|
val request = chain.request()
|
||||||
val response = chain.proceed(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")) {
|
if (url.fragment.isNullOrBlank().not() && url.fragment!!.contains("page")) {
|
||||||
val dto = response.parseAs<ImageSrc>()
|
val dto = response.parseAs<ImageSrc>()
|
||||||
val byteString = dto.base64.decodeBase64()!!
|
val byteString = dto.base64.decodeBase64()!!
|
||||||
@ -110,24 +114,7 @@ class SpectralScan : ParsedHttpSource() {
|
|||||||
|
|
||||||
// ==================== Chapter =======================
|
// ==================== Chapter =======================
|
||||||
|
|
||||||
override fun chapterListParse(response: Response): List<SChapter> {
|
override fun chapterListSelector() = "a.chapter-item"
|
||||||
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 chapterFromElement(element: Element) = SChapter.create().apply {
|
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||||
name = element.selectFirst(".chapter-number")!!.text()
|
name = element.selectFirst(".chapter-number")!!.text()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user