mirror of
https://github.com/keiyoushi/extensions-source.git
synced 2024-11-22 02:12:42 +01:00
Miaoshang: Fix page parsing (#2556)
* Fix page parsing * Add default function to fall back if the website get back to normal calling super.pageListParse(response) will cause java.lang.IllegalStateException: closed since response.asJsoup() will be called twice, so resolve to copying the code
This commit is contained in:
parent
f54f289eac
commit
ba0f132422
@ -16,11 +16,11 @@ open class MCCMSConfig(
|
||||
hasCategoryPage: Boolean = true,
|
||||
val textSearchOnlyPageOne: Boolean = false,
|
||||
val useMobilePageList: Boolean = false,
|
||||
private val lazyLoadImageAttr: String = "data-original",
|
||||
protected val lazyLoadImageAttr: String = "data-original",
|
||||
) {
|
||||
val genreData = GenreData(hasCategoryPage)
|
||||
|
||||
fun pageListParse(response: Response): List<Page> {
|
||||
open fun pageListParse(response: Response): List<Page> {
|
||||
val document = response.asJsoup()
|
||||
|
||||
return if (useMobilePageList) {
|
||||
|
@ -3,7 +3,7 @@ ext {
|
||||
extClass = '.Miaoshang'
|
||||
themePkg = 'mccms'
|
||||
baseUrl = 'https://www.miaoshangmanhua.com'
|
||||
overrideVersionCode = 0
|
||||
overrideVersionCode = 1
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
@ -3,18 +3,43 @@ package eu.kanade.tachiyomi.extension.zh.miaoshang
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMS
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMSConfig
|
||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.Response
|
||||
import org.jsoup.Jsoup
|
||||
|
||||
class Miaoshang : MCCMS(
|
||||
"喵上漫画",
|
||||
"https://www.miaoshangmanhua.com",
|
||||
"zh",
|
||||
MCCMSConfig(
|
||||
textSearchOnlyPageOne = true,
|
||||
lazyLoadImageAttr = "data-src",
|
||||
),
|
||||
MiaoshangMCCMSConfig(),
|
||||
) {
|
||||
override val client = network.cloudflareClient.newBuilder()
|
||||
.rateLimitHost(baseUrl.toHttpUrl(), 2)
|
||||
.build()
|
||||
|
||||
private class MiaoshangMCCMSConfig : MCCMSConfig(
|
||||
textSearchOnlyPageOne = true,
|
||||
lazyLoadImageAttr = "data-src",
|
||||
) {
|
||||
override fun pageListParse(response: Response): List<Page> {
|
||||
val document = response.asJsoup()
|
||||
val container = document.select(".rd-article-wr")
|
||||
val comments = container.comments()
|
||||
|
||||
return comments.filter { comment ->
|
||||
comment.data.contains(lazyLoadImageAttr)
|
||||
}.mapIndexed { i, comment ->
|
||||
Jsoup.parse(comment.data)
|
||||
.selectFirst("img[$lazyLoadImageAttr]")?.attr(lazyLoadImageAttr).let { imageUrl ->
|
||||
Page(i, imageUrl = imageUrl)
|
||||
}
|
||||
}.ifEmpty {
|
||||
document.select("img[$lazyLoadImageAttr]").mapIndexed { i, img ->
|
||||
Page(i, imageUrl = img.attr(lazyLoadImageAttr))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user