mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
[test] added lib support in YugenAnime
This commit is contained in:
parent
15370e9c14
commit
c4a5dfe065
2 changed files with 47 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 3
|
version = 4
|
||||||
|
|
||||||
|
|
||||||
cloudstream {
|
cloudstream {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addAniListId
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addMalId
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addMalId
|
||||||
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
||||||
|
import com.lagradost.cloudstream3.syncproviders.SyncIdName
|
||||||
import com.lagradost.cloudstream3.utils.ExtractorLink
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
import com.lagradost.cloudstream3.utils.M3u8Helper
|
import com.lagradost.cloudstream3.utils.M3u8Helper
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
|
@ -18,6 +19,11 @@ class YugenAnime : MainAPI() {
|
||||||
override var lang = "en"
|
override var lang = "en"
|
||||||
override val hasDownloadSupport = true
|
override val hasDownloadSupport = true
|
||||||
|
|
||||||
|
override val supportedSyncNames = setOf(
|
||||||
|
SyncIdName.Anilist,
|
||||||
|
SyncIdName.MyAnimeList
|
||||||
|
)
|
||||||
|
|
||||||
override val supportedTypes = setOf(
|
override val supportedTypes = setOf(
|
||||||
TvType.Anime,
|
TvType.Anime,
|
||||||
TvType.AnimeMovie,
|
TvType.AnimeMovie,
|
||||||
|
@ -25,6 +31,9 @@ class YugenAnime : MainAPI() {
|
||||||
)
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private const val consumetAnilist = "https://api.consumet.org/meta/anilist"
|
||||||
|
private const val consumetMal = "https://api.consumet.org/meta/mal"
|
||||||
|
|
||||||
fun getType(t: String): TvType {
|
fun getType(t: String): TvType {
|
||||||
return if (t.contains("OVA", true) || t.contains("Special", true)) TvType.OVA
|
return if (t.contains("OVA", true) || t.contains("Special", true)) TvType.OVA
|
||||||
else if (t.contains("Movie", true)) TvType.AnimeMovie
|
else if (t.contains("Movie", true)) TvType.AnimeMovie
|
||||||
|
@ -81,6 +90,28 @@ class YugenAnime : MainAPI() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun getLoadUrl(name: SyncIdName, id: String): String? {
|
||||||
|
val syncId = id.split("/").last()
|
||||||
|
val url = if (name == SyncIdName.Anilist) {
|
||||||
|
"${consumetAnilist}/info/$syncId"
|
||||||
|
} else {
|
||||||
|
"${consumetMal}/info/$syncId"
|
||||||
|
}
|
||||||
|
val res = app.get(url).parsedSafe<SyncInfo>()
|
||||||
|
|
||||||
|
val title = res?.title?.romaji ?: res?.title?.english
|
||||||
|
val year = res?.startDate?.year
|
||||||
|
val season = res?.season
|
||||||
|
|
||||||
|
val document = app.get("$mainUrl/discover/?q=$title").document
|
||||||
|
val syncUrl = document.select("div.cards-grid a.anime-meta").find {
|
||||||
|
it.attr("title").equals(title, true) || it.select("div.anime-details span").text().equals("$season $year", true)
|
||||||
|
}?.attr("href")
|
||||||
|
|
||||||
|
return fixUrl(syncUrl ?: return null)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
override suspend fun load(url: String): LoadResponse? {
|
override suspend fun load(url: String): LoadResponse? {
|
||||||
val document = app.get(url).document
|
val document = app.get(url).document
|
||||||
|
|
||||||
|
@ -185,4 +216,19 @@ class YugenAnime : MainAPI() {
|
||||||
@JsonProperty("hls") val hls: List<String>? = null,
|
@JsonProperty("hls") val hls: List<String>? = null,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class SyncTitle(
|
||||||
|
@JsonProperty("romaji") val romaji: String? = null,
|
||||||
|
@JsonProperty("english") val english: String? = null,
|
||||||
|
)
|
||||||
|
|
||||||
|
data class StartDate(
|
||||||
|
@JsonProperty("year") val year: Int? = null,
|
||||||
|
)
|
||||||
|
|
||||||
|
data class SyncInfo(
|
||||||
|
@JsonProperty("title") val title: SyncTitle? = null,
|
||||||
|
@JsonProperty("startDate") val startDate: StartDate? = null,
|
||||||
|
@JsonProperty("season") val season: String? = null,
|
||||||
|
)
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue