This commit is contained in:
alex 2024-01-04 15:29:33 +07:00
parent 76c58dbfc3
commit 53d3519b8f
4 changed files with 20 additions and 17 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 = 212 version = 213
android { android {
defaultConfig { defaultConfig {

View file

@ -396,11 +396,6 @@ class Embedwish : Filesim() {
override val name = "Embedwish" override val name = "Embedwish"
override var mainUrl = "https://embedwish.com" override var mainUrl = "https://embedwish.com"
} }
class Vidplay2 : Vidplay() {
override val mainUrl = "https://vidplay.online"
}
class Flaswish : Filesim() { class Flaswish : Filesim() {
override val name = "Flaswish" override val name = "Flaswish"
override var mainUrl = "https://flaswish.com" override var mainUrl = "https://flaswish.com"

View file

@ -715,7 +715,7 @@ object SoraExtractor : SoraStream() {
child.select("span").text().equals("Episode $episode", true) child.select("span").text().equals("Episode $episode", true)
}?.attr("href") }?.attr("href")
} }
}.filter { it.first.contains(Regex("(2160p)|(1080p)")) } }.filter { it.first.contains(Regex("(2160p)|(1080p)")) }.reversed().takeLast(3)
iframeList.apmap { (quality, link) -> iframeList.apmap { (quality, link) ->
val driveLink = bypassHrefli(link ?: return@apmap) val driveLink = bypassHrefli(link ?: return@apmap)
@ -768,16 +768,25 @@ object SoraExtractor : SoraStream() {
val hTag = if (season == null) "h5" else "h3" val hTag = if (season == null) "h5" else "h3"
val aTag = if (season == null) "Download Now" else "V-Cloud" val aTag = if (season == null) "Download Now" else "V-Cloud"
val sTag = if (season == null) "" else "(Season $season|S$seasonSlug)" val sTag = if (season == null) "" else "(Season $season|S$seasonSlug)"
val entry = res.select("div.entry-content > $hTag:matches((?i)$sTag.*(1080p|2160p))").findLast { element -> !element.text().contains("Download", true) } val entries = res.select("div.entry-content > $hTag:matches((?i)$sTag.*(1080p|2160p))").filter { element -> !element.text().contains("Download", true) }.takeLast(2)
?: return entries.apmap {
val tags = """(?:1080p|2160p)(.*)""".toRegex().find(entry.text())?.groupValues?.get(1)?.trim() val tags = """(?:1080p|2160p)(.*)""".toRegex().find(it.text())?.groupValues?.get(1)?.trim()
val href = entry.nextElementSibling()?.select("a:contains($aTag)")?.attr("href") val href = it.nextElementSibling()?.select("a:contains($aTag)")?.attr("href")
val selector = if (season == null) "p a:contains(V-Cloud)" else "h4:matches(0?$episode) + p a:contains(V-Cloud)" val selector = if (season == null) "p a:contains(V-Cloud)" else "h4:matches(0?$episode) + p a:contains(V-Cloud)"
val server = app.get(href val server = app.get(
?: return, interceptor = wpredisInterceptor).document.selectFirst("div.entry-content > $selector")?.attr("href") href ?: return@apmap, interceptor = wpredisInterceptor
?: return ).document.selectFirst("div.entry-content > $selector")
?.attr("href") ?: return@apmap
loadCustomTagExtractor(tags, server, "$api/", subtitleCallback, callback, getIndexQuality(entry.text())) loadCustomTagExtractor(
tags,
server,
"$api/",
subtitleCallback,
callback,
getIndexQuality(it.text())
)
}
} }
suspend fun invokeHdmovies4u(title: String? = null, imdbId: String? = null, season: Int? = null, episode: Int? = null, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { suspend fun invokeHdmovies4u(title: String? = null, imdbId: String? = null, season: Int? = null, episode: Int? = null, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) {

View file

@ -28,7 +28,6 @@ class SoraStreamPlugin: Plugin() {
registerExtractorAPI(Wishfast()) registerExtractorAPI(Wishfast())
registerExtractorAPI(Uploadever()) registerExtractorAPI(Uploadever())
registerExtractorAPI(Netembed()) registerExtractorAPI(Netembed())
registerExtractorAPI(Vidplay2())
registerExtractorAPI(Flaswish()) registerExtractorAPI(Flaswish())
registerExtractorAPI(Comedyshow()) registerExtractorAPI(Comedyshow())
} }