fixed Gmovies

This commit is contained in:
jack 2023-11-22 02:33:27 +07:00
parent 40163c8a4f
commit d5bb853103
4 changed files with 46 additions and 13 deletions

View file

@ -349,6 +349,47 @@ open class Streamruby : ExtractorApi() {
} }
open class Uploadever : ExtractorApi() {
override val name = "Uploadever"
override val mainUrl = "https://uploadever.in"
override val requiresReferer = true
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
var res = app.get(url, referer = referer).document
val formUrl = res.select("form").attr("action")
var formData = res.select("form input").associate { it.attr("name") to it.attr("value") }.filterKeys { it != "go" }
.toMutableMap()
val formReq = app.post(formUrl, data = formData)
res = formReq.document
val captchaKey = res.select("script[src*=https://www.google.com/recaptcha/api.js?render=]").attr("src").substringAfter("render=")
val token = getCaptchaToken(url, captchaKey, referer = "$mainUrl/")
formData = res.select("form#down input").associate { it.attr("name") to it.attr("value") }.toMutableMap()
formData["adblock_detected"] = "0"
formData["referer"] = url
res = app.post(formReq.url, data = formData + mapOf("g-recaptcha-response" to "$token"), cookies = formReq.cookies).document
val video = res.select("div.download-button a.btn.btn-dow.recaptchav2").attr("href")
callback.invoke(
ExtractorLink(
this.name,
this.name,
video,
"",
Qualities.Unknown.value,
INFER_TYPE
)
)
}
}
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"

View file

@ -1178,6 +1178,7 @@ object SoraExtractor : SoraStream() {
year: Int? = null, year: Int? = null,
season: Int? = null, season: Int? = null,
episode: Int? = null, episode: Int? = null,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit callback: (ExtractorLink) -> Unit
) { ) {
val fixTitle = title.createSlug() val fixTitle = title.createSlug()
@ -1201,23 +1202,12 @@ object SoraExtractor : SoraStream() {
it.select("a").attr("href") to it.text() it.select("a").attr("href") to it.text()
} }
})?.filter { })?.filter {
it.first.contains("gdtot") && it.second.contains(Regex("(?i)(4k|1080p)")) it.second.contains(Regex("(?i)(4k|1080p)"))
} ?: return } ?: return
iframe.apmap { (iframeLink, title) -> iframe.apmap { (iframeLink, title) ->
val size = Regex("(?i)\\s(\\S+gb|mb)").find(title)?.groupValues?.getOrNull(1) val size = Regex("(?i)\\s(\\S+gb|mb)").find(title)?.groupValues?.getOrNull(1)
val gdBotLink = extractGdbot(iframeLink) loadCustomTagExtractor("[$size]",iframeLink, "$gMoviesAPI/", subtitleCallback, callback, getIndexQuality(title))
val videoLink = extractGdflix(gdBotLink ?: return@apmap null)
callback.invoke(
ExtractorLink(
"GMovies",
"GMovies [$size]",
videoLink ?: return@apmap null,
"",
getGMoviesQuality(title)
)
)
} }
} }

View file

@ -466,6 +466,7 @@ open class SoraStream : TmdbProvider() {
res.year, res.year,
res.season, res.season,
res.episode, res.episode,
subtitleCallback,
callback callback
) )
}, },

View file

@ -27,5 +27,6 @@ class SoraStreamPlugin: Plugin() {
registerExtractorAPI(FilelionsTo()) registerExtractorAPI(FilelionsTo())
registerExtractorAPI(Embedwish()) registerExtractorAPI(Embedwish())
registerExtractorAPI(Wishfast()) registerExtractorAPI(Wishfast())
registerExtractorAPI(Uploadever())
} }
} }