sora: added new index site

This commit is contained in:
hexated 2023-02-21 16:02:45 +07:00
parent 2c82e903e8
commit 03e8ade0e0
6 changed files with 106 additions and 3 deletions

View file

@ -1,5 +1,5 @@
// use an integer for version numbers // use an integer for version numbers
version = 5 version = 6
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 = "hhttps://dramaid.best" override var mainUrl = "https://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 = 93 version = 94
cloudstream { cloudstream {

View file

@ -2271,6 +2271,66 @@ object SoraExtractor : SoraStream() {
) )
} }
suspend fun invokeRubyMovies(
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 invokeShinobiMovies(
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 invokeVitoenMovies(
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,
)
}
private suspend fun invokeIndex( private suspend fun invokeIndex(
apiUrl: String, apiUrl: String,
api: String, api: String,
@ -2385,6 +2445,7 @@ object SoraExtractor : SoraStream() {
val files = app.get( val files = app.get(
"https://api.telegram.d1.zindex.eu.org/search?name=${encode(query)}&page=1", "https://api.telegram.d1.zindex.eu.org/search?name=${encode(query)}&page=1",
referer = tgarMovieAPI, referer = tgarMovieAPI,
headers = mapOf("Origin" to tgarMovieAPI),
verify = false verify = false
).parsedSafe<TgarData>()?.results?.filter { media -> ).parsedSafe<TgarData>()?.results?.filter { media ->
(if (season == null) { (if (season == null) {

View file

@ -42,11 +42,14 @@ import com.hexated.SoraExtractor.invokePapaonMovies1
import com.hexated.SoraExtractor.invokePapaonMovies2 import com.hexated.SoraExtractor.invokePapaonMovies2
import com.hexated.SoraExtractor.invokeRStream import com.hexated.SoraExtractor.invokeRStream
import com.hexated.SoraExtractor.invokeRinzrymovies import com.hexated.SoraExtractor.invokeRinzrymovies
import com.hexated.SoraExtractor.invokeRubyMovies
import com.hexated.SoraExtractor.invokeShinobiMovies
import com.hexated.SoraExtractor.invokeSmashyStream import com.hexated.SoraExtractor.invokeSmashyStream
import com.hexated.SoraExtractor.invokeSoraStream import com.hexated.SoraExtractor.invokeSoraStream
import com.hexated.SoraExtractor.invokeTgarMovies import com.hexated.SoraExtractor.invokeTgarMovies
import com.hexated.SoraExtractor.invokeTvMovies import com.hexated.SoraExtractor.invokeTvMovies
import com.hexated.SoraExtractor.invokeUhdmovies import com.hexated.SoraExtractor.invokeUhdmovies
import com.hexated.SoraExtractor.invokeVitoenMovies
import com.hexated.SoraExtractor.invokeWatchsomuch import com.hexated.SoraExtractor.invokeWatchsomuch
import com.hexated.SoraExtractor.invokeXtrememovies import com.hexated.SoraExtractor.invokeXtrememovies
import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.parseJson
@ -129,6 +132,9 @@ open class SoraStream : TmdbProvider() {
const val dahmerMoviesAPI = "https://edytjedhgmdhm.abfhaqrhbnf.workers.dev" const val dahmerMoviesAPI = "https://edytjedhgmdhm.abfhaqrhbnf.workers.dev"
const val tgarMovieAPI = "https://tgarchive.eu.org" const val tgarMovieAPI = "https://tgarchive.eu.org"
const val jmdkhMovieAPI = "https://tg.jmdkh.eu.org/0:" const val jmdkhMovieAPI = "https://tg.jmdkh.eu.org/0:"
const val rubyMovieAPI = "https://upload.rubyshare111.workers.dev/0:"
const val shinobiMovieAPI = "https://index.shinobicloud.cf/0:"
const val vitoenMovieAPI = "https://openmatte.vitoencodes.workers.dev/0:"
fun getType(t: String?): TvType { fun getType(t: String?): TvType {
return when (t) { return when (t) {
@ -733,6 +739,39 @@ open class SoraStream : TmdbProvider() {
callback callback
) )
}, },
{
if (!res.isAnime) invokeShinobiMovies(
shinobiMovieAPI,
"ShinobiMovies",
res.title,
res.year,
res.season,
res.episode,
callback
)
},
{
if (!res.isAnime) invokeRubyMovies(
rubyMovieAPI,
"RubyMovies",
res.title,
res.year,
res.season,
res.episode,
callback
)
},
{
if (!res.isAnime) invokeVitoenMovies(
vitoenMovieAPI,
"VitoenMovies",
res.title,
res.year,
res.season,
res.episode,
callback
)
},
) )
return true return true

View file

@ -46,6 +46,9 @@ val encodedIndex = arrayOf(
"PapaonMovies[1]", "PapaonMovies[1]",
"PapaonMovies[2]", "PapaonMovies[2]",
"JmdkhMovies", "JmdkhMovies",
"RubyMovies",
"ShinobiMovies",
"VitoenMovies",
) )
val lockedIndex = arrayOf( val lockedIndex = arrayOf(