Dramaid: updated domain

This commit is contained in:
hexated 2023-02-08 21:55:54 +07:00
parent fbae10d9e3
commit fdd244ed88
6 changed files with 28 additions and 12 deletions

View file

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

View file

@ -11,7 +11,7 @@ import org.jsoup.Jsoup
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
class DramaidProvider : MainAPI() { class DramaidProvider : MainAPI() {
override var mainUrl = "https://dramaid.cloud" override var mainUrl = "hhttps://dramaid.best"
override var name = "DramaId" override var name = "DramaId"
override val hasQuickSearch = false override val hasQuickSearch = false
override val hasMainPage = true override val hasMainPage = true

View file

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

View file

@ -142,7 +142,12 @@ open class Kickassanime : MainAPI() {
} }
} ?: if (episodes.size == 1) "movie" else "tv" } ?: if (episodes.size == 1) "movie" else "tv"
val (malId, anilistId, image, cover) = getTracker(trackerTitle, title.getTrackerTitle(), type, year) val (malId, anilistId, image, cover) = getTracker(
trackerTitle,
title.getTrackerTitle(),
type,
year
)
return newAnimeLoadResponse(title, url, getType(type)) { return newAnimeLoadResponse(title, url, getType(type)) {
engName = title engName = title

View file

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

View file

@ -717,6 +717,7 @@ object SoraExtractor : SoraStream() {
) )
} }
} }
suspend fun invokeSoraStream( suspend fun invokeSoraStream(
title: String? = null, title: String? = null,
year: Int? = null, year: Int? = null,
@ -730,10 +731,11 @@ object SoraExtractor : SoraStream() {
"versioncode" to "32", "versioncode" to "32",
"clienttype" to "android_tem3", "clienttype" to "android_tem3",
) )
val vipAPI = base64DecodeAPI("cA==YXA=cy8=Y20=di8=LnQ=b2s=a2w=bG8=aS4=YXA=ZS0=aWw=b2I=LW0=Z2E=Ly8=czo=dHA=aHQ=") val vipAPI =
base64DecodeAPI("cA==YXA=cy8=Y20=di8=LnQ=b2s=a2w=bG8=aS4=YXA=ZS0=aWw=b2I=LW0=Z2E=Ly8=czo=dHA=aHQ=")
val searchUrl = base64DecodeAPI("b20=LmM=b2s=a2w=bG8=Ly8=czo=dHA=aHQ=") val searchUrl = base64DecodeAPI("b20=LmM=b2s=a2w=bG8=Ly8=czo=dHA=aHQ=")
val doc = app.get("$searchUrl/search?keyword=$title",).document val doc = app.get("$searchUrl/search?keyword=$title").document
val scriptData = doc.select("div.search-list div.search-video-card").map { val scriptData = doc.select("div.search-list div.search-video-card").map {
Triple( Triple(
@ -1215,7 +1217,8 @@ object SoraExtractor : SoraStream() {
if (season == null) { if (season == null) {
it.text() to it.nextElementSibling()?.select("a")?.attr("href") it.text() to it.nextElementSibling()?.select("a")?.attr("href")
} else { } else {
it.text() to it.nextElementSibling()?.select("a:matches((Episode $episode)|($epsTitle))") it.text() to it.nextElementSibling()
?.select("a:matches((Episode $episode)|($epsTitle))")
?.attr("href") ?.attr("href")
} }
}.filter { it.second?.contains(Regex("(https:)|(http:)")) == true } }.filter { it.second?.contains(Regex("(https:)|(http:)")) == true }
@ -1918,7 +1921,8 @@ object SoraExtractor : SoraStream() {
).parsedSafe<Smashy1Source>() ?: return ).parsedSafe<Smashy1Source>() ?: return
val videoUrl = base64Decode(source.file ?: return) val videoUrl = base64Decode(source.file ?: return)
val quality = Regex("(\\d{3,4})[Pp]").find(videoUrl)?.groupValues?.getOrNull(1)?.toIntOrNull() val quality =
Regex("(\\d{3,4})[Pp]").find(videoUrl)?.groupValues?.getOrNull(1)?.toIntOrNull()
?: Qualities.P720.value ?: Qualities.P720.value
callback.invoke( callback.invoke(
ExtractorLink( ExtractorLink(
@ -2256,7 +2260,14 @@ object SoraExtractor : SoraStream() {
} else { } else {
app.post("${apiUrl}search", requestBody = body).text app.post("${apiUrl}search", requestBody = body).text
} }
val media = if(api in premiumIndex) searchIndex(title, season, episode, year, search, false) else searchIndex(title, season, episode, year, search) val media = if (api in premiumIndex) searchIndex(
title,
season,
episode,
year,
search,
false
) else searchIndex(title, season, episode, year, search)
media?.apmap { file -> media?.apmap { file ->
val pathBody = """{"id":"${file.id ?: return@apmap null}"}""".toRequestBody( val pathBody = """{"id":"${file.id ?: return@apmap null}"}""".toRequestBody(
RequestBodyTypes.JSON.toMediaTypeOrNull() RequestBodyTypes.JSON.toMediaTypeOrNull()