mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
parent
8396000a30
commit
d33a7aa039
6 changed files with 24 additions and 16 deletions
|
@ -1,7 +1,7 @@
|
||||||
import org.jetbrains.kotlin.konan.properties.Properties
|
import org.jetbrains.kotlin.konan.properties.Properties
|
||||||
|
|
||||||
// use an integer for version numbers
|
// use an integer for version numbers
|
||||||
version = 194
|
version = 195
|
||||||
|
|
||||||
android {
|
android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
|
|
@ -2445,7 +2445,7 @@ object SoraExtractor : SoraStream() {
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
"SFMovies",
|
"SFMovies",
|
||||||
"SFMovies",
|
"SFMovies",
|
||||||
fixUrl(video, "https://watchfree.blob.core.windows.net/watchfree"),
|
fixUrl(video, base64DecodeAPI("YQ==bm4=dGE=YXQ=L3I=ZXQ=Lm4=d3M=ZG8=aW4=Lnc=cmU=Y28=Yi4=bG8=LmI=bmE=YW4=dHQ=cmE=Ly8=czo=dHA=aHQ=")),
|
||||||
"",
|
"",
|
||||||
Qualities.P1080.value,
|
Qualities.P1080.value,
|
||||||
INFER_TYPE
|
INFER_TYPE
|
||||||
|
|
|
@ -14,6 +14,11 @@ data class AniIds(
|
||||||
var idMal: Int? = null
|
var idMal: Int? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
|
data class TmdbDate(
|
||||||
|
val today: String,
|
||||||
|
val nextWeek: String,
|
||||||
|
)
|
||||||
|
|
||||||
data class AniMedia(
|
data class AniMedia(
|
||||||
@JsonProperty("id") var id: Int? = null,
|
@JsonProperty("id") var id: Int? = null,
|
||||||
@JsonProperty("idMal") var idMal: Int? = null
|
@JsonProperty("idMal") var idMal: Int? = null
|
||||||
|
|
|
@ -142,7 +142,6 @@ open class SoraStream : TmdbProvider() {
|
||||||
"$tmdbAPI/movie/popular?api_key=$apiKey®ion=US" to "Popular Movies",
|
"$tmdbAPI/movie/popular?api_key=$apiKey®ion=US" to "Popular Movies",
|
||||||
"$tmdbAPI/tv/popular?api_key=$apiKey®ion=US&with_original_language=en" to "Popular TV Shows",
|
"$tmdbAPI/tv/popular?api_key=$apiKey®ion=US&with_original_language=en" to "Popular TV Shows",
|
||||||
"$tmdbAPI/tv/airing_today?api_key=$apiKey®ion=US&with_original_language=en" to "Airing Today TV Shows",
|
"$tmdbAPI/tv/airing_today?api_key=$apiKey®ion=US&with_original_language=en" to "Airing Today TV Shows",
|
||||||
// "$tmdbAPI/tv/on_the_air?api_key=$apiKey®ion=US" to "On The Air TV Shows",
|
|
||||||
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=213" to "Netflix",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=213" to "Netflix",
|
||||||
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=1024" to "Amazon",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=1024" to "Amazon",
|
||||||
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=2739" to "Disney+",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_networks=2739" to "Disney+",
|
||||||
|
@ -155,8 +154,8 @@ open class SoraStream : TmdbProvider() {
|
||||||
"$tmdbAPI/tv/top_rated?api_key=$apiKey®ion=US" to "Top Rated TV Shows",
|
"$tmdbAPI/tv/top_rated?api_key=$apiKey®ion=US" to "Top Rated TV Shows",
|
||||||
"$tmdbAPI/movie/upcoming?api_key=$apiKey®ion=US" to "Upcoming Movies",
|
"$tmdbAPI/movie/upcoming?api_key=$apiKey®ion=US" to "Upcoming Movies",
|
||||||
"$tmdbAPI/discover/tv?api_key=$apiKey&with_original_language=ko" to "Korean Shows",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_original_language=ko" to "Korean Shows",
|
||||||
"$tmdbAPI/tv/airing_today?api_key=$apiKey&with_keywords=210024|222243&sort_by=primary_release_date.desc" to "Airing Today Anime",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_keywords=210024|222243&sort_by=popularity.desc&air_date.lte=${getDate().today}&air_date.gte=${getDate().today}" to "Airing Today Anime",
|
||||||
"$tmdbAPI/tv/on_the_air?api_key=$apiKey&with_keywords=210024|222243&sort_by=primary_release_date.desc" to "Ongoing Anime",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_keywords=210024|222243&sort_by=popularity.desc&air_date.lte=${getDate().nextWeek}&air_date.gte=${getDate().today}" to "On The Air Anime",
|
||||||
"$tmdbAPI/discover/tv?api_key=$apiKey&with_keywords=210024|222243" to "Anime",
|
"$tmdbAPI/discover/tv?api_key=$apiKey&with_keywords=210024|222243" to "Anime",
|
||||||
"$tmdbAPI/discover/movie?api_key=$apiKey&with_keywords=210024|222243" to "Anime Movies",
|
"$tmdbAPI/discover/movie?api_key=$apiKey&with_keywords=210024|222243" to "Anime Movies",
|
||||||
)
|
)
|
||||||
|
@ -661,9 +660,6 @@ open class SoraStream : TmdbProvider() {
|
||||||
callback
|
callback
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// if (!res.isAnime) invokeWatchflx(res.id, res.season, res.episode, callback)
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
invokeZshow(
|
invokeZshow(
|
||||||
res.title,
|
res.title,
|
||||||
|
|
|
@ -264,14 +264,6 @@ class SoraStreamLite : SoraStream() {
|
||||||
callback
|
callback
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// if (!res.isAnime) invokeWatchflx(
|
|
||||||
// res.id,
|
|
||||||
// res.season,
|
|
||||||
// res.episode,
|
|
||||||
// callback
|
|
||||||
// )
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
if(!res.isAnime) invoke2embed(
|
if(!res.isAnime) invoke2embed(
|
||||||
res.imdbId,
|
res.imdbId,
|
||||||
|
|
|
@ -34,6 +34,8 @@ import java.security.*
|
||||||
import java.security.spec.PKCS8EncodedKeySpec
|
import java.security.spec.PKCS8EncodedKeySpec
|
||||||
import java.security.spec.X509EncodedKeySpec
|
import java.security.spec.X509EncodedKeySpec
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
import java.time.LocalDate
|
||||||
|
import java.time.format.DateTimeFormatter
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.crypto.Cipher
|
import javax.crypto.Cipher
|
||||||
import javax.crypto.spec.GCMParameterSpec
|
import javax.crypto.spec.GCMParameterSpec
|
||||||
|
@ -1279,10 +1281,23 @@ fun isUpcoming(dateString: String?): Boolean {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getDate() : TmdbDate {
|
||||||
|
val formatter = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
|
||||||
|
val calender = Calendar.getInstance()
|
||||||
|
val today = formatter.format(calender.time)
|
||||||
|
calender.add(Calendar.WEEK_OF_YEAR, 1)
|
||||||
|
val nextWeek = formatter.format(calender.time)
|
||||||
|
return TmdbDate(today, nextWeek)
|
||||||
|
}
|
||||||
|
|
||||||
fun decode(input: String): String = URLDecoder.decode(input, "utf-8")
|
fun decode(input: String): String = URLDecoder.decode(input, "utf-8")
|
||||||
|
|
||||||
fun encode(input: String): String = URLEncoder.encode(input, "utf-8").replace("+", "%20")
|
fun encode(input: String): String = URLEncoder.encode(input, "utf-8").replace("+", "%20")
|
||||||
|
|
||||||
|
fun base64DecodeAPI(api: String): String {
|
||||||
|
return api.chunked(4).map { base64Decode(it) }.reversed().joinToString("")
|
||||||
|
}
|
||||||
|
|
||||||
fun decryptStreamUrl(data: String): String {
|
fun decryptStreamUrl(data: String): String {
|
||||||
|
|
||||||
fun getTrash(arr: List<String>, item: Int): List<String> {
|
fun getTrash(arr: List<String>, item: Int): List<String> {
|
||||||
|
|
Loading…
Reference in a new issue