From 8f287186e5241e6a148a99b532709800bbfc38cd Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 9 Dec 2023 02:59:36 +0700 Subject: [PATCH] update --- .../src/main/kotlin/com/hexated/Extractors.kt | 40 +++++++++++++++++-- .../main/kotlin/com/hexated/SoraExtractor.kt | 2 +- .../src/main/kotlin/com/hexated/SoraStream.kt | 18 ++++----- .../kotlin/com/hexated/SoraStreamPlugin.kt | 1 + 4 files changed, 48 insertions(+), 13 deletions(-) diff --git a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt index 84985a8f..1a180240 100644 --- a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt +++ b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt @@ -11,6 +11,7 @@ import com.lagradost.cloudstream3.apmap import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode import com.lagradost.cloudstream3.extractors.Pixeldrain +import com.lagradost.cloudstream3.extractors.Vidplay import com.lagradost.cloudstream3.extractors.ZplayerV2 import com.lagradost.cloudstream3.utils.* import java.math.BigInteger @@ -309,6 +310,40 @@ open class Uploadever : ExtractorApi() { } +open class Netembed : ExtractorApi() { + override var name: String = "Netembed" + override var mainUrl: String = "https://play.netembed.xyz" + override val requiresReferer = true + + override suspend fun getUrl( + url: String, + referer: String?, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ) { + val response = app.get(url, referer = referer) + val script = getAndUnpack(response.text) + val m3u8 = Regex("((https:|http:)//.*\\.m3u8)").find(script)?.groupValues?.getOrNull(1) + + callback.invoke( + ExtractorLink( + this.name, + this.name, + m3u8 ?: return, + "$mainUrl/", + getQuality(m3u8), + INFER_TYPE + ) + ) + } + + private suspend fun getQuality(url: String) : Int { + val res = app.get(url, referer = "$mainUrl/").text + val regex = "#quality:\\s*(\\S+)".toRegex().find(res)?.groupValues?.get(1) + return getQualityFromName(regex) + } +} + class Streamwish : Filesim() { override val name = "Streamwish" override var mainUrl = "https://streamwish.to" @@ -368,7 +403,6 @@ class Embedwish : Filesim() { override var mainUrl = "https://embedwish.com" } -class Netembed: ZplayerV2() { - override var name: String = "Netembed" - override var mainUrl: String = "https://play.netembed.xyz" +class Vidplay2 : Vidplay() { + override val mainUrl = "https://vidplay.online" } \ No newline at end of file diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index cca52441..40a77af0 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -2066,7 +2066,7 @@ object SoraExtractor : SoraStream() { "$blackvidAPI/v3/tv/sources/$tmdbId/$season/$episode?key=$key" } - val data = app.get(url, timeout = 120L, referer = ref).okhttpResponse.peekBody(1024 * 128).bytes().decrypt("2378f8e4e844f2dc839ab48f66e00acc2305a401") + val data = app.get(url, timeout = 120L, referer = ref).okhttpResponse.peekBody(1024 * 512).bytes().decrypt("2378f8e4e844f2dc839ab48f66e00acc2305a401") val json = tryParseJson(data) json?.sources?.map { source -> diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index 24337992..25f7e858 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -351,6 +351,15 @@ open class SoraStream : TmdbProvider() { val res = parseJson(data) argamap( + { + if (!res.isAnime) invokeBlackvid( + res.id, + res.season, + res.episode, + subtitleCallback, + callback + ) + }, { invokeDumpStream( res.title, @@ -672,15 +681,6 @@ open class SoraStream : TmdbProvider() { callback ) }, - { - if (!res.isAnime) invokeBlackvid( - res.id, - res.season, - res.episode, - subtitleCallback, - callback - ) - }, { if (!res.isAnime) invokeShowflix( res.title, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt index d79cb6dd..bc9ad896 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStreamPlugin.kt @@ -29,5 +29,6 @@ class SoraStreamPlugin: Plugin() { registerExtractorAPI(Wishfast()) registerExtractorAPI(Uploadever()) registerExtractorAPI(Netembed()) + registerExtractorAPI(Vidplay2()) } } \ No newline at end of file