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("