fixed some providers

This commit is contained in:
hexated 2023-05-01 03:55:42 +07:00
parent 6a68f2213a
commit 9d0175ff0f
8 changed files with 114 additions and 20 deletions

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 3 version = 4
cloudstream { cloudstream {

View file

@ -9,7 +9,7 @@ import java.util.ArrayList
class Gomunimeis : MainAPI() { class Gomunimeis : MainAPI() {
override var mainUrl = "https://gomunime.is" override var mainUrl = "https://anoboy.life"
override var name = "Gomunime.is" override var name = "Gomunime.is"
override val hasMainPage = true override val hasMainPage = true
override var lang = "id" override var lang = "id"
@ -66,7 +66,7 @@ class Gomunimeis : MainAPI() {
return newAnimeSearchResponse( return newAnimeSearchResponse(
postTitle ?: return null, postTitle ?: return null,
"$mainUrl/anime/$postName.$salt", "$mainUrl/anime/$postName",
TvType.TvSeries, TvType.TvSeries,
) { ) {
this.posterUrl = "$mainImageUrl/$image" this.posterUrl = "$mainImageUrl/$image"

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 12 version = 13
cloudstream { cloudstream {

View file

@ -0,0 +1,93 @@
package com.hexated
import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.SubtitleFile
import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.utils.*
class Krakenfiles : ExtractorApi() {
override val name = "Krakenfiles"
override val mainUrl = "https://krakenfiles.com"
override val requiresReferer = false
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
val id = Regex("(?://|\\.)(krakenfiles\\.com)/(?:view|embed-video)?/([\\da-zA-Z]+)").find(url)?.groupValues?.get(2)
val doc = app.get("$mainUrl/embed-video/$id").document
val link = doc.selectFirst("source")?.attr("src")
callback.invoke(
ExtractorLink(
this.name,
this.name,
httpsify(link ?: return),
"",
Qualities.Unknown.value
)
)
}
data class Source(
@JsonProperty("url") val url: String? = null,
)
}
class Gofile : ExtractorApi() {
override val name = "Gofile"
override val mainUrl = "https://gofile.io"
override val requiresReferer = false
private val mainApi = "https://api.gofile.io"
override suspend fun getUrl(
url: String,
referer: String?,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
val id =
Regex("(?://|\\.)(gofile\\.io)/(?:\\?c=|d/)([\\da-zA-Z]+)").find(url)?.groupValues?.get(
2
)
val token = app.get("$mainApi/createAccount").parsedSafe<Account>()?.data?.get("token")
app.get("$mainApi/getContent?contentId=$id&token=$token&websiteToken=12345")
.parsedSafe<Source>()?.data?.contents?.forEach {
callback.invoke(
ExtractorLink(
this.name,
this.name,
it.value["link"] ?: return,
"",
getQuality(it.value["name"]),
headers = mapOf(
"Cookie" to "accountToken=$token"
)
)
)
}
}
private fun getQuality(str: String?): Int {
return Regex("(\\d{3,4})[pP]").find(str ?: "")?.groupValues?.getOrNull(1)?.toIntOrNull()
?: Qualities.Unknown.value
}
data class Account(
@JsonProperty("data") val data: HashMap<String, String>? = null,
)
data class Data(
@JsonProperty("contents") val contents: HashMap<String, HashMap<String, String>>? = null,
)
data class Source(
@JsonProperty("data") val data: Data? = null,
)
}

View file

@ -216,7 +216,7 @@ class OploverzProvider : MainAPI() {
link.name, link.name,
link.url, link.url,
link.referer, link.referer,
if (source.startsWith(acefile)) getQualityFromName(quality) else link.quality, getQualityFromName(quality),
link.isM3u8, link.isM3u8,
link.headers, link.headers,
link.extractorData link.extractorData

View file

@ -11,5 +11,7 @@ class OploverzProviderPlugin: Plugin() {
// All providers should be added in this manner. Please don't edit the providers list directly. // All providers should be added in this manner. Please don't edit the providers list directly.
registerMainAPI(OploverzProvider()) registerMainAPI(OploverzProvider())
registerExtractorAPI(Streamhide()) registerExtractorAPI(Streamhide())
registerExtractorAPI(Krakenfiles())
registerExtractorAPI(Gofile())
} }
} }

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 = 125 version = 126
android { android {
defaultConfig { defaultConfig {

View file

@ -932,21 +932,16 @@ object SoraExtractor : SoraStream() {
.parsedSafe<AllanimeResponses>()?.data?.episode?.sourceUrls?.find { it.sourceName == "Ac" } .parsedSafe<AllanimeResponses>()?.data?.episode?.sourceUrls?.find { it.sourceName == "Ac" }
val serverUrl = fixUrl( val serverUrl = fixUrl(
server?.sourceUrl?.replace("/clock", "/clock.json") ?: return@apmap, server?.sourceUrl?.replace("/clock", "/clock.json") ?: return@apmap,
if(tl == "sub") "https://allanimenews.com" else "https://mblog.allanimenews.com" "https://blog.allanime.pro"
) )
app.get(serverUrl) app.get(serverUrl)
.parsedSafe<AllanimeLinks>()?.links?.forEach { link -> .parsedSafe<AllanimeLinks>()?.links?.filter { it.resolutionStr == "RAW" && it.hls == true }?.forEach { source ->
link.portData?.streams?.filter { val tlName = if (translation == "sub") "Raw" else "English Dub"
(it.format == "adaptive_hls" || it.format == "vo_adaptive_hls") && it.hardsub_lang.isNullOrEmpty() M3u8Helper.generateM3u8(
}?.forEach { source -> "Vrv [$tlName]",
val name = if (source.format == "vo_adaptive_hls") "Vrv" else "Crunchyroll" source.link ?: return@apmap,
val translation = if (tl == "sub") "Raw" else "English Dub" "https://static.crunchyroll.com/",
M3u8Helper.generateM3u8( ).forEach(callback)
"$name [$translation]",
source.url ?: return@apmap,
"https://static.crunchyroll.com/",
).forEach(callback)
}
} }
} }
@ -3328,7 +3323,11 @@ data class AllanimePortData(
) )
data class AllanimeLink( data class AllanimeLink(
@JsonProperty("portData") val portData: AllanimePortData? = null @JsonProperty("portData") val portData: AllanimePortData? = null,
@JsonProperty("resolutionStr") val resolutionStr: String? = null,
@JsonProperty("src") val src: String? = null,
@JsonProperty("link") val link: String? = null,
@JsonProperty("hls") val hls: Boolean? = null,
) )
data class AllanimeLinks( data class AllanimeLinks(