AnimeWorld: Improvements (#1148)

* AnimeWorld: Improvements

* Minor changes
This commit is contained in:
Davide 2022-06-07 20:20:43 +02:00 committed by GitHub
parent 918136f8f0
commit b39c030250
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,6 +3,7 @@ package com.lagradost.cloudstream3.animeproviders
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId
import com.lagradost.cloudstream3.LoadResponse.Companion.addDuration
import com.lagradost.cloudstream3.LoadResponse.Companion.addMalId import com.lagradost.cloudstream3.LoadResponse.Companion.addMalId
import com.lagradost.cloudstream3.LoadResponse.Companion.addRating import com.lagradost.cloudstream3.LoadResponse.Companion.addRating
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
@ -119,16 +120,6 @@ class AnimeWorldProvider : MainAPI() {
} }
override suspend fun load(url: String): LoadResponse { override suspend fun load(url: String): LoadResponse {
fun String.parseDuration(): Int? {
val arr = this.split(" e ")
return if (arr.size == 1)
arr[0].split(' ')[0].toIntOrNull()
else
arr[1].split(' ')[0].toIntOrNull()?.let {
arr[0].removeSuffix("h").toIntOrNull()?.times(60)!!.plus(it)
}
}
val document = request(url).document val document = request(url).document
val widget = document.select("div.widget.info") val widget = document.select("div.widget.info")
@ -140,7 +131,7 @@ class AnimeWorldProvider : MainAPI() {
val type: TvType = getType(widget.select("dd").first()?.text()) val type: TvType = getType(widget.select("dd").first()?.text())
val genres = widget.select(".meta").select("a[href*=\"/genre/\"]").map { it.text() } val genres = widget.select(".meta").select("a[href*=\"/genre/\"]").map { it.text() }
val rating = widget.select("#average-vote")?.text() val rating = widget.select("#average-vote").text()
val trailerUrl = document.select(".trailer[data-url]").attr("data-url") val trailerUrl = document.select(".trailer[data-url]").attr("data-url")
val malId = document.select("#mal-button").attr("href") val malId = document.select("#mal-button").attr("href")
@ -151,7 +142,7 @@ class AnimeWorldProvider : MainAPI() {
var dub = false var dub = false
var year: Int? = null var year: Int? = null
var status: ShowStatus? = null var status: ShowStatus? = null
var duration: Int? = null var duration: String? = null
for (meta in document.select(".meta dt, .meta dd")) { for (meta in document.select(".meta dt, .meta dd")) {
val text = meta.text() val text = meta.text()
@ -162,7 +153,7 @@ class AnimeWorldProvider : MainAPI() {
else if (status == null && text.contains("Stato")) else if (status == null && text.contains("Stato"))
status = getStatus(meta.nextElementSibling()?.text()) status = getStatus(meta.nextElementSibling()?.text())
else if (status == null && text.contains("Durata")) else if (status == null && text.contains("Durata"))
duration = meta.nextElementSibling()?.text()?.parseDuration() duration = meta.nextElementSibling()?.text()
} }
val servers = document.select(".widget.servers") val servers = document.select(".widget.servers")
@ -183,7 +174,7 @@ class AnimeWorldProvider : MainAPI() {
return newAnimeLoadResponse(title, url, type) { return newAnimeLoadResponse(title, url, type) {
engName = title engName = title
japName = otherTitle japName = otherTitle
posterUrl = poster addPoster(poster)
this.year = year this.year = year
addEpisodes(if (dub) DubStatus.Dubbed else DubStatus.Subbed, episodes) addEpisodes(if (dub) DubStatus.Dubbed else DubStatus.Subbed, episodes)
showStatus = status showStatus = status
@ -192,7 +183,7 @@ class AnimeWorldProvider : MainAPI() {
addMalId(malId) addMalId(malId)
addAniListId(anlId) addAniListId(anlId)
addRating(rating) addRating(rating)
this.duration = duration addDuration(duration)
addTrailer(trailerUrl) addTrailer(trailerUrl)
this.recommendations = recommendations this.recommendations = recommendations
this.comingSoon = comingSoon this.comingSoon = comingSoon