diff --git a/Superstream/build.gradle.kts b/Superstream/build.gradle.kts index 6109c0eb..a51ee0af 100644 --- a/Superstream/build.gradle.kts +++ b/Superstream/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.konan.properties.Properties // use an integer for version numbers -version = 1 +version = 2 android { defaultConfig { diff --git a/Superstream/src/main/kotlin/com/hexated/Extractors.kt b/Superstream/src/main/kotlin/com/hexated/Extractors.kt index 73a21ff6..e6fd7605 100644 --- a/Superstream/src/main/kotlin/com/hexated/Extractors.kt +++ b/Superstream/src/main/kotlin/com/hexated/Extractors.kt @@ -1,7 +1,9 @@ package com.hexated import com.lagradost.cloudstream3.* +import com.lagradost.cloudstream3.mvvm.normalSafeApiCall import com.lagradost.cloudstream3.utils.* +import java.net.URL object Extractors : Superstream() { @@ -94,17 +96,28 @@ object Extractors : Superstream() { fids?.apmapIndexed { index, fileList -> val player = app.get("$thirdAPI/file/player?fid=${fileList.fid}&share_key=$shareKey").text - val video = """"(https.*?m3u8.*?)"""".toRegex().find(player)?.groupValues?.get(1) - callback.invoke( - ExtractorLink( - "External", - "External [Server ${index + 1}]", - video?.replace("\\/", "/") ?: return@apmapIndexed, - "$thirdAPI/", - getIndexQuality(fileList.file_name), - isM3u8 = true + val hls = """"(https.*?m3u8.*?)"""".toRegex().find(player)?.groupValues?.get(1) + val mp4 = "sources\\s*=\\s*(.*);".toRegex().find(player)?.groupValues?.get(1)?.let { + AppUtils.tryParseJson>(it)?.first() + } + listOf( + mp4?.file to mp4?.label, + hls to fileList.file_name + ).map { + val path = normalSafeApiCall { URL(it.first).path }.let { p -> + if(p?.endsWith(".m3u8") == true) "HLS" else "MP4" + } + callback.invoke( + ExtractorLink( + "External $path", + "External $path [Server ${index + 1}]", + it.first?.replace("\\/", "/") ?: return@apmapIndexed, + "$thirdAPI/", + getIndexQuality(it.second), + type = INFER_TYPE, + ) ) - ) + } } } diff --git a/Superstream/src/main/kotlin/com/hexated/Superstream.kt b/Superstream/src/main/kotlin/com/hexated/Superstream.kt index 2e63a684..24acd381 100644 --- a/Superstream/src/main/kotlin/com/hexated/Superstream.kt +++ b/Superstream/src/main/kotlin/com/hexated/Superstream.kt @@ -774,6 +774,11 @@ open class Superstream : MainAPI() { } } + data class ExternalSources( + @JsonProperty("file") val file: String? = null, + @JsonProperty("label") val label: String? = null, + ) + data class WatchsomuchTorrents( @JsonProperty("id") val id: Int? = null, @JsonProperty("movieId") val movieId: Int? = null,