From 65d23b85d8e49acc29d3c758218d84a7a2a1d8b8 Mon Sep 17 00:00:00 2001 From: AbdullahM0hamed <25087116+AbdullahM0hamed@users.noreply.github.com> Date: Tue, 13 Oct 2020 22:21:08 +0100 Subject: [PATCH] Wpmangastream fixes (#4605) Wpmangastream fixes --- src/all/wpmangastream/build.gradle | 2 +- .../all/wpmangastream/WPMangaStream.kt | 29 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/all/wpmangastream/build.gradle b/src/all/wpmangastream/build.gradle index c959b1598..2b7474973 100644 --- a/src/all/wpmangastream/build.gradle +++ b/src/all/wpmangastream/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'WP MangaStream (multiple sources)' pkgNameSuffix = 'all.wpmangastream' extClass = '.WPMangaStreamFactory' - extVersionCode = 25 + extVersionCode = 26 libVersion = '1.2' } diff --git a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt index 86387c757..da543c986 100644 --- a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt +++ b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt @@ -17,6 +17,7 @@ import okhttp3.Headers import okhttp3.HttpUrl import okhttp3.OkHttpClient import okhttp3.Request +import org.json.JSONArray import org.jsoup.nodes.Document import org.jsoup.nodes.Element import org.jsoup.select.Elements @@ -179,14 +180,14 @@ abstract class WPMangaStream( else -> SManga.UNKNOWN } - override fun chapterListSelector() = "div.bxcl ul li, div.cl ul li" + override fun chapterListSelector() = "div.bxcl ul li, div.cl ul li, li:has(div.chbox):has(div.eph-num)" override fun chapterFromElement(element: Element): SChapter { - val urlElement = element.select(".lchx > a, span.leftoff a").first() + val urlElement = element.select(".lchx > a, span.leftoff a, div.eph-num > a").first() val chapter = SChapter.create() chapter.setUrlWithoutDomain(urlElement.attr("href")) - chapter.name = urlElement.text() - chapter.date_upload = element.select("span.rightoff, time").firstOrNull()?.text()?.let { parseChapterDate(it) } ?: 0 + chapter.name = if (urlElement.select("span.chapternum").isNotEmpty()) urlElement.select("span.chapternum").text() else urlElement.text() + chapter.date_upload = element.select("span.rightoff, time, span.chapterdate").firstOrNull()?.text()?.let { parseChapterDate(it) } ?: 0 return chapter } @@ -237,9 +238,25 @@ abstract class WPMangaStream( } override fun pageListParse(document: Document): List { - return document.select("div#readerarea img") + var pages = mutableListOf() + document.select("div#readerarea img") .filterNot { it.attr("src").isNullOrEmpty() } - .mapIndexed { i, img -> Page(i, "", img.attr("abs:src")) } + .mapIndexed { i, img -> pages.add(Page(i, "", img.attr("abs:src"))) } + + // Some wpmangastream sites like AsuraScans now load pages via javascript + if (pages.isNotEmpty()) { return pages } + + val docString = document.toString() + val imageListRegex = Regex("images.*?:.*?(\\[.*?\\])") + + val imageList = JSONArray(imageListRegex.find(docString)!!.destructured.toList()[0]) + + + for (i in 0 until imageList.length()) { + pages.add(Page(i, "", imageList.getString(i))) + } + + return pages } override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")