From 9402a280413fb906d31bc6a3d28b1e585b2e7718 Mon Sep 17 00:00:00 2001 From: Hexated <37908684+hexated@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:43:35 +0700 Subject: [PATCH] fixed StreamSB (#105) --- .../cloudstream3/extractors/Gdriveplayer.kt | 4 ++ .../cloudstream3/extractors/StreamSB.kt | 50 +++++++++++-------- .../cloudstream3/utils/ExtractorApi.kt | 2 + 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt index d2e56bf1..dfccc118 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt @@ -10,6 +10,10 @@ import javax.crypto.Cipher import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.SecretKeySpec +class DatabaseGdrive : Gdriveplayer() { + override var mainUrl = "https://series.databasegdriveplayer.co" +} + class Gdriveplayerapi: Gdriveplayer() { override val mainUrl: String = "https://gdriveplayerapi.com" } diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamSB.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamSB.kt index 461f56d0..30a0496d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamSB.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamSB.kt @@ -1,12 +1,16 @@ package com.lagradost.cloudstream3.extractors import com.fasterxml.jackson.annotation.JsonProperty +import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper +class Streamsss : StreamSB() { + override var mainUrl = "https://streamsss.net" +} + class Sbflix : StreamSB() { override var mainUrl = "https://sbflix.xyz" override var name = "Sbflix" @@ -109,31 +113,33 @@ open class StreamSB : ExtractorApi() { @JsonProperty("status_code") val statusCode: Int, ) - override suspend fun getUrl(url: String, referer: String?): List? { - val regexID = Regex("(embed-[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+|\\/e\\/[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+)") + override suspend fun getUrl( + url: String, + referer: String?, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ) { + val regexID = + Regex("(embed-[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+|/e/[a-zA-Z0-9]{0,8}[a-zA-Z0-9_-]+)") val id = regexID.findAll(url).map { - it.value.replace(Regex("(embed-|\\/e\\/)"),"") + it.value.replace(Regex("(embed-|/e/)"), "") }.first() - val bytes = id.toByteArray() - val bytesToHex = bytesToHex(bytes) - val master = "$mainUrl/sources44/6d6144797752744a454267617c7c${bytesToHex.lowercase()}7c7c4e61755a56456f34385243727c7c73747265616d7362/6b4a33767968506e4e71374f7c7c343837323439333133333462353935333633373836643638376337633462333634663539343137373761333635313533333835333763376333393636363133393635366136323733343435323332376137633763373337343732363536313664373336327c7c504d754478413835306633797c7c73747265616d7362" +// val master = "$mainUrl/sources48/6d6144797752744a454267617c7c${bytesToHex.lowercase()}7c7c4e61755a56456f34385243727c7c73747265616d7362/6b4a33767968506e4e71374f7c7c343837323439333133333462353935333633373836643638376337633462333634663539343137373761333635313533333835333763376333393636363133393635366136323733343435323332376137633763373337343732363536313664373336327c7c504d754478413835306633797c7c73747265616d7362" + val master = "$mainUrl/sources48/" + bytesToHex("||$id||||streamsb".toByteArray()) + "/" val headers = mapOf( - "watchsb" to "streamsb", - ) - val urltext = app.get(master, + "watchsb" to "sbstream", + ) + val mapped = app.get( + master.lowercase(), headers = headers, - allowRedirects = false - ).text - val mapped = urltext.let { parseJson
(it) } - val testurl = app.get(mapped.streamData.file, headers = headers).text + referer = url, + ).parsedSafe
() // val urlmain = mapped.streamData.file.substringBefore("/hls/") - if (urltext.contains("m3u8") && testurl.contains("EXTM3U")) - return M3u8Helper.generateM3u8( - name, - mapped.streamData.file, - url, - headers = headers - ) - return null + M3u8Helper.generateM3u8( + name, + mapped?.streamData?.file ?: return, + url, + headers = headers + ).forEach(callback) } } \ No newline at end of file diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt index ae3d8c06..b5c2cd44 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -237,6 +237,7 @@ val extractorApis: MutableList = arrayListOf( Sbthe(), Vidgomunime(), Sbflix(), + Streamsss(), Fastream(), @@ -333,6 +334,7 @@ val extractorApis: MutableList = arrayListOf( Gdriveplayerus(), Gdriveplayerco(), Gdriveplayer(), + DatabaseGdrive(), YoutubeExtractor(), YoutubeShortLinkExtractor(),