From 0b94f76627808ae9b41a5dfb5d6298bb56052cd4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 16 Feb 2025 10:46:48 -0700 Subject: [PATCH] Move metaproviders to library (#1541) * Move metaproviders to library So that providers can extend them when using the library dependency. * Remove gson --- app/build.gradle.kts | 1 - library/build.gradle.kts | 1 + .../cloudstream3/metaproviders/CrossTmdbProvider.kt | 9 ++++++++- .../cloudstream3/metaproviders/SyncRedirector.kt | 0 .../lagradost/cloudstream3/metaproviders/TmdbProvider.kt | 0 .../cloudstream3/metaproviders/TraktProvider.kt | 9 ++++----- 6 files changed, 13 insertions(+), 7 deletions(-) rename {app/src/main/java => library/src/commonMain/kotlin}/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt (91%) rename {app/src/main/java => library/src/commonMain/kotlin}/com/lagradost/cloudstream3/metaproviders/SyncRedirector.kt (100%) rename {app/src/main/java => library/src/commonMain/kotlin}/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt (100%) rename {app/src/main/java => library/src/commonMain/kotlin}/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt (98%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 33996ff54..d26dee585 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -205,7 +205,6 @@ dependencies { implementation(libs.quickjs) implementation(libs.fuzzywuzzy) // Library/Ext Searching with Levenshtein Distance implementation(libs.safefile) // To Prevent the URI File Fu*kery - implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit coreLibraryDesugaring(libs.desugar.jdk.libs.nio) // NIO Flavor Needed for NewPipeExtractor implementation(libs.conscrypt.android) { version { diff --git a/library/build.gradle.kts b/library/build.gradle.kts index bc73b3dad..7a255ff27 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -31,6 +31,7 @@ kotlin { implementation(libs.fuzzywuzzy) // Match Extractors implementation(libs.rhino) // Run JavaScript implementation(libs.newpipeextractor) + implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit } } } diff --git a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt similarity index 91% rename from app/src/main/java/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt rename to library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt index 5bbb4538b..a9910502d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/CrossTmdbProvider.kt @@ -1,9 +1,16 @@ package com.lagradost.cloudstream3.metaproviders import com.fasterxml.jackson.annotation.JsonProperty -import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.APIHolder.apis import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull +import com.lagradost.cloudstream3.ErrorLoadingException +import com.lagradost.cloudstream3.LoadResponse +import com.lagradost.cloudstream3.MovieLoadResponse +import com.lagradost.cloudstream3.MovieSearchResponse +import com.lagradost.cloudstream3.SearchResponse +import com.lagradost.cloudstream3.SubtitleFile +import com.lagradost.cloudstream3.TvType +import com.lagradost.cloudstream3.amap import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.utils.AppUtils.toJson import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson diff --git a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/SyncRedirector.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/SyncRedirector.kt similarity index 100% rename from app/src/main/java/com/lagradost/cloudstream3/metaproviders/SyncRedirector.kt rename to library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/SyncRedirector.kt diff --git a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt similarity index 100% rename from app/src/main/java/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt rename to library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TmdbProvider.kt diff --git a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt similarity index 98% rename from app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt rename to library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt index 1695c2e48..bb81cd721 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/metaproviders/TraktProvider.kt @@ -1,9 +1,7 @@ package com.lagradost.cloudstream3.metaproviders -import android.net.Uri import com.fasterxml.jackson.annotation.JsonAlias import com.fasterxml.jackson.annotation.JsonProperty -import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.APIHolder.unixTimeMS import com.lagradost.cloudstream3.Actor import com.lagradost.cloudstream3.ActorData @@ -33,6 +31,7 @@ import com.lagradost.cloudstream3.newTvSeriesLoadResponse import com.lagradost.cloudstream3.newTvSeriesSearchResponse import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.toJson +import java.net.URI import java.text.SimpleDateFormat import java.util.Locale import kotlin.math.roundToInt @@ -76,7 +75,7 @@ open class TraktProvider : MainAPI() { if (mediaType == TvType.Movie) { return newMovieSearchResponse( - name = media.title!!, + name = media.title ?: "", url = Data( type = mediaType, mediaDetails = media, @@ -87,7 +86,7 @@ open class TraktProvider : MainAPI() { } } else { return newTvSeriesSearchResponse( - name = media.title!!, + name = media.title ?: "", url = Data( type = mediaType, mediaDetails = media, @@ -319,7 +318,7 @@ open class TraktProvider : MainAPI() { private fun getWidthImageUrl(path: String?, width: String): String? { if (path == null) return null if (!path.contains("image.tmdb.org")) return fixPath(path) - val fileName = Uri.parse(path).lastPathSegment ?: return null + val fileName = URI(path).path?.substringAfterLast('/') ?: return null return "https://image.tmdb.org/t/p/${width}/${fileName}" }