Fix japscan pagecount loading (fallback added) ()

This commit is contained in:
BRAMILLE Sébastien 2022-11-04 11:00:33 +00:00 committed by GitHub
parent 86562fc2cb
commit e12605507a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 8 deletions
src
en/ninehentai/src/eu/kanade/tachiyomi/extension/en/ninehentai
fr/japscan
build.gradle
src/eu/kanade/tachiyomi/extension/fr/japscan
th/niceoppai/src/eu/kanade/tachiyomi/extension/th/niceoppai

@ -1,6 +1,5 @@
package eu.kanade.tachiyomi.extension.en.ninehentai package eu.kanade.tachiyomi.extension.en.ninehentai
import android.util.Log
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.asObservableSuccess

@ -6,7 +6,7 @@ ext {
extName = 'Japscan' extName = 'Japscan'
pkgNameSuffix = 'fr.japscan' pkgNameSuffix = 'fr.japscan'
extClass = '.Japscan' extClass = '.Japscan'
extVersionCode = 33 extVersionCode = 34
} }
dependencies { dependencies {

@ -351,8 +351,26 @@ class Japscan : ConfigurableSource, ParsedHttpSource() {
Log.d("japscan", "ZJS at $zjsurl") Log.d("japscan", "ZJS at $zjsurl")
val zjs = client.newCall(GET(baseUrl + zjsurl, headers)).execute().body!!.string() val zjs = client.newCall(GET(baseUrl + zjsurl, headers)).execute().body!!.string()
Log.d("japscan", "webtoon, netdumping initiated") Log.d("japscan", "webtoon, netdumping initiated")
val pagesElement = document.getElementById("pages") val pagesElement = document.getElementById("pages")
var pagecount = pagesElement.getElementsByTag("option").size var pagecount = pagesElement.getElementsByTag("option").size
Log.d("japscan", "fallback $pagecount")
if (pagecount == 0) {
Log.d("japscan", "pagecount not found, fallback 1")
val element = document.select(".card:first-child .card-body p").toString()
val regex = """Pages<\/span>: ([0-9]+)<\/p>""".toRegex()
val matchResult = regex.find(element)
val (pagecountFromRegex) = matchResult!!.destructured
pagecount = pagecountFromRegex.toInt()
Log.d("japscan", "fallback pagecount with regex, result: $pagecount")
}
val pages = ArrayList<Page>() val pages = ArrayList<Page>()
val handler = Handler(Looper.getMainLooper()) val handler = Handler(Looper.getMainLooper())
val checkNew = ArrayList<String>(pagecount) val checkNew = ArrayList<String>(pagecount)
@ -379,6 +397,7 @@ class Japscan : ConfigurableSource, ParsedHttpSource() {
webview.webViewClient = object : WebViewClient() { webview.webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String?) { override fun onPageFinished(view: WebView, url: String?) {
if (pagecount === 0) { if (pagecount === 0) {
Log.d("japscan", "pagecount not found, fallback 2")
Log.d("japscan", "dynamic page count detected, loading it through JS") Log.d("japscan", "dynamic page count detected, loading it through JS")
super.onPageFinished(view, url) super.onPageFinished(view, url)
view.evaluateJavascript( view.evaluateJavascript(

@ -87,7 +87,6 @@ class Niceoppai : ParsedHttpSource() {
} }
MangasPage(mangas, false) MangasPage(mangas, false)
} }
} }