cloudstream-extensions-hexated/Nimegami/src/main/kotlin/com/hexated/Extractors.kt

95 lines
2.8 KiB
Kotlin
Raw Normal View History

2023-07-24 14:25:57 +00:00
package com.hexated
import com.fasterxml.jackson.annotation.JsonProperty
2024-01-25 19:21:19 +00:00
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.utils.*
2023-07-24 14:25:57 +00:00
open class Mitedrive : ExtractorApi() {
override val name = "Mitedrive"
override val mainUrl = "https://mitedrive.com"
override val requiresReferer = false
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
val id = url.substringAfterLast("/")
val video = app.post(
2023-11-16 19:55:54 +00:00
"https://api.mitedrive.com/api/view/$id",
2023-07-24 14:25:57 +00:00
referer = "$mainUrl/",
data = mapOf(
2023-11-16 19:55:54 +00:00
"csrf_token" to "ZXlKcGNDSTZJak0yTGpneExqWTFMakUyTWlJc0ltUmxkbWxqWlNJNklrMXZlbWxzYkdFdk5TNHdJQ2hYYVc1a2IzZHpJRTVVSURFd0xqQTdJRmRwYmpZME95QjROalE3SUhKMk9qRXdNUzR3S1NCSFpXTnJieTh5TURFd01ERXdNU0JHYVhKbFptOTRMekV3TVM0d0lpd2lZbkp2ZDNObGNpSTZJazF2ZW1sc2JHRWlMQ0pqYjI5cmFXVWlPaUlpTENKeVpXWmxjbkpsY2lJNklpSjk=",
"slug" to id
2023-07-24 14:25:57 +00:00
)
).parsedSafe<Responses>()?.data?.url
callback.invoke(
ExtractorLink(
this.name,
this.name,
video ?: return,
2023-11-16 19:55:54 +00:00
"$mainUrl/",
2023-07-24 14:25:57 +00:00
Qualities.Unknown.value,
2023-11-16 19:55:54 +00:00
INFER_TYPE,
2023-07-24 14:25:57 +00:00
)
)
}
data class Data(
2023-11-16 19:55:54 +00:00
@JsonProperty("original_url") val url: String? = null,
2023-07-24 14:25:57 +00:00
)
data class Responses(
@JsonProperty("data") val data: Data? = null,
)
2024-01-15 13:04:54 +00:00
}
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
)
)
}
2024-01-25 19:21:19 +00:00
}
open class Videogami : ExtractorApi() {
override val name = "Videogami"
override val mainUrl = "https://video.nimegami.id"
override val requiresReferer = false
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
val id = base64Decode(url.substringAfter("url=")).substringAfterLast("/")
loadExtractor("https://hxfile.co/embed-$id.html", "$mainUrl/", subtitleCallback, callback)
}
2023-07-24 14:25:57 +00:00
}