fix(bakamh): fix unable to load chapter (#11180)
* fix(bakamh): fix unable to load chapter * refactor(bakamh): optimize chapter list parsing logic - Consolidate chapter selectors into single method
This commit is contained in:
parent
284d807f53
commit
7d754490b8
@ -3,7 +3,7 @@ ext {
|
||||
extClass = '.Bakamh'
|
||||
themePkg = 'madara'
|
||||
baseUrl = 'https://bakamh.com'
|
||||
overrideVersionCode = 3
|
||||
overrideVersionCode = 4
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,9 @@ package eu.kanade.tachiyomi.extension.zh.bakamh
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.Response
|
||||
import org.jsoup.nodes.Element
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
@ -15,16 +17,42 @@ class Bakamh : Madara(
|
||||
) {
|
||||
override val mangaDetailsSelectorStatus = ".post-content_item:contains(状态) .summary-content"
|
||||
|
||||
override fun chapterListSelector() = "div.tab-content li:has(a[data-chapter-url])"
|
||||
|
||||
override fun headersBuilder(): Headers.Builder {
|
||||
return super.headersBuilder()
|
||||
.add("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7")
|
||||
}
|
||||
|
||||
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||
val urlElement = element.selectFirst(chapterUrlSelector)!!
|
||||
url = urlElement.attr("abs:data-chapter-url")
|
||||
name = urlElement.text()
|
||||
override fun chapterListSelector() = ".chapter-loveYou, li a[onclick], li a"
|
||||
|
||||
override fun chapterListParse(response: Response): List<SChapter> {
|
||||
val mangaUrl = response.request.url.toString().lowercase()
|
||||
val doc = response.asJsoup()
|
||||
return doc.select(chapterListSelector())
|
||||
.mapNotNull { paresChapter(it, mangaUrl) }
|
||||
}
|
||||
|
||||
fun paresChapter(element: Element, mangaUrl: String): SChapter? {
|
||||
// current url attribute
|
||||
if (element.hasAttr("storage-chapter-url")) {
|
||||
return SChapter.create().apply {
|
||||
url = element.absUrl("storage-chapter-url")
|
||||
name = element.text()
|
||||
chapter_number = 0F
|
||||
}
|
||||
}
|
||||
|
||||
// compatibility operation for modified versions
|
||||
return element.attributes()
|
||||
.find { attr ->
|
||||
val value = attr.value.lowercase()
|
||||
value.startsWith(mangaUrl) && value != mangaUrl
|
||||
}
|
||||
?.let { attr ->
|
||||
SChapter.create().apply {
|
||||
url = element.absUrl(attr.key)
|
||||
name = element.text()
|
||||
chapter_number = 0F
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user