diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/ZoroProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/ZoroProvider.kt index aa3b3186..c3501704 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/ZoroProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/ZoroProvider.kt @@ -7,6 +7,7 @@ import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.movieproviders.SflixProvider.Companion.extractRabbitStream import com.lagradost.cloudstream3.movieproviders.SflixProvider.Companion.runSflixExtractorVerifierJob import com.lagradost.cloudstream3.network.Requests.Companion.await +import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.loadExtractor @@ -183,10 +184,17 @@ class ZoroProvider : MainAPI() { return Actor(name = name, image = image) } + data class ZoroSyncData( + @JsonProperty("mal_id") val malId : String?, + @JsonProperty("anilist_id") val aniListId : String?, + ) + override suspend fun load(url: String): LoadResponse { val html = app.get(url).text val document = Jsoup.parse(html) + val syncData = tryParseJson(document.selectFirst("#syncData")?.data()) + val title = document.selectFirst(".anisc-detail > .film-name")?.text().toString() val poster = document.selectFirst(".anisc-poster img")?.attr("src") val tags = document.select(".anisc-info a[href*=\"/genre/\"]").map { it.text() } @@ -283,6 +291,8 @@ class ZoroProvider : MainAPI() { this.tags = tags this.recommendations = recommendations this.actors = actors + this.malId = syncData?.malId?.toIntOrNull() + this.anilistId = syncData?.aniListId?.toIntOrNull() } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt index 43eff14d..7c83aef9 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt @@ -229,9 +229,9 @@ object AppUtils { return mapper.readValue(value) } - inline fun tryParseJson(value: String): T? { + inline fun tryParseJson(value: String?): T? { return try { - parseJson(value) + parseJson(value ?: return null) } catch (_: Exception) { null }