diff --git a/src/en/zoro/AndroidManifest.xml b/src/en/zoro/AndroidManifest.xml index acb4de356..17b857a03 100644 --- a/src/en/zoro/AndroidManifest.xml +++ b/src/en/zoro/AndroidManifest.xml @@ -1,2 +1,24 @@ - \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/src/en/zoro/build.gradle b/src/en/zoro/build.gradle index 81f09d75e..2e306b89e 100644 --- a/src/en/zoro/build.gradle +++ b/src/en/zoro/build.gradle @@ -5,8 +5,12 @@ ext { extName = 'zoro.to (experimental)' pkgNameSuffix = 'en.zoro' extClass = '.Zoro' - extVersionCode = 10 + extVersionCode = 11 libVersion = '13' } +dependencies { + compileOnly libs.bundles.coroutines +} + apply from: "$rootDir/common.gradle" diff --git a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt index f537ebe3b..d138dea00 100644 --- a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt +++ b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt @@ -8,12 +8,18 @@ import eu.kanade.tachiyomi.animeextension.en.zoro.extractors.ZoroExtractor import eu.kanade.tachiyomi.animeextension.en.zoro.utils.JSONUtil import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList +import eu.kanade.tachiyomi.animesource.model.AnimesPage import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject @@ -21,12 +27,15 @@ import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive import okhttp3.Headers +import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy @@ -55,13 +64,11 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/most-popular?page=$page") - override fun popularAnimeFromElement(element: Element): SAnime { - val anime = SAnime.create() - anime.thumbnail_url = element.select("div.film-poster > img").attr("data-src") - anime.setUrlWithoutDomain(element.select("div.film-detail a").attr("href")) - anime.title = element.select("div.film-detail a").attr("data-jname") - anime.description = element.selectFirst("div.film-detail div.description")?.text() - return anime + override fun popularAnimeFromElement(element: Element) = SAnime.create().apply { + thumbnail_url = element.selectFirst("div.film-poster > img").attr("data-src") + val filmDetail = element.selectFirst("div.film-detail a") + setUrlWithoutDomain(filmDetail.attr("href")) + title = filmDetail.attr("data-jname") } override fun popularAnimeNextPageSelector(): String = "li.page-item a[title=Next]" @@ -106,27 +113,29 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val data = body.substringAfter("\"html\":\"").substringBefore("