mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
update
This commit is contained in:
parent
a496f79f05
commit
8f287186e5
4 changed files with 48 additions and 13 deletions
|
@ -11,6 +11,7 @@ import com.lagradost.cloudstream3.apmap
|
||||||
import com.lagradost.cloudstream3.app
|
import com.lagradost.cloudstream3.app
|
||||||
import com.lagradost.cloudstream3.base64Decode
|
import com.lagradost.cloudstream3.base64Decode
|
||||||
import com.lagradost.cloudstream3.extractors.Pixeldrain
|
import com.lagradost.cloudstream3.extractors.Pixeldrain
|
||||||
|
import com.lagradost.cloudstream3.extractors.Vidplay
|
||||||
import com.lagradost.cloudstream3.extractors.ZplayerV2
|
import com.lagradost.cloudstream3.extractors.ZplayerV2
|
||||||
import com.lagradost.cloudstream3.utils.*
|
import com.lagradost.cloudstream3.utils.*
|
||||||
import java.math.BigInteger
|
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() {
|
class Streamwish : Filesim() {
|
||||||
override val name = "Streamwish"
|
override val name = "Streamwish"
|
||||||
override var mainUrl = "https://streamwish.to"
|
override var mainUrl = "https://streamwish.to"
|
||||||
|
@ -368,7 +403,6 @@ class Embedwish : Filesim() {
|
||||||
override var mainUrl = "https://embedwish.com"
|
override var mainUrl = "https://embedwish.com"
|
||||||
}
|
}
|
||||||
|
|
||||||
class Netembed: ZplayerV2() {
|
class Vidplay2 : Vidplay() {
|
||||||
override var name: String = "Netembed"
|
override val mainUrl = "https://vidplay.online"
|
||||||
override var mainUrl: String = "https://play.netembed.xyz"
|
|
||||||
}
|
}
|
|
@ -2066,7 +2066,7 @@ object SoraExtractor : SoraStream() {
|
||||||
"$blackvidAPI/v3/tv/sources/$tmdbId/$season/$episode?key=$key"
|
"$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<BlackvidResponses>(data)
|
val json = tryParseJson<BlackvidResponses>(data)
|
||||||
|
|
||||||
json?.sources?.map { source ->
|
json?.sources?.map { source ->
|
||||||
|
|
|
@ -351,6 +351,15 @@ open class SoraStream : TmdbProvider() {
|
||||||
val res = parseJson<LinkData>(data)
|
val res = parseJson<LinkData>(data)
|
||||||
|
|
||||||
argamap(
|
argamap(
|
||||||
|
{
|
||||||
|
if (!res.isAnime) invokeBlackvid(
|
||||||
|
res.id,
|
||||||
|
res.season,
|
||||||
|
res.episode,
|
||||||
|
subtitleCallback,
|
||||||
|
callback
|
||||||
|
)
|
||||||
|
},
|
||||||
{
|
{
|
||||||
invokeDumpStream(
|
invokeDumpStream(
|
||||||
res.title,
|
res.title,
|
||||||
|
@ -672,15 +681,6 @@ open class SoraStream : TmdbProvider() {
|
||||||
callback
|
callback
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
|
||||||
if (!res.isAnime) invokeBlackvid(
|
|
||||||
res.id,
|
|
||||||
res.season,
|
|
||||||
res.episode,
|
|
||||||
subtitleCallback,
|
|
||||||
callback
|
|
||||||
)
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
if (!res.isAnime) invokeShowflix(
|
if (!res.isAnime) invokeShowflix(
|
||||||
res.title,
|
res.title,
|
||||||
|
|
|
@ -29,5 +29,6 @@ class SoraStreamPlugin: Plugin() {
|
||||||
registerExtractorAPI(Wishfast())
|
registerExtractorAPI(Wishfast())
|
||||||
registerExtractorAPI(Uploadever())
|
registerExtractorAPI(Uploadever())
|
||||||
registerExtractorAPI(Netembed())
|
registerExtractorAPI(Netembed())
|
||||||
|
registerExtractorAPI(Vidplay2())
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue