From ee75c7dfcdcf99f1c7740dcae4e4de07b451898c Mon Sep 17 00:00:00 2001 From: antonydp <38143733+antonydp@users.noreply.github.com> Date: Thu, 3 Nov 2022 01:33:29 +0100 Subject: [PATCH] aniplay mainpage changes, callback changes --- AniPlayProvider/build.gradle.kts | 2 +- .../kotlin/com/lagradost/AniPlayProvider.kt | 53 +++++++++---------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/AniPlayProvider/build.gradle.kts b/AniPlayProvider/build.gradle.kts index 788b96c..2247b83 100644 --- a/AniPlayProvider/build.gradle.kts +++ b/AniPlayProvider/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 3 +version = 4 cloudstream { diff --git a/AniPlayProvider/src/main/kotlin/com/lagradost/AniPlayProvider.kt b/AniPlayProvider/src/main/kotlin/com/lagradost/AniPlayProvider.kt index 1aea8ba..2f006cc 100644 --- a/AniPlayProvider/src/main/kotlin/com/lagradost/AniPlayProvider.kt +++ b/AniPlayProvider/src/main/kotlin/com/lagradost/AniPlayProvider.kt @@ -51,11 +51,15 @@ class AniPlayProvider : MainAPI() { data class ApiMainPageAnime( @JsonProperty("animeId") val id: Int, + @JsonProperty("id") val id2: Int, @JsonProperty("episodeNumber") val episode: String?, - @JsonProperty("animeTitle") val title: String, - @JsonProperty("animeType") val type: String, + @JsonProperty("animeTitle") val title: String?, + @JsonProperty("title") val title2: String?, + @JsonProperty("animeType") val type: String?, + @JsonProperty("type") val type2: String?, @JsonProperty("fullHd") val fullHD: Boolean, - @JsonProperty("animeVerticalImages") val posters: List + @JsonProperty("animeVerticalImages") val posters: List?, + @JsonProperty("verticalImages") val posters2: List? ) data class ApiSearchResult( @@ -107,6 +111,7 @@ class AniPlayProvider : MainAPI() { @JsonProperty("status") val status: String, @JsonProperty("genres") val genres: List, @JsonProperty("verticalImages") val posters: List, + @JsonProperty("horizontalImages") val horizontalPosters: List, @JsonProperty("listWebsites") val websites: List, @JsonProperty("episodes") val episodes: List, @JsonProperty("seasons") val seasons: List? @@ -115,23 +120,29 @@ class AniPlayProvider : MainAPI() { data class ApiEpisodeUrl( @JsonProperty("videoUrl") val url: String ) + override val mainPage = mainPageOf( + Pair("$mainUrl/api/home/latest-episodes?page=", "Ultime uscite"), + Pair("$mainUrl/api/anime/advanced-search?size=36&sort=views,desc&sort=id&page=", "I più popolari"), + ) + override suspend fun getMainPage(page: Int, request: MainPageRequest): HomePageResponse { - override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse { - val response = parseJson>(app.get("$mainUrl/api/home/latest-episodes?page=0").text) + val response = parseJson>(app.get(request.data + page).text) val results = response.map{ - val isDub = isDub(it.title) + val title = it.title?:it.title2!! + val isDub = isDub(title) + val id = if (it.id == 0) it.id2 else it.id newAnimeSearchResponse( - name = if (isDub) it.title.replace(dubIdentifier, "") else it.title, - url = "$mainUrl/api/anime/${it.id}", - type = getType(it.type), + name = if (isDub) title.replace(dubIdentifier, "") else title, + url = "$mainUrl/api/anime/$id", + type = getType(it.type?:it.type2), ){ addDubStatus(isDub, it.episode?.toIntOrNull()) - this.posterUrl = it.posters.first().posterUrl + this.posterUrl = (it.posters?:it.posters2!!).first().posterUrl this.quality = if (it.fullHD) SearchQuality.HD else null } } - return HomePageResponse(listOf(HomePageList("Ultime uscite",results))) + return newHomePageResponse(request.name, results) } override suspend fun quickSearch(query: String): List? { @@ -185,7 +196,7 @@ class AniPlayProvider : MainAPI() { this.plot = response.plot this.tags = tags this.showStatus = getStatus(response.status) - addPoster(response.posters.first().posterUrl) + addPoster(response.horizontalPosters.first().posterUrl) addEpisodes(if (isDub) DubStatus.Dubbed else DubStatus.Subbed, episodes) addMalId(malId) addAniListId(aniListId) @@ -202,22 +213,6 @@ class AniPlayProvider : MainAPI() { val episode = parseJson(app.get(data).text) - if(episode.url.contains(".m3u8")){ - val m3u8Helper = M3u8Helper() - val streams = m3u8Helper.m3u8Generation(M3u8Helper.M3u8Stream(episode.url,Qualities.Unknown.value), false) - - streams.forEach { - callback.invoke( - ExtractorLink( - name, - name, - it.streamUrl, - referer = mainUrl, - quality = it.quality ?: Qualities.Unknown.value, - isM3u8 = it.streamUrl.contains(".m3u8"))) } - return true - } - callback.invoke( ExtractorLink( name, @@ -225,7 +220,7 @@ class AniPlayProvider : MainAPI() { episode.url, referer = mainUrl, quality = Qualities.Unknown.value, - isM3u8 = false, + isM3u8 = episode.url.contains(".m3u8"), ) ) return true