From e65246dea07ff6900e3ea354cf3d3ccacd67447c Mon Sep 17 00:00:00 2001 From: hexated Date: Sun, 30 Oct 2022 12:24:44 +0700 Subject: [PATCH] update Sora Home --- SoraStream/build.gradle.kts | 2 +- .../main/kotlin/com/hexated/SoraExtractor.kt | 22 +++++++++---------- .../src/main/kotlin/com/hexated/SoraStream.kt | 4 ++++ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/SoraStream/build.gradle.kts b/SoraStream/build.gradle.kts index 6aa88c1b..a16b517e 100644 --- a/SoraStream/build.gradle.kts +++ b/SoraStream/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 17 +version = 18 cloudstream { diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index d39d28a2..0b206701 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -300,25 +300,25 @@ object SoraExtractor : SoraStream() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { + val url = if(season == null) { + "$mainServerAPI/movies/$id/?_data=routes/movies/\$movieId" + } else { + "$mainServerAPI/tv-shows/$id/?_data=routes/tv-shows/\$tvId" + } + val data = app.get(url).parsedSafe()?.detail + val title = data?.title ?: data?.name + val origTitle = data?.original_title ?: data?.original_name val providerId = if (season == null) { - val url = "$mainServerAPI/movies/$id/?_data=routes/movies/\$movieId" - val data = app.get(url).parsedSafe()?.detail val airDate = (data?.release_date ?: data?.first_air_date)?.substringBefore("-") app.get( - "$mainServerAPI/api/provider?title=${data?.title ?: data?.name}&type=movie&origTitle=${data?.original_title ?: data?.original_name}&year=$airDate&_data=routes/api/provider" + "$mainServerAPI/api/provider?title=$title&type=movie&origTitle=$origTitle&year=$airDate&_data=routes/api/provider" ) .parsedSafe()?.provider?.first { it.provider == "Loklok" }?.id } else { - val url = "$mainServerAPI/tv-shows/$id/?_data=routes/tv-shows/\$tvId" - val data = app.get(url).parsedSafe()?.detail - val airDate = (if (data?.seasons?.size == 1) { - data.seasons.first().air_date - } else { - data?.seasons?.get(season)?.air_date - })?.substringBefore("-") + val airDate = data?.seasons?.first { it.season_number == season }?.air_date?.substringBefore("-") app.get( - "$mainServerAPI/api/provider?title=${data?.title ?: data?.name}&type=tv&origTitle=${data?.original_title ?: data?.original_name}&year=$airDate&season=$season&_data=routes/api/provider" + "$mainServerAPI/api/provider?title=$title&type=tv&origTitle=$origTitle&year=$airDate&season=$season&_data=routes/api/provider" ) .parsedSafe()?.provider?.first { it.provider == "Loklok" }?.id } diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index abb7b27a..91c55ef2 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -86,10 +86,13 @@ open class SoraStream : TmdbProvider() { } override val mainPage = mainPageOf( + "$tmdbAPI/tv/airing_today?api_key=$apiKey®ion=&page=" to "Airing Today TV Shows", "$tmdbAPI/movie/popular?api_key=$apiKey®ion=&page=" to "Popular Movies", "$tmdbAPI/tv/popular?api_key=$apiKey®ion=&page=" to "Popular TV Shows", + "$tmdbAPI/tv/on_the_air?api_key=$apiKey®ion=&page=" to "On The Air TV Shows", "$tmdbAPI/movie/top_rated?api_key=$apiKey®ion=&page=" to "Top Rated Movies", "$tmdbAPI/tv/top_rated?api_key=$apiKey®ion=&page=" to "Top Rated TV Shows", + "$tmdbAPI/movie/upcoming?api_key=$apiKey®ion=&page=" to "Upcoming Movies", "$tmdbAPI/discover/tv?api_key=$apiKey&with_keywords=210024|222243&page=" to "Anime", "$tmdbAPI/discover/movie?api_key=$apiKey&with_keywords=210024|222243&page=" to "Anime Movies", ) @@ -570,6 +573,7 @@ open class SoraStream : TmdbProvider() { data class seasonsVip( @JsonProperty("air_date") val air_date: String? = null, + @JsonProperty("season_number") val season_number: Int? = null, ) data class DetailVip(