From 8dda3a575d6279a9ce332ec1663e51e8ff18de8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Pe=C3=B1a=20Y=20Lillo?= <80992641+Diegopyl1209@users.noreply.github.com> Date: Thu, 22 Sep 2022 21:44:14 -0300 Subject: [PATCH] Fixes [JkAnime] (#883) --- src/es/jkanime/build.gradle | 2 +- .../animeextension/es/jkanime/Jkanime.kt | 234 +++++------------- .../es/jkanime/extractors/JkanimeExtractor.kt | 41 +++ 3 files changed, 98 insertions(+), 179 deletions(-) create mode 100644 src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/extractors/JkanimeExtractor.kt diff --git a/src/es/jkanime/build.gradle b/src/es/jkanime/build.gradle index e4dd1c856..7c7784d70 100644 --- a/src/es/jkanime/build.gradle +++ b/src/es/jkanime/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Jkanime' pkgNameSuffix = 'es.jkanime' extClass = '.Jkanime' - extVersionCode = 7 + extVersionCode = 8 libVersion = '13' } diff --git a/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt b/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt index fc2695bdc..2a7f79386 100644 --- a/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt +++ b/src/es/jkanime/src/eu/kanade/tachiyomi/animeextension/es/jkanime/Jkanime.kt @@ -2,10 +2,10 @@ package eu.kanade.tachiyomi.animeextension.es.jkanime import android.app.Application import android.content.SharedPreferences -import android.util.Log import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.jkanime.extractors.FembedExtractor +import eu.kanade.tachiyomi.animeextension.es.jkanime.extractors.JkanimeExtractor import eu.kanade.tachiyomi.animeextension.es.jkanime.extractors.OkruExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -20,8 +20,6 @@ import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response -import org.jsoup.Connection -import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt @@ -46,17 +44,15 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeSelector(): String = "div.col-lg-12 div.list" - override fun popularAnimeRequest(page: Int): Request = GET("https://jkanime.net/top/") + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/top/") override fun popularAnimeFromElement(element: Element): SAnime { - val anime = SAnime.create() - anime.setUrlWithoutDomain( - element.select("div#conb a").attr("href") - ) - anime.title = element.select("div#conb a").attr("title") - anime.thumbnail_url = element.select("div#conb a img").attr("src") - anime.description = element.select("div#conb div#animinfo p").text() - return anime + return SAnime.create().apply { + title = element.select("div#conb a").attr("title") + thumbnail_url = element.select("div#conb a img").attr("src") + description = element.select("div#conb div#animinfo p").text() + setUrlWithoutDomain(element.select("div#conb a").attr("href")) + } } override fun popularAnimeNextPageSelector(): String = "uwu" @@ -67,55 +63,17 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val pageBody = response.asJsoup() val animeId = pageBody.select("div.anime__details__text div.anime__details__title div#guardar-anime.btn.btn-light.btn-sm.ml-2") .attr("data-anime") + val lastEp = client.newCall(GET("$baseUrl/ajax/last_episode/$animeId/")).execute().asJsoup().body().text() + .substringAfter("number\":\"").substringBefore("\"").toInt() - val pageNumber = pageBody.select("div.anime__pagination a") - val lastPage = pageNumber.last()?.attr("href") - ?.replace("#pag", "") - val firstPage = pageNumber.first()?.attr("href") - ?.replace("#pag", "") - Log.i("bruh", "ULTIMA: $lastPage") - - if (firstPage != lastPage) { - var checkLast = 0 - for (i in 1 until lastPage?.toInt()!!) { - Log.i("bruh", "aaa") - for (j in 1..12) { - // Log.i("bruh", (j + checkLast).toString()) - val episode = SEpisode.create().apply { - episode_number = (j + checkLast).toFloat() - name = "Episodio ${j + checkLast}" - } - episode.setUrlWithoutDomain("$episodeLink/${j + checkLast}") - episodes.add(episode) - } - checkLast += 12 - } - Jsoup.connect("https://jkanime.net/ajax/pagination_episodes/$animeId/$lastPage").get() - .body().select("body").text().replace("}]", "").split("}").forEach { json -> - val number = json.substringAfter("\"number\":\"").substringBefore("\"") - Log.i("bruh", number) - val episode = SEpisode.create().apply { - episode_number = number.toFloat() - name = "Episodio $number" - } - episode.setUrlWithoutDomain("$episodeLink/$number") - episodes.add(episode) - } + for (i in 1..lastEp) { + val episode = SEpisode.create() + episode.setUrlWithoutDomain("$episodeLink/$i") + episode.name = "Episodio $i" + episode.episode_number = i.toFloat() + episodes.add(episode) } - if (firstPage == lastPage) { - Jsoup.connect("https://jkanime.net/ajax/pagination_episodes/$animeId/$lastPage").get() - .body().select("body").text().replace("}]", "").split("}").forEach { json -> - val number = json.substringAfter("\"number\":\"").substringBefore("\"") - Log.i("bruh", number) - val episode = SEpisode.create().apply { - episode_number = number.toFloat() - name = "Episodio $number" - } - episode.setUrlWithoutDomain("$episodeLink/$number") - episodes.add(episode) - } - } return episodes.reversed() } @@ -125,100 +83,47 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun videoListParse(response: Response): List