From 9a71bccfcff9f33966c3e06b518d0dfb8ab66642 Mon Sep 17 00:00:00 2001 From: MrIkso Date: Sat, 15 Feb 2025 01:11:46 +0200 Subject: [PATCH] Migrate to version catalog and added provider tests --- AnimeONProvider/build.gradle.kts | 7 ++- .../kotlin/com/lagradost/AnimeONProvider.kt | 30 ++++++------ .../com/lagradost/models/AnimeInfoModel.kt | 4 +- .../com/lagradost/models/NewAnimeModel.kt | 4 +- .../com/lagradost/models/SearchModel.kt | 4 +- .../com/lagradost/AnimeONProviderTest.kt | 14 ++++++ AnimeUAProvider/build.gradle.kts | 4 ++ .../com/lagradost/AnimeUAProviderTest.kt | 14 ++++++ AnitubeinuaProvider/build.gradle.kts | 4 ++ .../com/lagradost/AnitubeinuaProviderTest.kt | 14 ++++++ BambooUAProvider/build.gradle.kts | 5 +- .../com/lagradost/BambooUAProviderTest.kt | 14 ++++++ CikavaIdeyaProvider/build.gradle.kts | 4 ++ .../com/lagradost/CikavaIdeyaProviderTest.kt | 14 ++++++ EneyidaProvider/build.gradle.kts | 4 ++ .../com/lagradost/EneyidaProviderTest.kt | 14 ++++++ HentaiUkrProvider/build.gradle.kts | 7 +-- .../com/lagradost/HentaiUkrProviderTest.kt | 14 ++++++ KinoTronProvider/build.gradle.kts | 4 ++ .../com/lagradost/KinoTronProviderTest.kt | 14 ++++++ KinoVezhaProvider/build.gradle.kts | 4 ++ .../com/lagradost/KinoVezhaProviderTest.kt | 14 ++++++ KlonTVProvider/build.gradle.kts | 4 ++ .../com/lagradost/KlonTVProviderTest.kt | 14 ++++++ SerialnoProvider/build.gradle.kts | 4 ++ .../com/lagradost/SerialnoProviderTest.kt | 14 ++++++ TeleportalProvider/build.gradle.kts | 7 ++- .../com/lagradost/TeleportalProviderTest.kt | 14 ++++++ UAFlixProvider/build.gradle.kts | 5 +- .../com/lagradost/UAFlixProviderTest.kt | 14 ++++++ UASerialProvider/build.gradle.kts | 5 +- .../com/lagradost/UASerialProviderTest.kt | 14 ++++++ UASerialsProProvider/build.gradle.kts | 5 +- .../com/lagradost/UASerialsProProviderTest.kt | 14 ++++++ UAserialsVipProvider/build.gradle.kts | 4 ++ .../com/lagradost/UAserialsVipProviderTest.kt | 14 ++++++ UFDubProvider/build.gradle.kts | 4 ++ .../kotlin/com/lagradost/UFDubProviderTest.kt | 14 ++++++ UakinoProvider/build.gradle.kts | 4 ++ .../com/lagradost/UakinoProviderTest.kt | 14 ++++++ UnimayProvider/build.gradle.kts | 7 ++- .../com/lagradost/UnimayProviderTest.kt | 14 ++++++ VodneriloProvider/build.gradle.kts | 5 +- .../com/lagradost/VodneriloProviderTest.kt | 14 ++++++ build.gradle.kts | 46 ++++++++++--------- gradle/libs.versions.toml | 28 +++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 17 +++++++ 48 files changed, 455 insertions(+), 57 deletions(-) create mode 100644 AnimeONProvider/src/test/kotlin/com/lagradost/AnimeONProviderTest.kt create mode 100644 AnimeUAProvider/src/test/kotlin/com/lagradost/AnimeUAProviderTest.kt create mode 100644 AnitubeinuaProvider/src/test/kotlin/com/lagradost/AnitubeinuaProviderTest.kt create mode 100644 BambooUAProvider/src/test/kotlin/com/lagradost/BambooUAProviderTest.kt create mode 100644 CikavaIdeyaProvider/src/test/kotlin/com/lagradost/CikavaIdeyaProviderTest.kt create mode 100644 EneyidaProvider/src/test/kotlin/com/lagradost/EneyidaProviderTest.kt create mode 100644 HentaiUkrProvider/src/test/kotlin/com/lagradost/HentaiUkrProviderTest.kt create mode 100644 KinoTronProvider/src/test/kotlin/com/lagradost/KinoTronProviderTest.kt create mode 100644 KinoVezhaProvider/src/test/kotlin/com/lagradost/KinoVezhaProviderTest.kt create mode 100644 KlonTVProvider/src/test/kotlin/com/lagradost/KlonTVProviderTest.kt create mode 100644 SerialnoProvider/src/test/kotlin/com/lagradost/SerialnoProviderTest.kt create mode 100644 TeleportalProvider/src/test/kotlin/com/lagradost/TeleportalProviderTest.kt create mode 100644 UAFlixProvider/src/test/kotlin/com/lagradost/UAFlixProviderTest.kt create mode 100644 UASerialProvider/src/test/kotlin/com/lagradost/UASerialProviderTest.kt create mode 100644 UASerialsProProvider/src/test/kotlin/com/lagradost/UASerialsProProviderTest.kt create mode 100644 UAserialsVipProvider/src/test/kotlin/com/lagradost/UAserialsVipProviderTest.kt create mode 100644 UFDubProvider/src/test/kotlin/com/lagradost/UFDubProviderTest.kt create mode 100644 UakinoProvider/src/test/kotlin/com/lagradost/UakinoProviderTest.kt create mode 100644 UnimayProvider/src/test/kotlin/com/lagradost/UnimayProviderTest.kt create mode 100644 VodneriloProvider/src/test/kotlin/com/lagradost/VodneriloProviderTest.kt create mode 100644 gradle/libs.versions.toml diff --git a/AnimeONProvider/build.gradle.kts b/AnimeONProvider/build.gradle.kts index 88ff2c7..91863d9 100644 --- a/AnimeONProvider/build.gradle.kts +++ b/AnimeONProvider/build.gradle.kts @@ -1,8 +1,11 @@ // use an integer for version numbers version = 7 -dependencies{ - implementation("com.google.code.gson:gson:2.9.0") +dependencies { + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/AnimeONProvider/src/main/kotlin/com/lagradost/AnimeONProvider.kt b/AnimeONProvider/src/main/kotlin/com/lagradost/AnimeONProvider.kt index 3988e4a..e9edf64 100644 --- a/AnimeONProvider/src/main/kotlin/com/lagradost/AnimeONProvider.kt +++ b/AnimeONProvider/src/main/kotlin/com/lagradost/AnimeONProvider.kt @@ -1,5 +1,6 @@ package com.lagradost +import android.util.Log import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.lagradost.cloudstream3.DubStatus @@ -23,6 +24,7 @@ import com.lagradost.cloudstream3.newAnimeSearchResponse import com.lagradost.cloudstream3.newHomePageResponse import com.lagradost.cloudstream3.newMovieLoadResponse import com.lagradost.cloudstream3.toRatingInt +import com.lagradost.cloudstream3.utils.AppUtils.toJson import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper import com.lagradost.models.AnimeInfoModel @@ -120,38 +122,36 @@ class AnimeONProvider : MainAPI() { )).text, AnimeInfoModel::class.java ) - val showStatus = - with(animeJSON.status.name) { + with(animeJSON.status!!) { when { - contains("Онґоїнґ") -> ShowStatus.Ongoing - contains("Завершений") -> ShowStatus.Completed - else -> null + contains("ongoing") -> ShowStatus.Ongoing + contains("released") -> ShowStatus.Completed + else -> ShowStatus.Completed } } val tvType = - with(animeJSON.type.name) { + with(animeJSON.type!!) { when { - contains("ТБ-Серіал") -> TvType.Anime + contains("tv") -> TvType.Anime contains("OVA") -> TvType.OVA contains("Спеціальний випуск") -> TvType.OVA contains("ONA") -> TvType.OVA - contains("Фільм") -> TvType.AnimeMovie + contains("movie") -> TvType.AnimeMovie else -> TvType.Anime } } - val episodes = mutableListOf() // Get all fundub for title and parse only first fundub/player - val fundubs = Gson().fromJson>(app.get("${apiUrl}/player/fundubs/${animeJSON.id}", + val fundubs = Gson().fromJson>(app.get("$mainUrl/api/player/fundubs/${animeJSON.id}", headers = mapOf( "Referer" to "https://animeon.club/", )).text, listFundub) - Gson().fromJson>(app.get("${apiUrl}/player/episodes/${fundubs?.get(0)?.player?.get(0)?.id}/${fundubs?.get(0)?.fundub?.id}", + Gson().fromJson>(app.get("$mainUrl/api/player/episodes/${fundubs?.get(0)?.player?.get(0)?.id}/${fundubs?.get(0)?.fundub?.id}", headers = mapOf( "Referer" to "https://animeon.club/", )).text, listFundubEpisodes)?.map { epd -> // Episode @@ -172,7 +172,7 @@ class AnimeONProvider : MainAPI() { ) { this.posterUrl = posterApi.format(animeJSON.poster) this.engName = animeJSON.titleEn - this.tags = animeJSON.genres.map { it.name } + // this.tags = animeJSON.genres.map { it.name } this.plot = animeJSON.description addTrailer(animeJSON.trailer) this.showStatus = showStatus @@ -212,20 +212,20 @@ class AnimeONProvider : MainAPI() { callback: (ExtractorLink) -> Unit ): Boolean { val dataList = data.split(", ") - val fundubs = Gson().fromJson>(app.get("${apiUrl}/player/fundubs/${dataList[0]}", + val fundubs = Gson().fromJson>(app.get("$mainUrl/api/player/fundubs/${dataList[0]}", headers = mapOf( "Referer" to "https://animeon.club/", )).text, listFundub) if(dataList.size == 2){ fundubs.map { dub -> - Gson().fromJson>(app.get("${apiUrl}/player/episodes/${dub.player[0].id}/${dub.fundub.id}", + Gson().fromJson>(app.get("$mainUrl/api/player/episodes/${dub.player[0].id}/${dub.fundub.id}", headers = mapOf( "Referer" to "https://animeon.club/", )).text, listFundubEpisodes).filter{ it.episode == dataList[1].toIntOrNull() }.map { epd -> // Episode M3u8Helper.generateM3u8( source = "${dub.fundub.name} (${dub.player[0].name})", - streamUrl = getM3U(app.get("${apiUrl}/player/episode/${epd.id}", + streamUrl = getM3U(app.get("$mainUrl/api/player/episode/${epd.id}", headers = mapOf( "Referer" to "https://animeon.club/", )).parsedSafe()!!.videoUrl), diff --git a/AnimeONProvider/src/main/kotlin/com/lagradost/models/AnimeInfoModel.kt b/AnimeONProvider/src/main/kotlin/com/lagradost/models/AnimeInfoModel.kt index fa183c9..28d63fc 100644 --- a/AnimeONProvider/src/main/kotlin/com/lagradost/models/AnimeInfoModel.kt +++ b/AnimeONProvider/src/main/kotlin/com/lagradost/models/AnimeInfoModel.kt @@ -16,8 +16,8 @@ class AnimeInfoModel ( @SerializedName("malId") val malId : Int, @SerializedName("rating") val rating : Double, @SerializedName("genres") val genres : List, - @SerializedName("status") val status : Status, - @SerializedName("type") val type : Type, + @SerializedName("status") val status : String?, + @SerializedName("type") val type : String?, @SerializedName("player") val player : List, ) diff --git a/AnimeONProvider/src/main/kotlin/com/lagradost/models/NewAnimeModel.kt b/AnimeONProvider/src/main/kotlin/com/lagradost/models/NewAnimeModel.kt index bd457f9..0f254f1 100644 --- a/AnimeONProvider/src/main/kotlin/com/lagradost/models/NewAnimeModel.kt +++ b/AnimeONProvider/src/main/kotlin/com/lagradost/models/NewAnimeModel.kt @@ -16,7 +16,7 @@ data class Results ( @SerializedName("image") val image : Image, @SerializedName("malId") val malId : Int, @SerializedName("rating") val rating : Double, - @SerializedName("status") val status : Status, - @SerializedName("type") val type : Type, + @SerializedName("status") val status : String?, + @SerializedName("type") val type : String?, @SerializedName("genres") val genres : List ) \ No newline at end of file diff --git a/AnimeONProvider/src/main/kotlin/com/lagradost/models/SearchModel.kt b/AnimeONProvider/src/main/kotlin/com/lagradost/models/SearchModel.kt index ad8c389..89f89b4 100644 --- a/AnimeONProvider/src/main/kotlin/com/lagradost/models/SearchModel.kt +++ b/AnimeONProvider/src/main/kotlin/com/lagradost/models/SearchModel.kt @@ -28,6 +28,6 @@ data class Result ( @SerializedName("malId") val malId : Int, @SerializedName("season") val season : Int, @SerializedName("rating") val rating : Double, - @SerializedName("type") val type : Type, - @SerializedName("status") val status : Status + @SerializedName("type") val type : String?, + @SerializedName("status") val status : String? ) diff --git a/AnimeONProvider/src/test/kotlin/com/lagradost/AnimeONProviderTest.kt b/AnimeONProvider/src/test/kotlin/com/lagradost/AnimeONProviderTest.kt new file mode 100644 index 0000000..20e5bb3 --- /dev/null +++ b/AnimeONProvider/src/test/kotlin/com/lagradost/AnimeONProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class AnimeONProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(AnimeONProvider()) + providerTester.testAll() + } +} diff --git a/AnimeUAProvider/build.gradle.kts b/AnimeUAProvider/build.gradle.kts index 6ffb346..4220df1 100644 --- a/AnimeUAProvider/build.gradle.kts +++ b/AnimeUAProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 6 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/AnimeUAProvider/src/test/kotlin/com/lagradost/AnimeUAProviderTest.kt b/AnimeUAProvider/src/test/kotlin/com/lagradost/AnimeUAProviderTest.kt new file mode 100644 index 0000000..32d395c --- /dev/null +++ b/AnimeUAProvider/src/test/kotlin/com/lagradost/AnimeUAProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class AnimeUAProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(AnimeUAProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/AnitubeinuaProvider/build.gradle.kts b/AnitubeinuaProvider/build.gradle.kts index efc09e5..a12a103 100644 --- a/AnitubeinuaProvider/build.gradle.kts +++ b/AnitubeinuaProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 10 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/AnitubeinuaProvider/src/test/kotlin/com/lagradost/AnitubeinuaProviderTest.kt b/AnitubeinuaProvider/src/test/kotlin/com/lagradost/AnitubeinuaProviderTest.kt new file mode 100644 index 0000000..1ffc89b --- /dev/null +++ b/AnitubeinuaProvider/src/test/kotlin/com/lagradost/AnitubeinuaProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class AnitubeinuaProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(AnitubeinuaProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/BambooUAProvider/build.gradle.kts b/BambooUAProvider/build.gradle.kts index 0c7f7fe..8299d9b 100644 --- a/BambooUAProvider/build.gradle.kts +++ b/BambooUAProvider/build.gradle.kts @@ -2,7 +2,10 @@ version = 5 dependencies { - implementation("com.google.code.gson:gson:2.9.0") + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/BambooUAProvider/src/test/kotlin/com/lagradost/BambooUAProviderTest.kt b/BambooUAProvider/src/test/kotlin/com/lagradost/BambooUAProviderTest.kt new file mode 100644 index 0000000..79f1a1c --- /dev/null +++ b/BambooUAProvider/src/test/kotlin/com/lagradost/BambooUAProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class BambooUAProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(BambooUAProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/CikavaIdeyaProvider/build.gradle.kts b/CikavaIdeyaProvider/build.gradle.kts index 8777131..c6a13ca 100644 --- a/CikavaIdeyaProvider/build.gradle.kts +++ b/CikavaIdeyaProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 1 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/CikavaIdeyaProvider/src/test/kotlin/com/lagradost/CikavaIdeyaProviderTest.kt b/CikavaIdeyaProvider/src/test/kotlin/com/lagradost/CikavaIdeyaProviderTest.kt new file mode 100644 index 0000000..979ec31 --- /dev/null +++ b/CikavaIdeyaProvider/src/test/kotlin/com/lagradost/CikavaIdeyaProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class CikavaIdeyaProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(CikavaIdeyaProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/EneyidaProvider/build.gradle.kts b/EneyidaProvider/build.gradle.kts index ccf1166..393bd5b 100644 --- a/EneyidaProvider/build.gradle.kts +++ b/EneyidaProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 8 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/EneyidaProvider/src/test/kotlin/com/lagradost/EneyidaProviderTest.kt b/EneyidaProvider/src/test/kotlin/com/lagradost/EneyidaProviderTest.kt new file mode 100644 index 0000000..5c88ecd --- /dev/null +++ b/EneyidaProvider/src/test/kotlin/com/lagradost/EneyidaProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class EneyidaProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(EneyidaProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/HentaiUkrProvider/build.gradle.kts b/HentaiUkrProvider/build.gradle.kts index ba40e35..3af556e 100644 --- a/HentaiUkrProvider/build.gradle.kts +++ b/HentaiUkrProvider/build.gradle.kts @@ -1,9 +1,10 @@ // use an integer for version numbers version = 3 -// TODO: Need drop this -dependencies{ - implementation("com.google.code.gson:gson:2.9.0") +dependencies { + implementation(libs.gson) + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/HentaiUkrProvider/src/test/kotlin/com/lagradost/HentaiUkrProviderTest.kt b/HentaiUkrProvider/src/test/kotlin/com/lagradost/HentaiUkrProviderTest.kt new file mode 100644 index 0000000..a46d8bd --- /dev/null +++ b/HentaiUkrProvider/src/test/kotlin/com/lagradost/HentaiUkrProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class HentaiUkrProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(HentaiUkrProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/KinoTronProvider/build.gradle.kts b/KinoTronProvider/build.gradle.kts index bd25c03..504d0d8 100644 --- a/KinoTronProvider/build.gradle.kts +++ b/KinoTronProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 5 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/KinoTronProvider/src/test/kotlin/com/lagradost/KinoTronProviderTest.kt b/KinoTronProvider/src/test/kotlin/com/lagradost/KinoTronProviderTest.kt new file mode 100644 index 0000000..866ef0b --- /dev/null +++ b/KinoTronProvider/src/test/kotlin/com/lagradost/KinoTronProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class KinoTronProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(KinoTronProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/KinoVezhaProvider/build.gradle.kts b/KinoVezhaProvider/build.gradle.kts index 1f7dd90..809358c 100644 --- a/KinoVezhaProvider/build.gradle.kts +++ b/KinoVezhaProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 5 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/KinoVezhaProvider/src/test/kotlin/com/lagradost/KinoVezhaProviderTest.kt b/KinoVezhaProvider/src/test/kotlin/com/lagradost/KinoVezhaProviderTest.kt new file mode 100644 index 0000000..0e2b9fa --- /dev/null +++ b/KinoVezhaProvider/src/test/kotlin/com/lagradost/KinoVezhaProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class KinoVezhaProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(KinoVezhaProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/KlonTVProvider/build.gradle.kts b/KlonTVProvider/build.gradle.kts index 9637f21..8b13362 100644 --- a/KlonTVProvider/build.gradle.kts +++ b/KlonTVProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 6 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/KlonTVProvider/src/test/kotlin/com/lagradost/KlonTVProviderTest.kt b/KlonTVProvider/src/test/kotlin/com/lagradost/KlonTVProviderTest.kt new file mode 100644 index 0000000..b9fbea0 --- /dev/null +++ b/KlonTVProvider/src/test/kotlin/com/lagradost/KlonTVProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class KlonTVProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(KlonTVProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/SerialnoProvider/build.gradle.kts b/SerialnoProvider/build.gradle.kts index 002b6d3..67cb978 100644 --- a/SerialnoProvider/build.gradle.kts +++ b/SerialnoProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 5 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/SerialnoProvider/src/test/kotlin/com/lagradost/SerialnoProviderTest.kt b/SerialnoProvider/src/test/kotlin/com/lagradost/SerialnoProviderTest.kt new file mode 100644 index 0000000..df04baa --- /dev/null +++ b/SerialnoProvider/src/test/kotlin/com/lagradost/SerialnoProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class SerialnoProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(SerialnoProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/TeleportalProvider/build.gradle.kts b/TeleportalProvider/build.gradle.kts index 055f1e9..2593e6f 100644 --- a/TeleportalProvider/build.gradle.kts +++ b/TeleportalProvider/build.gradle.kts @@ -1,8 +1,11 @@ // use an integer for version numbers version = 3 -dependencies{ - implementation("com.google.code.gson:gson:2.9.0") +dependencies { + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/TeleportalProvider/src/test/kotlin/com/lagradost/TeleportalProviderTest.kt b/TeleportalProvider/src/test/kotlin/com/lagradost/TeleportalProviderTest.kt new file mode 100644 index 0000000..1234362 --- /dev/null +++ b/TeleportalProvider/src/test/kotlin/com/lagradost/TeleportalProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class TeleportalProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(TeleportalProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UAFlixProvider/build.gradle.kts b/UAFlixProvider/build.gradle.kts index 944f7fc..0f7c01b 100644 --- a/UAFlixProvider/build.gradle.kts +++ b/UAFlixProvider/build.gradle.kts @@ -2,7 +2,10 @@ version = 5 dependencies { - implementation("com.google.code.gson:gson:2.10.1") + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/UAFlixProvider/src/test/kotlin/com/lagradost/UAFlixProviderTest.kt b/UAFlixProvider/src/test/kotlin/com/lagradost/UAFlixProviderTest.kt new file mode 100644 index 0000000..6f6a8a8 --- /dev/null +++ b/UAFlixProvider/src/test/kotlin/com/lagradost/UAFlixProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UAFlixProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UAFlixProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UASerialProvider/build.gradle.kts b/UASerialProvider/build.gradle.kts index 1cc5db4..3cc0b29 100644 --- a/UASerialProvider/build.gradle.kts +++ b/UASerialProvider/build.gradle.kts @@ -2,7 +2,10 @@ version = 10 dependencies { - implementation("com.google.code.gson:gson:2.9.0") + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/UASerialProvider/src/test/kotlin/com/lagradost/UASerialProviderTest.kt b/UASerialProvider/src/test/kotlin/com/lagradost/UASerialProviderTest.kt new file mode 100644 index 0000000..2d41ed1 --- /dev/null +++ b/UASerialProvider/src/test/kotlin/com/lagradost/UASerialProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UASerialProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UASerialProvider("https://uaserial.com", "UASerial")) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UASerialsProProvider/build.gradle.kts b/UASerialsProProvider/build.gradle.kts index ac2ebc2..248009b 100644 --- a/UASerialsProProvider/build.gradle.kts +++ b/UASerialsProProvider/build.gradle.kts @@ -2,7 +2,10 @@ version = 8 dependencies { - implementation("com.google.code.gson:gson:2.9.0") + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/UASerialsProProvider/src/test/kotlin/com/lagradost/UASerialsProProviderTest.kt b/UASerialsProProvider/src/test/kotlin/com/lagradost/UASerialsProProviderTest.kt new file mode 100644 index 0000000..9fdaa3c --- /dev/null +++ b/UASerialsProProvider/src/test/kotlin/com/lagradost/UASerialsProProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UASerialsProProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UASerialsProProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UAserialsVipProvider/build.gradle.kts b/UAserialsVipProvider/build.gradle.kts index 7d451dc..045acd8 100644 --- a/UAserialsVipProvider/build.gradle.kts +++ b/UAserialsVipProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 1 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/UAserialsVipProvider/src/test/kotlin/com/lagradost/UAserialsVipProviderTest.kt b/UAserialsVipProvider/src/test/kotlin/com/lagradost/UAserialsVipProviderTest.kt new file mode 100644 index 0000000..cf59241 --- /dev/null +++ b/UAserialsVipProvider/src/test/kotlin/com/lagradost/UAserialsVipProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UAserialsVipProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UAserialsVipProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UFDubProvider/build.gradle.kts b/UFDubProvider/build.gradle.kts index 2623986..a907c2b 100644 --- a/UFDubProvider/build.gradle.kts +++ b/UFDubProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 4 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/UFDubProvider/src/test/kotlin/com/lagradost/UFDubProviderTest.kt b/UFDubProvider/src/test/kotlin/com/lagradost/UFDubProviderTest.kt new file mode 100644 index 0000000..1a8657b --- /dev/null +++ b/UFDubProvider/src/test/kotlin/com/lagradost/UFDubProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UFDubProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UFDubProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UakinoProvider/build.gradle.kts b/UakinoProvider/build.gradle.kts index 1f14c35..e21d114 100644 --- a/UakinoProvider/build.gradle.kts +++ b/UakinoProvider/build.gradle.kts @@ -1,6 +1,10 @@ // use an integer for version numbers version = 11 +dependencies { + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) +} cloudstream { language = "uk" diff --git a/UakinoProvider/src/test/kotlin/com/lagradost/UakinoProviderTest.kt b/UakinoProvider/src/test/kotlin/com/lagradost/UakinoProviderTest.kt new file mode 100644 index 0000000..d467051 --- /dev/null +++ b/UakinoProvider/src/test/kotlin/com/lagradost/UakinoProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UakinoProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UakinoProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/UnimayProvider/build.gradle.kts b/UnimayProvider/build.gradle.kts index aa98538..2bd1b93 100644 --- a/UnimayProvider/build.gradle.kts +++ b/UnimayProvider/build.gradle.kts @@ -1,8 +1,11 @@ // use an integer for version numbers version = 10 -dependencies{ - implementation("com.google.code.gson:gson:2.9.0") +dependencies { + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/UnimayProvider/src/test/kotlin/com/lagradost/UnimayProviderTest.kt b/UnimayProvider/src/test/kotlin/com/lagradost/UnimayProviderTest.kt new file mode 100644 index 0000000..21461b1 --- /dev/null +++ b/UnimayProvider/src/test/kotlin/com/lagradost/UnimayProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class UnimayProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(UnimayProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/VodneriloProvider/build.gradle.kts b/VodneriloProvider/build.gradle.kts index e4d345b..2dd9f80 100644 --- a/VodneriloProvider/build.gradle.kts +++ b/VodneriloProvider/build.gradle.kts @@ -2,7 +2,10 @@ version = 2 dependencies { - implementation("com.google.code.gson:gson:2.9.0") + implementation(libs.gson) + + testImplementation(libs.junit) + testImplementation(libs.kotlinx.coroutines.test) } cloudstream { diff --git a/VodneriloProvider/src/test/kotlin/com/lagradost/VodneriloProviderTest.kt b/VodneriloProvider/src/test/kotlin/com/lagradost/VodneriloProviderTest.kt new file mode 100644 index 0000000..190754d --- /dev/null +++ b/VodneriloProvider/src/test/kotlin/com/lagradost/VodneriloProviderTest.kt @@ -0,0 +1,14 @@ +package com.lagradost + +import com.lagradost.cloudstreamtest.ProviderTester +import kotlinx.coroutines.test.runTest +import org.junit.Test + +class VodneriloProviderTest { + + @Test + fun testProvider() = runTest { + val providerTester = ProviderTester(VodneriloProvider()) + providerTester.testAll() + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index f83bdf5..4e7eb3f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,26 +2,15 @@ import com.lagradost.cloudstream3.gradle.CloudstreamExtension import com.android.build.gradle.BaseExtension buildscript { - repositories { - google() - mavenCentral() - // Shitpack repo which contains our tools and dependencies - maven("https://jitpack.io") - } - dependencies { - classpath("com.android.tools.build:gradle:8.7.3") - classpath("com.github.recloudstream:gradle:-SNAPSHOT") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0") + classpath(libs.recloudstream.gradle) } } -allprojects { - repositories { - google() - mavenCentral() - maven("https://jitpack.io") - } +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin) apply false } fun Project.cloudstream(configuration: CloudstreamExtension.() -> Unit) = extensions.getByName("cloudstream").configuration() @@ -68,19 +57,34 @@ subprojects { } dependencies { - val cloudstream by configurations + val apk by configurations val implementation by configurations - cloudstream("com.lagradost:cloudstream3:pre-release") + val libs = rootProject.libs + val apkTasks = listOf("deployWithAdb", "build") + val useApk = gradle.startParameter.taskNames.any { taskName -> + apkTasks.any { apkTask -> + taskName.contains(apkTask, ignoreCase = true) + } + } + + // If the task is specifically to compile the app then use the stubs, otherwise us the library. + if (useApk) { + // Stubs for all Cloudstream classes + apk(libs.cloudstream3) + } else { + // For running locally + implementation(libs.cloudstreamapi) + } // these dependencies can include any of those which are added by the app, // but you dont need to include any of them if you dont need them // https://github.com/recloudstream/cloudstream/blob/master/app/build.gradle implementation(kotlin("stdlib")) // adds standard kotlin features, like listOf, mapOf etc - implementation("com.github.Blatzar:NiceHttp:0.4.11") // http library - implementation("org.jsoup:jsoup:1.18.3") // html parser + implementation(libs.nicehttp) // http library + implementation(libs.jsoup) // html parser } } -task("clean") { +tasks.register("clean") { delete(rootProject.buildDir) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..fc94442 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,28 @@ +[versions] +android-gradle-plugin = "8.8.0" +cloudstream3 = "pre-release" +cloudstreamapi = "0.1.6" +recloudstream-gradle = "-SNAPSHOT" +gson = "2.9.0" +kotlinx-coroutines-test = "1.10.1" +nicehttp = "0.4.11" +jsoup = "1.18.3" +kotlin = "2.1.10" +junit = "4.13.2" +junitVersion = "1.2.1" + +[libraries] +cloudstream3 = { module = "com.lagradost:cloudstream3", version.ref = "cloudstream3" } +cloudstreamapi = { module = "com.github.Blatzar:CloudstreamApi", version.ref = "cloudstreamapi" } +recloudstream-gradle = { module = "com.github.recloudstream:gradle", version.ref = "recloudstream-gradle" } +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } +jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines-test" } +nicehttp = { module = "com.github.Blatzar:NiceHttp", version.ref = "nicehttp" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } +android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } +kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 581ca0e..dd7fa33 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Jan 13 19:56:56 EET 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 518bf26..73122da 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,20 @@ +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + maven("https://jitpack.io") + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven("https://jitpack.io") + } +} + rootProject.name = "CloudstreamPlugins" // This file sets what projects are included. All new projects should get automatically included unless specified in "disabled" variable.