This commit is contained in:
alex 2024-01-24 15:39:40 +07:00
parent 590ccaac14
commit 92a0b490d7
3 changed files with 29 additions and 11 deletions

View file

@ -1,7 +1,7 @@
import org.jetbrains.kotlin.konan.properties.Properties import org.jetbrains.kotlin.konan.properties.Properties
// use an integer for version numbers // use an integer for version numbers
version = 1 version = 2
android { android {
defaultConfig { defaultConfig {

View file

@ -1,7 +1,9 @@
package com.hexated package com.hexated
import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.*
import java.net.URL
object Extractors : Superstream() { object Extractors : Superstream() {
@ -94,19 +96,30 @@ object Extractors : Superstream() {
fids?.apmapIndexed { index, fileList -> fids?.apmapIndexed { index, fileList ->
val player = app.get("$thirdAPI/file/player?fid=${fileList.fid}&share_key=$shareKey").text val player = app.get("$thirdAPI/file/player?fid=${fileList.fid}&share_key=$shareKey").text
val video = """"(https.*?m3u8.*?)"""".toRegex().find(player)?.groupValues?.get(1) val hls = """"(https.*?m3u8.*?)"""".toRegex().find(player)?.groupValues?.get(1)
val mp4 = "sources\\s*=\\s*(.*);".toRegex().find(player)?.groupValues?.get(1)?.let {
AppUtils.tryParseJson<List<ExternalSources>>(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( callback.invoke(
ExtractorLink( ExtractorLink(
"External", "External $path",
"External [Server ${index + 1}]", "External $path [Server ${index + 1}]",
video?.replace("\\/", "/") ?: return@apmapIndexed, it.first?.replace("\\/", "/") ?: return@apmapIndexed,
"$thirdAPI/", "$thirdAPI/",
getIndexQuality(fileList.file_name), getIndexQuality(it.second),
isM3u8 = true type = INFER_TYPE,
) )
) )
} }
} }
}
suspend fun invokeWatchsomuch( suspend fun invokeWatchsomuch(
imdbId: String? = null, imdbId: String? = null,

View file

@ -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( data class WatchsomuchTorrents(
@JsonProperty("id") val id: Int? = null, @JsonProperty("id") val id: Int? = null,
@JsonProperty("movieId") val movieId: Int? = null, @JsonProperty("movieId") val movieId: Int? = null,