From df599e9d50aabb12901a9afe87169c49cdc9fa94 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 25 Sep 2020 19:44:18 +0300 Subject: [PATCH] Fix MangaLib parser --- .../kotatsu/core/parser/site/MangaLibRepository.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt index e749f5f90..d7b22657d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt @@ -95,7 +95,7 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) : append("/c") append(item.getString("chapter_number")) append('/') - append(item.getJSONArray("teams").getJSONObject(0).getString("slug")) + append(item.getJSONArray("teams").getJSONObject(0).optString("slug")) } var name = item.getString("chapter_name") if (name.isNullOrBlank() || name == "null") { @@ -142,12 +142,18 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) : override suspend fun getPages(chapter: MangaChapter): List { val doc = loaderContext.httpGet(chapter.url).parseHtml() val scripts = doc.head().select("script") - val pg = doc.body().getElementById("pg").html().substringAfter('=').substringBeforeLast(';') + val pg = doc.body().getElementById("pg").html() + .substringAfter('=') + .substringBeforeLast(';') val pages = JSONArray(pg) for (script in scripts) { val raw = script.html().trim() - if (raw.startsWith("window.__info")) { - val json = JSONObject(raw.substringAfter('=').substringBeforeLast(';')) + if (raw.contains("window.__info")) { + val json = JSONObject( + raw.substringAfter("window.__info") + .substringAfter('=') + .substringBeforeLast(';') + ) val domain = json.getJSONObject("servers").run { getStringOrNull("main") ?: getString( json.getJSONObject("img").getString("server")