From ba20007ec7db29c249b9ea08d0fd2b20367f46e4 Mon Sep 17 00:00:00 2001 From: happywillow0 <45346080+happywillow0@users.noreply.github.com> Date: Tue, 5 Nov 2019 18:28:04 -0500 Subject: [PATCH] [Fix] TMO - Updates page parsing (#1751) [Fix] TMO - Updates page parsing --- src/es/tumangaonline/build.gradle | 4 +++- .../es/tumangaonline/TuMangaOnline.kt | 23 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/es/tumangaonline/build.gradle b/src/es/tumangaonline/build.gradle index beeb5b6c5..162b5109a 100755 --- a/src/es/tumangaonline/build.gradle +++ b/src/es/tumangaonline/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: TuMangaOnline' pkgNameSuffix = 'es.tumangaonline' extClass = '.TuMangaOnline' - extVersionCode = 11 + extVersionCode = 12 libVersion = '1.2' } @@ -13,6 +13,8 @@ dependencies { implementation project(':lib-ratelimit') compileOnly project(':preference-stub') compileOnly 'com.github.inorichi.injekt:injekt-core:65b0440' + compileOnly 'com.google.code.gson:gson:2.8.5' + compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' } apply from: "$rootDir/common.gradle" diff --git a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt index 363a4c588..e42ed4035 100755 --- a/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt +++ b/src/es/tumangaonline/src/eu/kanade/tachiyomi/extension/es/tumangaonline/TuMangaOnline.kt @@ -4,6 +4,8 @@ import android.app.Application import android.content.SharedPreferences import android.support.v7.preference.ListPreference import android.support.v7.preference.PreferenceScreen +import com.github.salomonbrys.kotson.string +import com.google.gson.JsonParser import okhttp3.* import java.util.* import org.jsoup.nodes.Element @@ -15,6 +17,7 @@ import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor +import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.source.ConfigurableSource import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -249,12 +252,24 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() { return GET(url, headers) } - override fun pageListParse(response: Response): List = mutableListOf().apply { + override fun pageListParse(response: Response): List { val body = response.asJsoup() - - body.select("div#viewer-container > div.viewer-image-container > img.viewer-image")?.forEach { - add(Page(size, "", it.attr("src"))) + val imageRoute = body.select("script:containsData(imageRoute)").html().substringAfter("imageRoute = \"").substringBefore(":IMAGE_NAME") + val token = body.select("meta[name=csrf-token]").attr("content") + val base64 = body.select("script:containsData(base64)").html().substringAfter("','").substringBefore("','all');") + val chapterid = body.baseUri().substringAfter("viewer/").substringBefore("/cascade") + val headers = headersBuilder() + .add("Content-Type", "application/json; charset=utf-8") + .add("X-CSRF-TOKEN",token) + .build() + val jsonData = client.newCall(POST("$baseUrl/upload_images/$chapterid/$base64/all", headers)).execute() + val jbody = jsonData.body()!!.string() + val results = JsonParser().parse(jbody).asJsonArray + val pages = mutableListOf() + for (i in 0 until results.size()) { + pages.add(Page(i, "",imageRoute + results[i].string)) } + return pages } override fun pageListParse(document: Document) = throw UnsupportedOperationException("Not used")