From 063fdb6bcfdc51d8d913870ebb8735cc2102e64f Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 28 Oct 2023 02:23:05 +0700 Subject: [PATCH] fixed nineTv --- Gomov/build.gradle.kts | 2 +- .../src/main/kotlin/com/hexated/Extractors.kt | 2 +- SoraStream/build.gradle.kts | 2 +- .../src/main/kotlin/com/hexated/Extractors.kt | 2 +- .../main/kotlin/com/hexated/SoraExtractor.kt | 63 ------------------- .../src/main/kotlin/com/hexated/SoraStream.kt | 19 ++---- 6 files changed, 9 insertions(+), 81 deletions(-) diff --git a/Gomov/build.gradle.kts b/Gomov/build.gradle.kts index d06d6c36..5bda55ee 100644 --- a/Gomov/build.gradle.kts +++ b/Gomov/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.konan.properties.Properties // use an integer for version numbers -version = 24 +version = 25 android { defaultConfig { diff --git a/Gomov/src/main/kotlin/com/hexated/Extractors.kt b/Gomov/src/main/kotlin/com/hexated/Extractors.kt index 43619d7e..a948d7c2 100644 --- a/Gomov/src/main/kotlin/com/hexated/Extractors.kt +++ b/Gomov/src/main/kotlin/com/hexated/Extractors.kt @@ -106,7 +106,7 @@ object NineTv { ) { val mainUrl = getBaseUrl(url) val res = app.get(url, referer = referer) - val master = Regex("JScript\\s*=\\s*'([^']+)").find(res.text)?.groupValues?.get(1) + val master = Regex("JScripts\\s*=\\s*'([^']+)").find(res.text)?.groupValues?.get(1) val key = res.document.getKeys() ?: throw ErrorLoadingException("can't generate key") val decrypt = AesHelper.cryptoAESHandler(master ?: return, key.toByteArray(), false) ?.replace("\\", "") diff --git a/SoraStream/build.gradle.kts b/SoraStream/build.gradle.kts index 68a6c81b..5dcc56ec 100644 --- a/SoraStream/build.gradle.kts +++ b/SoraStream/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.konan.properties.Properties // use an integer for version numbers -version = 188 +version = 189 android { defaultConfig { diff --git a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt index 85d37ba8..f21f9c2f 100644 --- a/SoraStream/src/main/kotlin/com/hexated/Extractors.kt +++ b/SoraStream/src/main/kotlin/com/hexated/Extractors.kt @@ -248,7 +248,7 @@ object NineTv { ) { val mainUrl = getBaseUrl(url) val res = app.get(url, referer = referer) - val master = Regex("JScript\\s*=\\s*'([^']+)").find(res.text)?.groupValues?.get(1) + val master = Regex("JScripts\\s*=\\s*'([^']+)").find(res.text)?.groupValues?.get(1) val key = res.document.getKeys() ?: throw ErrorLoadingException("can't generate key") val decrypt = AesHelper.cryptoAESHandler(master ?: return, key.toByteArray(), false) ?.replace("\\", "") diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index 47d8f979..0d059a27 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -1160,69 +1160,6 @@ object SoraExtractor : SoraStream() { } } - suspend fun invokePobmovies( - title: String? = null, year: Int? = null, callback: (ExtractorLink) -> Unit - ) { - val detailDoc = app.get("$pobmoviesAPI/${title.createSlug()}-$year").document - val iframeList = detailDoc.select("div.entry-content p").map { it } - .filter { it.text().filterIframe(year = year, title = title) }.mapNotNull { - it.text() to it.nextElementSibling()?.select("a")?.attr("href") - }.filter { it.second?.contains(Regex("(https:)|(http:)")) == true } - - val sources = mutableListOf>() - if (iframeList.any { - it.first.contains( - "2160p", true - ) - }) { - sources.addAll(iframeList.filter { - it.first.contains( - "2160p", true - ) - }) - sources.add(iframeList.first { - it.first.contains( - "1080p", true - ) - }) - } else { - sources.addAll(iframeList.filter { it.first.contains("1080p", true) }) - } - - sources.apmap { (name, link) -> - if (link.isNullOrEmpty()) return@apmap - val videoLink = when { - link.contains("gdtot") -> { - val gdBotLink = extractGdbot(link) - extractGdflix(gdBotLink ?: return@apmap) - } - - link.contains("gdflix") -> { - extractGdflix(link) - } - - else -> { - return@apmap - } - } - - val tags = getUhdTags(name) - val qualities = getIndexQuality(name) - val size = getIndexSize(name) - callback.invoke( - ExtractorLink( - "Pobmovies", - "Pobmovies $tags [${size}]", - videoLink ?: return@apmap, - "", - qualities - ) - ) - - } - - } - suspend fun invokeHdmovies4u( title: String? = null, imdbId: String? = null, diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt index 86db8cc8..b81d4378 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraStream.kt @@ -38,7 +38,6 @@ import com.hexated.SoraExtractor.invokeJump1 import com.hexated.SoraExtractor.invokeMoment import com.hexated.SoraExtractor.invokeMultimovies import com.hexated.SoraExtractor.invokeNetmovies -import com.hexated.SoraExtractor.invokePobmovies import com.hexated.SoraExtractor.invokeGomovies import com.hexated.SoraExtractor.invokeMovies123 import com.hexated.SoraExtractor.invokeSFMovies @@ -82,7 +81,7 @@ open class SoraStream : TmdbProvider() { /** ALL SOURCES */ const val twoEmbedAPI = "https://www.2embed.cc" - const val vidSrcAPI = "https://v2.vidsrc.me" + const val vidSrcAPI = "https://vidsrc.me" const val dbgoAPI = "https://dbgo.fun" const val dreamfilmAPI = "https://dreamfilmsw.net" const val noverseAPI = "https://www.nollyverse.com" @@ -92,7 +91,7 @@ open class SoraStream : TmdbProvider() { const val crunchyrollAPI = "https://beta-api.crunchyroll.com" const val kissKhAPI = "https://kisskh.co" const val lingAPI = "https://ling-online.net" - const val uhdmoviesAPI = "https://uhdmovies.click" + const val uhdmoviesAPI = "https://uhdmovies.dev" const val gMoviesAPI = "https://gdrivemovies.xyz" const val fdMoviesAPI = "https://freedrivemovie.lol" const val m4uhdAPI = "https://ww2.m4ufree.com" @@ -104,13 +103,12 @@ open class SoraStream : TmdbProvider() { const val smashyStreamAPI = "https://embed.smashystream.com" const val watchSomuchAPI = "https://watchsomuch.tv" // sub only const val watchOnlineAPI = "https://lookmovie.foundation" - const val nineTvAPI = "https://moviesapi.club" + const val nineTvAPI = "https://ww1.moviesapi.club" const val nowTvAPI = "https://myfilestorage.xyz" const val gokuAPI = "https://goku.sx" const val ridomoviesAPI = "https://ridomovies.pw" const val navyAPI = "https://navy-issue-i-239.site" const val emoviesAPI = "https://emovies.si" - const val pobmoviesAPI = "https://pobmovies.cam" const val multimoviesAPI = "https://multimovies.info" const val netmoviesAPI = "https://netmovies.to" const val momentAPI = "https://moment-explanation-i-244.site" @@ -120,11 +118,11 @@ open class SoraStream : TmdbProvider() { const val animetoshoAPI = "https://animetosho.org" const val movies123API = "https://new-movies123.link" const val jump1API = "https://ca.jump1.net" - const val vegaMoviesAPI = "https://vegamovies.id" + const val vegaMoviesAPI = "https://vegamovies.zip" const val hdmovies4uAPI = "https://hdmovies4u.name" const val watchflxAPI = "https://watchflx.tv" const val gomoviesAPI = "https://gomovies-online.cam" - const val dotmoviesAPI = "https://dotmovies.monster" + const val dotmoviesAPI = "https://dotmovies.tattoo" const val blackvidAPI = "https://prod.api.blackvid.space" const val showflixAPI = "https://showflix.online" const val dahmerMoviesAPI = "https://edytjedhgmdhm.abfhaqrhbnf.workers.dev" @@ -645,13 +643,6 @@ open class SoraStream : TmdbProvider() { callback ) }, - { - if (!res.isAnime && res.season == null) invokePobmovies( - res.title, - res.year, - callback - ) - }, { invokeMultimovies(res.title, res.season, res.episode, subtitleCallback, callback) },