This commit is contained in:
jack 2023-12-10 06:38:31 +07:00
parent 4e3678a046
commit d5d15afc2f
3 changed files with 14 additions and 16 deletions

View File

@ -8,11 +8,9 @@ import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.nicehttp.Requests import com.lagradost.nicehttp.Requests
import com.lagradost.nicehttp.Session import com.lagradost.nicehttp.Session
import com.lagradost.cloudstream3.extractors.helper.AesHelper.cryptoAESHandler import com.lagradost.cloudstream3.extractors.helper.AesHelper.cryptoAESHandler
import com.lagradost.cloudstream3.mvvm.suspendSafeApiCall
import com.lagradost.cloudstream3.network.CloudflareKiller import com.lagradost.cloudstream3.network.CloudflareKiller
import com.lagradost.nicehttp.RequestBodyTypes import com.lagradost.nicehttp.RequestBodyTypes
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.RequestBody.Companion.toRequestBody
import org.jsoup.Jsoup import org.jsoup.Jsoup
@ -2196,7 +2194,7 @@ object SoraExtractor : SoraStream() {
} }
suspend fun invokeWatchOnline( suspend fun invokeCinemaTv(
imdbId: String? = null, imdbId: String? = null,
title: String? = null, title: String? = null,
year: Int? = null, year: Int? = null,
@ -2208,9 +2206,9 @@ object SoraExtractor : SoraStream() {
val id = imdbId?.removePrefix("tt") val id = imdbId?.removePrefix("tt")
val slug = title.createSlug() val slug = title.createSlug()
val url = if (season == null) { val url = if (season == null) {
"$watchOnlineAPI/movies/play/$id-$slug-$year" "$cinemaTvAPI/movies/play/$id-$slug-$year"
} else { } else {
"$watchOnlineAPI/shows/play/$id-$slug-$year" "$cinemaTvAPI/shows/play/$id-$slug-$year"
} }
val headers = mapOf( val headers = mapOf(
@ -2230,9 +2228,9 @@ object SoraExtractor : SoraStream() {
}).let { it.toRegex().find(script)?.groupValues?.get(1) } }).let { it.toRegex().find(script)?.groupValues?.get(1) }
val videoUrl = if (season == null) { val videoUrl = if (season == null) {
"$watchOnlineAPI/api/v1/security/movie-access?id_movie=$episodeId&hash=$hash&expires=$expires" "$cinemaTvAPI/api/v1/security/movie-access?id_movie=$episodeId&hash=$hash&expires=$expires"
} else { } else {
"$watchOnlineAPI/api/v1/security/episode-access?id_episode=$episodeId&hash=$hash&expires=$expires" "$cinemaTvAPI/api/v1/security/episode-access?id_episode=$episodeId&hash=$hash&expires=$expires"
} }
val sources = app.get( val sources = app.get(
@ -2244,10 +2242,10 @@ object SoraExtractor : SoraStream() {
sources?.streams?.mapKeys { source -> sources?.streams?.mapKeys { source ->
callback.invoke( callback.invoke(
ExtractorLink( ExtractorLink(
"WatchOnline", "CinemaTv",
"WatchOnline", "CinemaTv",
source.value, source.value,
"$watchOnlineAPI/", "$cinemaTvAPI/",
getQualityFromName(source.key), getQualityFromName(source.key),
true true
) )
@ -2259,7 +2257,7 @@ object SoraExtractor : SoraStream() {
subtitleCallback.invoke( subtitleCallback.invoke(
SubtitleFile( SubtitleFile(
sub.language ?: return@map, sub.language ?: return@map,
if (file.startsWith("[")) return@map else fixUrl(file, watchOnlineAPI), if (file.startsWith("[")) return@map else fixUrl(file, cinemaTvAPI),
) )
) )
} }

View File

@ -43,7 +43,7 @@ import com.hexated.SoraExtractor.invokeTvMovies
import com.hexated.SoraExtractor.invokeUhdmovies import com.hexated.SoraExtractor.invokeUhdmovies
import com.hexated.SoraExtractor.invokeVegamovies import com.hexated.SoraExtractor.invokeVegamovies
import com.hexated.SoraExtractor.invokeVidsrcto import com.hexated.SoraExtractor.invokeVidsrcto
import com.hexated.SoraExtractor.invokeWatchOnline import com.hexated.SoraExtractor.invokeCinemaTv
import com.hexated.SoraExtractor.invokeWatchsomuch import com.hexated.SoraExtractor.invokeWatchsomuch
import com.hexated.SoraExtractor.invokeZshow import com.hexated.SoraExtractor.invokeZshow
import com.lagradost.cloudstream3.LoadResponse.Companion.addImdbId import com.lagradost.cloudstream3.LoadResponse.Companion.addImdbId
@ -93,7 +93,7 @@ open class SoraStream : TmdbProvider() {
const val flixonAPI = "https://flixon.lol" const val flixonAPI = "https://flixon.lol"
const val smashyStreamAPI = "https://embed.smashystream.com" const val smashyStreamAPI = "https://embed.smashystream.com"
const val watchSomuchAPI = "https://watchsomuch.tv" // sub only const val watchSomuchAPI = "https://watchsomuch.tv" // sub only
const val watchOnlineAPI = "https://www.lookmovie2.to" var cinemaTvAPI = base64DecodeAPI("bw==LnQ=ZTI=dmk=bW8=b2s=bG8=dy4=d3c=Ly8=czo=dHA=aHQ=")
const val nineTvAPI = "https://moviesapi.club" const val nineTvAPI = "https://moviesapi.club"
const val nowTvAPI = "https://myfilestorage.xyz" const val nowTvAPI = "https://myfilestorage.xyz"
const val gokuAPI = "https://goku.sx" const val gokuAPI = "https://goku.sx"
@ -572,7 +572,7 @@ open class SoraStream : TmdbProvider() {
) )
}, },
{ {
invokeWatchOnline( invokeCinemaTv(
res.imdbId, res.imdbId,
res.title, res.title,
res.airedYear ?: res.year, res.airedYear ?: res.year,

View File

@ -29,7 +29,7 @@ import com.hexated.SoraExtractor.invokeSFMovies
import com.hexated.SoraExtractor.invokeShowflix import com.hexated.SoraExtractor.invokeShowflix
import com.hexated.SoraExtractor.invokeVidSrc import com.hexated.SoraExtractor.invokeVidSrc
import com.hexated.SoraExtractor.invokeVidsrcto import com.hexated.SoraExtractor.invokeVidsrcto
import com.hexated.SoraExtractor.invokeWatchOnline import com.hexated.SoraExtractor.invokeCinemaTv
import com.hexated.SoraExtractor.invokeWatchsomuch import com.hexated.SoraExtractor.invokeWatchsomuch
import com.hexated.SoraExtractor.invokeZshow import com.hexated.SoraExtractor.invokeZshow
import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.SubtitleFile
@ -198,7 +198,7 @@ class SoraStreamLite : SoraStream() {
if (!res.isAnime) invokeFlixon(res.id, res.imdbId, res.season, res.episode, callback) if (!res.isAnime) invokeFlixon(res.id, res.imdbId, res.season, res.episode, callback)
}, },
{ {
invokeWatchOnline( invokeCinemaTv(
res.imdbId, res.imdbId,
res.title, res.title,
res.airedYear ?: res.year, res.airedYear ?: res.year,