mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
sora: added dreamfilm
This commit is contained in:
parent
374be0ea41
commit
ccb29c2511
3 changed files with 59 additions and 6 deletions
|
@ -15,7 +15,6 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
|||
import okhttp3.RequestBody.Companion.toRequestBody
|
||||
import okio.ByteString.Companion.encode
|
||||
import org.jsoup.Jsoup
|
||||
import java.time.LocalDate
|
||||
|
||||
val session = Session(Requests().baseClient)
|
||||
|
||||
|
@ -277,6 +276,38 @@ object SoraExtractor : SoraStream() {
|
|||
|
||||
}
|
||||
|
||||
suspend fun invokeDreamfilm(
|
||||
title: String? = null,
|
||||
season: Int? = null,
|
||||
episode: Int? = null,
|
||||
subtitleCallback: (SubtitleFile) -> Unit,
|
||||
callback: (ExtractorLink) -> Unit
|
||||
) {
|
||||
val fixTitle = title.createSlug()
|
||||
val url = if (season == null) {
|
||||
"$dreamfilmAPI/$fixTitle"
|
||||
} else {
|
||||
"$dreamfilmAPI/series/$fixTitle/season-$season/episode-$episode"
|
||||
}
|
||||
|
||||
val iframe = app.get(url).document.selectFirst("iframe.Moly")?.attr("data-src")
|
||||
loadExtractor(iframe ?: return, "$dreamfilmAPI/", subtitleCallback) { link ->
|
||||
callback.invoke(
|
||||
ExtractorLink(
|
||||
link.name,
|
||||
link.name,
|
||||
link.url,
|
||||
link.referer,
|
||||
Qualities.P1080.value,
|
||||
link.isM3u8,
|
||||
link.headers,
|
||||
link.extractorData
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
suspend fun invokeSeries9(
|
||||
title: String? = null,
|
||||
year: Int? = null,
|
||||
|
|
|
@ -22,6 +22,7 @@ import com.lagradost.cloudstream3.*
|
|||
import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
|
||||
import com.lagradost.cloudstream3.metaproviders.TmdbProvider
|
||||
import com.hexated.SoraExtractor.invokeDahmerMovies
|
||||
import com.hexated.SoraExtractor.invokeDreamfilm
|
||||
import com.hexated.SoraExtractor.invokeEdithxmovies
|
||||
import com.hexated.SoraExtractor.invokeFDMovies
|
||||
import com.hexated.SoraExtractor.invokeFlixon
|
||||
|
@ -77,7 +78,8 @@ open class SoraStream : TmdbProvider() {
|
|||
const val gdbot = "https://gdtot.pro"
|
||||
const val anilistAPI = "https://graphql.anilist.co"
|
||||
|
||||
private val apiKey = base64DecodeAPI("ZTM=NTg=MjM=MjM=ODc=MzI=OGQ=MmE=Nzk=Nzk=ZjI=NTA=NDY=NDA=MzA=YjA=") // PLEASE DON'T STEAL
|
||||
private val apiKey =
|
||||
base64DecodeAPI("ZTM=NTg=MjM=MjM=ODc=MzI=OGQ=MmE=Nzk=Nzk=ZjI=NTA=NDY=NDA=MzA=YjA=") // PLEASE DON'T STEAL
|
||||
|
||||
/** ALL SOURCES */
|
||||
const val twoEmbedAPI = "https://www.2embed.to"
|
||||
|
@ -85,6 +87,7 @@ open class SoraStream : TmdbProvider() {
|
|||
const val dbgoAPI = "https://dbgo.fun"
|
||||
const val movieHabAPI = "https://moviehab.com"
|
||||
const val hdMovieBoxAPI = "https://hdmoviebox.net"
|
||||
const val dreamfilmAPI = "https://dreamfilmsw.net"
|
||||
const val series9API = "https://series9.sh"
|
||||
const val idlixAPI = "https://idlixian.com"
|
||||
const val noverseAPI = "https://www.nollyverse.com"
|
||||
|
@ -111,7 +114,8 @@ open class SoraStream : TmdbProvider() {
|
|||
const val movie123NetAPI = "https://ww8.0123movie.net"
|
||||
const val smashyStreamAPI = "https://embed.smashystream.com"
|
||||
const val watchSomuchAPI = "https://watchsomuch.tv" // sub only
|
||||
val gomoviesAPI = base64DecodeAPI("bQ==Y28=ZS4=aW4=bmw=LW8=ZXM=dmk=bW8=Z28=Ly8=czo=dHA=aHQ=")
|
||||
val gomoviesAPI =
|
||||
base64DecodeAPI("bQ==Y28=ZS4=aW4=bmw=LW8=ZXM=dmk=bW8=Z28=Ly8=czo=dHA=aHQ=")
|
||||
const val ask4MoviesAPI = "https://ask4movie.mx"
|
||||
const val biliBiliAPI = "https://api-vn.kaguya.app/server"
|
||||
const val watchOnlineAPI = "https://watchonline.ag"
|
||||
|
@ -131,7 +135,8 @@ open class SoraStream : TmdbProvider() {
|
|||
const val shinobiMovieAPI = "https://home.shinobicloud.cf/0:"
|
||||
const val vitoenMovieAPI = "https://openmatte.vitoencodes.workers.dev/0:"
|
||||
const val shivamhwAPI = "https://foogle.shivamhw.me"
|
||||
val cryMoviesAPI = base64DecodeAPI("ZXY=LmQ=cnM=a2U=b3I=Lnc=ZXI=ZGQ=bGE=cy0=b2I=YWM=Lmo=YWw=aW4=LWY=cm4=Ym8=cmU=Ly8=czo=dHA=aHQ=")
|
||||
val cryMoviesAPI =
|
||||
base64DecodeAPI("ZXY=LmQ=cnM=a2U=b3I=Lnc=ZXI=ZGQ=bGE=cy0=b2I=YWM=Lmo=YWw=aW4=LWY=cm4=Ym8=cmU=Ly8=czo=dHA=aHQ=")
|
||||
|
||||
// DEAD SITE
|
||||
const val consumetCrunchyrollAPI = "https://cronchy.consumet.stream" // dead
|
||||
|
@ -431,6 +436,15 @@ open class SoraStream : TmdbProvider() {
|
|||
callback
|
||||
)
|
||||
},
|
||||
{
|
||||
if (!res.isAnime) invokeDreamfilm(
|
||||
res.title,
|
||||
res.season,
|
||||
res.episode,
|
||||
subtitleCallback,
|
||||
callback
|
||||
)
|
||||
},
|
||||
{
|
||||
invokeSeries9(
|
||||
res.title,
|
||||
|
|
|
@ -2,8 +2,8 @@ package com.hexated
|
|||
|
||||
import com.hexated.SoraExtractor.invokeAnimes
|
||||
import com.hexated.SoraExtractor.invokeAsk4Movies
|
||||
import com.hexated.SoraExtractor.invokeCrunchyroll
|
||||
import com.hexated.SoraExtractor.invokeDbgo
|
||||
import com.hexated.SoraExtractor.invokeDreamfilm
|
||||
import com.hexated.SoraExtractor.invokeFilmxy
|
||||
import com.hexated.SoraExtractor.invokeFlixon
|
||||
import com.hexated.SoraExtractor.invokeFmovies
|
||||
|
@ -25,7 +25,6 @@ import com.hexated.SoraExtractor.invokeSeries9
|
|||
import com.hexated.SoraExtractor.invokeSmashyStream
|
||||
import com.hexated.SoraExtractor.invokeSoraStream
|
||||
import com.hexated.SoraExtractor.invokeTwoEmbed
|
||||
import com.hexated.SoraExtractor.invokeUniqueStream
|
||||
import com.hexated.SoraExtractor.invokeVidSrc
|
||||
import com.hexated.SoraExtractor.invokeWatchOnline
|
||||
import com.hexated.SoraExtractor.invokeWatchsomuch
|
||||
|
@ -136,6 +135,15 @@ class SoraStreamLite : SoraStream() {
|
|||
callback
|
||||
)
|
||||
},
|
||||
{
|
||||
if (!res.isAnime) invokeDreamfilm(
|
||||
res.title,
|
||||
res.season,
|
||||
res.episode,
|
||||
subtitleCallback,
|
||||
callback
|
||||
)
|
||||
},
|
||||
{
|
||||
invokeSeries9(res.title, res.year, res.season, res.episode, subtitleCallback, callback)
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue