From 81012934852ba37b60240d4a70b83cb8ff0511e8 Mon Sep 17 00:00:00 2001 From: hexated Date: Tue, 31 Jan 2023 13:30:37 +0700 Subject: [PATCH] added SoraStreamLite --- SoraStream/build.gradle.kts | 2 +- .../src/main/kotlin/com/hexated/SoraStream.kt | 2 +- .../main/kotlin/com/hexated/SoraStreamLite.kt | 170 ++++++++++++++++++ .../kotlin/com/hexated/SoraStreamPlugin.kt | 1 + 4 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt diff --git a/SoraStream/build.gradle.kts b/SoraStream/build.gradle.kts index a674cba3..d8a2821c 100644 --- a/SoraStream/build.gradle.kts +++ b/SoraStream/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 78 +version = 79 cloudstream { diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index 826bfd92..b9f4e152 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -571,7 +571,7 @@ open class SoraStream : TmdbProvider() { return true } - private data class LinkData( + data class LinkData( val id: Int? = null, val imdbId: String? = null, val type: String? = null, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt new file mode 100644 index 00000000..eeb576bc --- /dev/null +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStreamLite.kt @@ -0,0 +1,170 @@ +package com.hexated + +import com.lagradost.cloudstream3.SubtitleFile +import com.lagradost.cloudstream3.argamap +import com.lagradost.cloudstream3.utils.AppUtils +import com.lagradost.cloudstream3.utils.ExtractorLink + +class SoraStreamLite : SoraStream() { + override var name = "SoraStream-Lite" + + override suspend fun loadLinks( + data: String, + isCasting: Boolean, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ): Boolean { + + val res = AppUtils.parseJson(data) + + argamap( + { + SoraExtractor.invokeSoraStream( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeTwoEmbed(res.id, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeVidSrc(res.id, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeDbgo(res.imdbId, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invoke123Movie( + res.id, + res.imdbId, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeMovieHab(res.imdbId, res.season, res.episode, subtitleCallback, callback) + }, + { + if (res.isAnime) SoraExtractor.invokeAnimes( + res.id, + res.title, + res.epsTitle, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + if (res.season != null && res.isAnime) SoraExtractor.invokeCrunchyroll( + res.title, + res.epsTitle, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + if (!res.isAnime) SoraExtractor.invokeHDMovieBox( + res.title, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeSeries9(res.title, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeIdlix( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeUniqueStream( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeFilmxy(res.imdbId, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeKimcartoon(res.title, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeXmovies( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeFlixhq( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeKisskh(res.title, res.season, res.episode, subtitleCallback, callback) + }, + { + SoraExtractor.invokeLing( + res.title, + res.airedYear ?: res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeFwatayako(res.imdbId, res.season, res.episode, callback) + }, + { + SoraExtractor.invokeM4uhd( + res.title, + res.year, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, + { + SoraExtractor.invokeRStream(res.id, res.season, res.episode, callback) + }, + { + SoraExtractor.invokeFlixon(res.id, res.imdbId, res.season, res.episode, callback) + }, + ) + + return true + } + +} \ No newline at end of file diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt index 6b05629d..6073c8f8 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt @@ -10,6 +10,7 @@ class SoraStreamPlugin: Plugin() { override fun load(context: Context) { // All providers should be added in this manner. Please don't edit the providers list directly. registerMainAPI(SoraStream()) + registerMainAPI(SoraStreamLite()) registerExtractorAPI(StreamM4u()) registerExtractorAPI(Sblongvu()) }