From f79dc0209db2b0a6012289e6a94b02389ed86a8a Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 15 Jan 2024 20:04:54 +0700 Subject: [PATCH] fix Nimegami --- .../src/main/kotlin/com/hexated/Extractors.kt | 29 +++++++++++++++++++ .../src/main/kotlin/com/hexated/Nimegami.kt | 25 +--------------- .../main/kotlin/com/hexated/NimegamiPlugin.kt | 1 + 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/Nimegami/src/main/kotlin/com/hexated/Extractors.kt b/Nimegami/src/main/kotlin/com/hexated/Extractors.kt index 62a47223..3452bf15 100644 --- a/Nimegami/src/main/kotlin/com/hexated/Extractors.kt +++ b/Nimegami/src/main/kotlin/com/hexated/Extractors.kt @@ -50,4 +50,33 @@ open class Mitedrive : ExtractorApi() { @JsonProperty("data") val data: Data? = null, ) +} + +open class Berkasdrive : ExtractorApi() { + override val name = "Berkasdrive" + override val mainUrl = "https://dl.berkasdrive.com" + override val requiresReferer = true + + override suspend fun getUrl( + url: String, + referer: String?, + subtitleCallback: (SubtitleFile) -> Unit, + callback: (ExtractorLink) -> Unit + ) { + val res = app.get(url, referer = referer).document + val video = res.select("video#player source").attr("src") + + callback.invoke( + ExtractorLink( + this.name, + this.name, + video, + "$mainUrl/", + Qualities.Unknown.value, + INFER_TYPE + ) + ) + + } + } \ No newline at end of file diff --git a/Nimegami/src/main/kotlin/com/hexated/Nimegami.kt b/Nimegami/src/main/kotlin/com/hexated/Nimegami.kt index ed1353f7..00655f71 100644 --- a/Nimegami/src/main/kotlin/com/hexated/Nimegami.kt +++ b/Nimegami/src/main/kotlin/com/hexated/Nimegami.kt @@ -9,7 +9,6 @@ import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import org.jsoup.nodes.Element import org.jsoup.select.Elements -import java.net.URI class Nimegami : MainAPI() { override var mainUrl = "https://nimegami.id" @@ -150,7 +149,7 @@ class Nimegami : MainAPI() { tryParseJson>(base64Decode(data))?.map { sources -> sources.url?.apmap { url -> loadFixedExtractor( - url.fixIframe(), + url, sources.format, "$mainUrl/", subtitleCallback, @@ -185,32 +184,10 @@ class Nimegami : MainAPI() { } } - private fun getBaseUrl(url: String): String { - return URI(url).let { - "${it.scheme}://${it.host}" - } - } - private fun Elements.getContent(css: String): Elements { return this.select("tr:contains($css) td:last-child") } - private fun String.fixIframe(): String { - val url = base64Decode(this.substringAfter("url=").substringAfter("id=")) - return when { - url.contains("hxfile") -> { - val host = getBaseUrl(url) - val id = url.substringAfterLast("/") - "$host/embed-$id.html" - } - url.startsWith("https://mitedrive.my.id") -> url.replace( - "https://mitedrive.my.id", - "https://mitedrive.com" - ) - else -> fixUrl(url) - } - } - data class Sources( @JsonProperty("format") val format: String? = null, @JsonProperty("url") val url: ArrayList? = arrayListOf(), diff --git a/Nimegami/src/main/kotlin/com/hexated/NimegamiPlugin.kt b/Nimegami/src/main/kotlin/com/hexated/NimegamiPlugin.kt index 8ab01378..87802ce3 100644 --- a/Nimegami/src/main/kotlin/com/hexated/NimegamiPlugin.kt +++ b/Nimegami/src/main/kotlin/com/hexated/NimegamiPlugin.kt @@ -11,5 +11,6 @@ class NimegamiPlugin: Plugin() { // All providers should be added in this manner. Please don't edit the providers list directly. registerMainAPI(Nimegami()) registerExtractorAPI(Mitedrive()) + registerExtractorAPI(Berkasdrive()) } } \ No newline at end of file