sora: added XtremeMovies

This commit is contained in:
hexated 2023-02-09 10:47:14 +07:00
parent b8574bca71
commit 1038a2ad2d
4 changed files with 48 additions and 14 deletions

View file

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

View file

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

View file

@ -2141,6 +2141,26 @@ object SoraExtractor : SoraStream() {
) )
} }
suspend fun invokeXtrememovies(
apiUrl: String,
api: String,
title: String? = null,
year: Int? = null,
season: Int? = null,
episode: Int? = null,
callback: (ExtractorLink) -> Unit,
) {
invokeIndex(
apiUrl,
api,
title,
year,
season,
episode,
callback,
)
}
suspend fun invokeRinzrymovies( suspend fun invokeRinzrymovies(
apiUrl: String, apiUrl: String,
api: String, api: String,
@ -2216,21 +2236,22 @@ object SoraExtractor : SoraStream() {
password: String? = null, password: String? = null,
) { ) {
val encodedIndex = arrayOf( val encodedIndex = arrayOf(
"Gammovies", "GamMovies",
"JSMovies", "JSMovies",
"Blackmovies", "BlackMovies",
"CodexMovies", "CodexMovies",
"Rinzrymovies", "RinzryMovies",
"Edithxmovies", "EdithxMovies",
"XtremeMovies",
) )
val lockedIndex = arrayOf( val lockedIndex = arrayOf(
"CodexMovies", "CodexMovies",
"Edithxmovies", "EdithxMovies",
) )
val premiumIndex = arrayOf( val premiumIndex = arrayOf(
"Edithxmovies" "EdithxMovies"
) )
val passHeaders = mapOf( val passHeaders = mapOf(
@ -2290,7 +2311,7 @@ object SoraExtractor : SoraStream() {
} else { } else {
app.post("${apiUrl}id2path", requestBody = pathBody) app.post("${apiUrl}id2path", requestBody = pathBody)
}).text.let { path -> }).text.let { path ->
if (api == "Rinzrymovies") { if (api == "RinzryMovies") {
val worker = app.get( val worker = app.get(
"${fixUrl(path, apiUrl)}?a=view" "${fixUrl(path, apiUrl)}?a=view"
).document.selectFirst("script:containsData(downloaddomain)")?.data() ).document.selectFirst("script:containsData(downloaddomain)")?.data()

View file

@ -42,6 +42,7 @@ import com.hexated.SoraExtractor.invokeSoraStream
import com.hexated.SoraExtractor.invokeTvMovies import com.hexated.SoraExtractor.invokeTvMovies
import com.hexated.SoraExtractor.invokeUhdmovies import com.hexated.SoraExtractor.invokeUhdmovies
import com.hexated.SoraExtractor.invokeWatchsomuch import com.hexated.SoraExtractor.invokeWatchsomuch
import com.hexated.SoraExtractor.invokeXtrememovies
import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.parseJson
import com.lagradost.cloudstream3.utils.AppUtils.toJson import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLink
@ -116,6 +117,7 @@ open class SoraStream : TmdbProvider() {
const val rinzryMoviesAPI = "https://rinzry.stream/0:" const val rinzryMoviesAPI = "https://rinzry.stream/0:"
const val codexMoviesAPI = "https://packs.codexcloudx.tech/0:" const val codexMoviesAPI = "https://packs.codexcloudx.tech/0:"
const val edithxMoviesAPI = "https://index.edithx.ga/0:" const val edithxMoviesAPI = "https://index.edithx.ga/0:"
const val xtremeMoviesAPI = "https://kartik19.xtrememirror0.workers.dev/0:"
fun getType(t: String?): TvType { fun getType(t: String?): TvType {
return when (t) { return when (t) {
@ -588,7 +590,7 @@ open class SoraStream : TmdbProvider() {
// { // {
// if (!res.isAnime) invokeGammovies( // if (!res.isAnime) invokeGammovies(
// gamMoviesAPI, // gamMoviesAPI,
// "Gammovies", // "GamMovies",
// res.title, // res.title,
// res.year, // res.year,
// res.season, // res.season,
@ -607,7 +609,7 @@ open class SoraStream : TmdbProvider() {
{ {
if (!res.isAnime) invokeBlackmovies( if (!res.isAnime) invokeBlackmovies(
blackMoviesAPI, blackMoviesAPI,
"Blackmovies", "BlackMovies",
res.title, res.title,
res.year, res.year,
res.season, res.season,
@ -629,7 +631,7 @@ open class SoraStream : TmdbProvider() {
{ {
invokeRinzrymovies( invokeRinzrymovies(
rinzryMoviesAPI, rinzryMoviesAPI,
"Rinzrymovies", "RinzryMovies",
res.title, res.title,
res.year, res.year,
res.season, res.season,
@ -652,7 +654,7 @@ open class SoraStream : TmdbProvider() {
{ {
if (!res.isAnime) invokeEdithxmovies( if (!res.isAnime) invokeEdithxmovies(
edithxMoviesAPI, edithxMoviesAPI,
"Edithxmovies", "EdithxMovies",
res.title, res.title,
res.year, res.year,
res.season, res.season,
@ -660,7 +662,18 @@ open class SoraStream : TmdbProvider() {
callback, callback,
"Basic ZWRpdGg6amFydmlz" "Basic ZWRpdGg6amFydmlz"
) )
} },
{
if (!res.isAnime) invokeXtrememovies(
xtremeMoviesAPI,
"XtremeMovies",
res.title,
res.year,
res.season,
res.episode,
callback
)
},
) )
return true return true