From 99f2d9d67d52eaf66a7940ade410432af0609752 Mon Sep 17 00:00:00 2001 From: hexated Date: Sat, 15 Apr 2023 21:15:39 +0700 Subject: [PATCH] stremioX: fix source name --- StremioX/build.gradle.kts | 2 +- .../src/main/kotlin/com/hexated/StremioC.kt | 29 +++++++++---------- .../src/main/kotlin/com/hexated/StremioX.kt | 22 +++++++------- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/StremioX/build.gradle.kts b/StremioX/build.gradle.kts index 55c90ef8..d90416ae 100644 --- a/StremioX/build.gradle.kts +++ b/StremioX/build.gradle.kts @@ -1,5 +1,5 @@ // use an integer for version numbers -version = 7 +version = 8 cloudstream { diff --git a/StremioX/src/main/kotlin/com/hexated/StremioC.kt b/StremioX/src/main/kotlin/com/hexated/StremioC.kt index a907c37c..90fcceef 100644 --- a/StremioX/src/main/kotlin/com/hexated/StremioC.kt +++ b/StremioX/src/main/kotlin/com/hexated/StremioC.kt @@ -69,7 +69,7 @@ class StremioC : MainAPI() { if (request.isSuccessful) { val res = tryParseJson(request.text) ?: return false res.streams.forEach { stream -> - stream.runCallback(this, subtitleCallback, callback) + stream.runCallback(subtitleCallback, callback) } } else { argamap( @@ -112,7 +112,7 @@ class StremioC : MainAPI() { tryParseJson(app.get("${site.url.fixSourceUrl()}/stream/${type}/${id}.json").text) ?: return@apmap res.streams.forEach { stream -> - stream.runCallback(this, subtitleCallback, callback) + stream.runCallback(subtitleCallback, callback) } } } @@ -283,6 +283,13 @@ class StremioC : MainAPI() { val id: String?, ) + private data class ProxyHeaders( + val request: Map?, + ) + + private data class BehaviorHints( + val proxyHeaders: ProxyHeaders?, + ) private data class Stream( val name: String?, val title: String?, @@ -290,34 +297,24 @@ class StremioC : MainAPI() { val description: String?, val ytId: String?, val externalUrl: String?, - val behaviorHints: JSONObject?, + val behaviorHints: BehaviorHints?, val infoHash: String?, val sources: List = emptyList(), val subtitles: List = emptyList() ) { suspend fun runCallback( - provider: StremioC, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { if (url != null) { - var referer: String? = null - try { - val headers = ((behaviorHints?.get("proxyHeaders") as? JSONObject) - ?.get("request") as? JSONObject) - referer = - headers?.get("referer") as? String ?: headers?.get("origin") as? String - } catch (ex: Throwable) { - Log.e("Stremio", Log.getStackTraceString(ex)) - } callback.invoke( ExtractorLink( name ?: "", - title ?: name ?: "", + fixRDSourceName(name, title), url, - if (provider.mainUrl.contains("kisskh")) "https://kisskh.me/" else referer - ?: "", + "", getQualityFromName(description), + headers = behaviorHints?.proxyHeaders?.request ?: mapOf(), isM3u8 = URI(url).path.endsWith(".m3u8") ) ) diff --git a/StremioX/src/main/kotlin/com/hexated/StremioX.kt b/StremioX/src/main/kotlin/com/hexated/StremioX.kt index 1e141904..8d6a00a1 100644 --- a/StremioX/src/main/kotlin/com/hexated/StremioX.kt +++ b/StremioX/src/main/kotlin/com/hexated/StremioX.kt @@ -254,6 +254,14 @@ open class StremioX : MainAPI() { val id: String?, ) + private data class ProxyHeaders( + val request: Map?, + ) + + private data class BehaviorHints( + val proxyHeaders: ProxyHeaders?, + ) + private data class Stream( val name: String?, val title: String?, @@ -261,7 +269,7 @@ open class StremioX : MainAPI() { val description: String?, val ytId: String?, val externalUrl: String?, - val behaviorHints: JSONObject?, + val behaviorHints: BehaviorHints?, val infoHash: String?, val sources: List = emptyList(), val subtitles: List = emptyList() @@ -271,22 +279,14 @@ open class StremioX : MainAPI() { callback: (ExtractorLink) -> Unit ) { if (url != null) { - var referer: String? = null - try { - val headers = ((behaviorHints?.get("proxyHeaders") as? JSONObject) - ?.get("request") as? JSONObject) - referer = - headers?.get("referer") as? String ?: headers?.get("origin") as? String - } catch (ex: Throwable) { - Log.e("Stremio", Log.getStackTraceString(ex)) - } callback.invoke( ExtractorLink( name ?: "", fixRDSourceName(name, title), url, - referer ?: "", + "", getQualityFromName(description), + headers = behaviorHints?.proxyHeaders?.request ?: mapOf(), isM3u8 = URI(url).path.endsWith(".m3u8") ) )