From 649a4deb278a18aa079f1b569f693a1b661f2594 Mon Sep 17 00:00:00 2001 From: Zaw Date: Thu, 16 Feb 2023 14:16:57 +0300 Subject: [PATCH] So much shit --- AkwamProvider/build.gradle.kts | 1 - AnimeBlkomProvider/build.gradle.kts | 1 - AnimeiatProvider/build.gradle.kts | 1 - ArabSeedProvider/build.gradle.kts | 1 - .../kotlin/com/arabseed/ArabSeedProvider.kt | 25 ------- CimaNowProvider/build.gradle.kts | 1 - .../kotlin/com/cimanow/CimaNowProvider.kt | 2 +- EgyDeadProvider/build.gradle.kts | 3 +- .../kotlin/com/egydead/EgyDeadProvider.kt | 66 ++----------------- Extractors/build.gradle.kts | 12 ++++ Extractors/src/main/AndroidManifest.xml | 2 + .../kotlin/com/extractors/ExtractorsPlugin.kt | 22 +++++++ .../main/kotlin/com/extractors/GoStream.kt | 2 +- .../src/main/kotlin/com/extractors}/Govad.kt | 2 +- .../com/extractors}/JWPlayerExtractor.kt | 10 ++- .../src/main/kotlin/com/extractors/LinkBox.kt | 58 ++++++++++++++++ .../main/kotlin/com/extractors}/Moshahda.kt | 3 +- .../src/main/kotlin/com/extractors/MyVid.kt | 2 +- .../src/main/kotlin/com/extractors/VidHD.kt | 2 +- .../src/main/kotlin/com/extractors/Vidmoly.kt | 25 +++++++ .../src/main/kotlin/com/extractors/VoeSx.kt | 33 ++++++++++ FajerShowProvider/build.gradle.kts | 3 +- .../kotlin/com/fajershow/FajerShowProvider.kt | 44 +------------ FaselHDProvider/build.gradle.kts | 1 - FushaarProvider/build.gradle.kts | 1 - GateAnimeProvider/build.gradle.kts | 1 - .../src/main/kotlin/com/movizland/JWPlayer.kt | 59 ----------------- .../kotlin/com/movizland/MovizlandPlugin.kt | 4 -- MyCimaProvider/build.gradle.kts | 3 +- .../main/kotlin/com/mycima/MyCimaPlugin.kt | 1 - .../main/kotlin/com/mycima/MyCimaProvider.kt | 12 ++-- Shahid4uProvider/build.gradle.kts | 1 - .../kotlin/com/shahid4u/Shahid4uPlugin.kt | 3 - 33 files changed, 181 insertions(+), 226 deletions(-) create mode 100644 Extractors/build.gradle.kts create mode 100644 Extractors/src/main/AndroidManifest.xml create mode 100644 Extractors/src/main/kotlin/com/extractors/ExtractorsPlugin.kt rename Shahid4uProvider/src/main/kotlin/com/shahid4u/gostream.kt => Extractors/src/main/kotlin/com/extractors/GoStream.kt (98%) rename {MovizlandProvider/src/main/kotlin/com/movizland => Extractors/src/main/kotlin/com/extractors}/Govad.kt (98%) rename {Shahid4uProvider/src/main/kotlin/com/shahid4u => Extractors/src/main/kotlin/com/extractors}/JWPlayerExtractor.kt (89%) create mode 100644 Extractors/src/main/kotlin/com/extractors/LinkBox.kt rename {MovizlandProvider/src/main/kotlin/com/movizland => Extractors/src/main/kotlin/com/extractors}/Moshahda.kt (95%) rename MyCimaProvider/src/main/kotlin/com/mycima/myvid.kt => Extractors/src/main/kotlin/com/extractors/MyVid.kt (98%) rename Shahid4uProvider/src/main/kotlin/com/shahid4u/vidhd.kt => Extractors/src/main/kotlin/com/extractors/VidHD.kt (98%) create mode 100644 Extractors/src/main/kotlin/com/extractors/Vidmoly.kt create mode 100644 Extractors/src/main/kotlin/com/extractors/VoeSx.kt delete mode 100644 MovizlandProvider/src/main/kotlin/com/movizland/JWPlayer.kt diff --git a/AkwamProvider/build.gradle.kts b/AkwamProvider/build.gradle.kts index be469a2..8b1dff4 100644 --- a/AkwamProvider/build.gradle.kts +++ b/AkwamProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 2 cloudstream { - description = "" authors = listOf( "Blatzar" ) language = "ar" diff --git a/AnimeBlkomProvider/build.gradle.kts b/AnimeBlkomProvider/build.gradle.kts index d22dcae..5a3ab33 100644 --- a/AnimeBlkomProvider/build.gradle.kts +++ b/AnimeBlkomProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 2 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/AnimeiatProvider/build.gradle.kts b/AnimeiatProvider/build.gradle.kts index 73d67b1..aa2b386 100644 --- a/AnimeiatProvider/build.gradle.kts +++ b/AnimeiatProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 2 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/ArabSeedProvider/build.gradle.kts b/ArabSeedProvider/build.gradle.kts index 287cea4..aad1204 100644 --- a/ArabSeedProvider/build.gradle.kts +++ b/ArabSeedProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 3 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/ArabSeedProvider/src/main/kotlin/com/arabseed/ArabSeedProvider.kt b/ArabSeedProvider/src/main/kotlin/com/arabseed/ArabSeedProvider.kt index 8a332e5..184ac86 100644 --- a/ArabSeedProvider/src/main/kotlin/com/arabseed/ArabSeedProvider.kt +++ b/ArabSeedProvider/src/main/kotlin/com/arabseed/ArabSeedProvider.kt @@ -184,31 +184,6 @@ class ArabSeed : MainAPI() { !sourceElement.attr("type").contains("mp4") ) ) - } else if (iframeUrl.contains("voe.sx")) { - val doc = app.get(iframeUrl).document - val script = doc.select("script").map { it.data() }.first { it.contains("sources") } - val m3u8 = script.substringAfter("'hls': '").substringBefore("'") - val mp4 = script.substringAfter("'mp4': '").substringBefore("'") - val voeSxquality = script.substringAfter("'video_height': ").substringBefore(",").toInt() - callback.invoke( - ExtractorLink( - this.name, - "Voe.sx m3u8", - m3u8, - data, - voeSxquality, - true - ) - ) - callback.invoke( - ExtractorLink( - this.name, - "Voe.sx mp4", - mp4, - data, - voeSxquality, - ) - ) } else loadExtractor(iframeUrl, data, subtitleCallback, callback) } } diff --git a/CimaNowProvider/build.gradle.kts b/CimaNowProvider/build.gradle.kts index 8ef9f8f..816c633 100644 --- a/CimaNowProvider/build.gradle.kts +++ b/CimaNowProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 1 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/CimaNowProvider/src/main/kotlin/com/cimanow/CimaNowProvider.kt b/CimaNowProvider/src/main/kotlin/com/cimanow/CimaNowProvider.kt index d9c45b7..dcc27dd 100644 --- a/CimaNowProvider/src/main/kotlin/com/cimanow/CimaNowProvider.kt +++ b/CimaNowProvider/src/main/kotlin/com/cimanow/CimaNowProvider.kt @@ -145,7 +145,7 @@ class CimaNow : MainAPI() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ): Boolean { - app.get("$data").document.select("ul#download [aria-label=\"quality\"]").forEach { + app.get(data).document.select("ul#download [aria-label=\"quality\"]").forEach { val name = if(it.select("span").text().contains("فائق السرعة")) "Fast Servers" else "Servers" it.select("a").forEach { media -> callback.invoke( diff --git a/EgyDeadProvider/build.gradle.kts b/EgyDeadProvider/build.gradle.kts index addf045..605726a 100644 --- a/EgyDeadProvider/build.gradle.kts +++ b/EgyDeadProvider/build.gradle.kts @@ -1,7 +1,6 @@ -version = 3 +version = 4 cloudstream { - description = "Some LinkBox links are broken idk why" authors = listOf( "ImZaw" ) language = "ar" diff --git a/EgyDeadProvider/src/main/kotlin/com/egydead/EgyDeadProvider.kt b/EgyDeadProvider/src/main/kotlin/com/egydead/EgyDeadProvider.kt index 81a06b0..6efa9ff 100644 --- a/EgyDeadProvider/src/main/kotlin/com/egydead/EgyDeadProvider.kt +++ b/EgyDeadProvider/src/main/kotlin/com/egydead/EgyDeadProvider.kt @@ -1,13 +1,10 @@ package com.egydead -import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer import com.lagradost.cloudstream3.utils.ExtractorLink -import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.loadExtractor import org.jsoup.nodes.Element -import java.net.URI class EgyDead : MainAPI() { override var lang = "ar" @@ -127,29 +124,6 @@ class EgyDead : MainAPI() { } } } - data class LinkBox ( - @JsonProperty("data" ) var data : Data? = Data(), - ) - data class Data ( - @JsonProperty("itemInfo" ) var itemInfo : ItemInfo? = ItemInfo(), - ) - data class ItemInfo ( - @JsonProperty("resolutionList" ) var resolutionList : ArrayList = arrayListOf(), - ) - data class ResolutionList ( - - @JsonProperty("resolution" ) var resolution : String? = null, - @JsonProperty("size" ) var size : Double? = null, - @JsonProperty("sub_type" ) var subType : String? = null, - @JsonProperty("url" ) var url : String? = null, - - ) - private fun bytesToHumanReadableSize(bytes: Double) = when { - bytes >= 1 shl 30 -> "%.1f GB".format(bytes / (1 shl 30)) - bytes >= 1 shl 20 -> "%.1f MB".format(bytes / (1 shl 20)) - bytes >= 1 shl 10 -> "%.0f kB".format(bytes / (1 shl 10)) - else -> "$bytes bytes" - } override suspend fun loadLinks( data: String, isCasting: Boolean, @@ -159,44 +133,12 @@ class EgyDead : MainAPI() { val doc = app.post(data, data = mapOf("View" to "1")).document doc.select(".donwload-servers-list > li").apmap { element -> val url = element.select("a").attr("href") - if(url.contains("www.linkbox.to")) { - val apiUrl = "https://" + URI(url).host + "/api/file/detail?itemId=" + url.substringAfter("/file/") - val json = app.get(apiUrl).parsed() - json.data?.itemInfo?.resolutionList?.forEach { - callback.invoke( - ExtractorLink( - this.name, - "LinkBox " + bytesToHumanReadableSize(it.size ?: 0.0), - it.url ?: return@forEach, - mainUrl, - it.resolution?.replace("p","")?.toInt() ?: Qualities.Unknown.value, - false - ) - ) - } - } else loadExtractor(url, data, subtitleCallback, callback) + println(url) + loadExtractor(url, data, subtitleCallback, callback) } - val watchList = doc.select("ul.serversList > li") - watchList.apmap { li -> + doc.select("ul.serversList > li").apmap { li -> val iframeUrl = li.attr("data-link") - val quality = li.select("small").text().getIntFromText() ?: Qualities.Unknown.value - if(iframeUrl.contains("www.linkbox.to")) { - val apiUrl = "https://" + URI(iframeUrl).host + "/api/file/detail?itemId=" + iframeUrl.substringAfter("id=").substringBefore("&") - val json = app.get(apiUrl).parsed() - json.data?.itemInfo?.resolutionList?.forEach { - callback.invoke( - ExtractorLink( - this.name, - "LinkBox " + bytesToHumanReadableSize(it.size ?: 0.0), - it.url ?: return@forEach, - mainUrl, - quality, - false - ) - ) - } - } - else loadExtractor(iframeUrl, data, subtitleCallback, callback) + loadExtractor(iframeUrl, data, subtitleCallback, callback) } return true } diff --git a/Extractors/build.gradle.kts b/Extractors/build.gradle.kts new file mode 100644 index 0000000..d0e38d0 --- /dev/null +++ b/Extractors/build.gradle.kts @@ -0,0 +1,12 @@ +version = 1 + +cloudstream { + description = "This is required to be downloaded." + authors = listOf( "ImZaw" ) + + language = "ar" + + status = 1 + + tvTypes = listOf( "TvSeries" , "Movie" , "Anime" , "AsianDrama" ) +} \ No newline at end of file diff --git a/Extractors/src/main/AndroidManifest.xml b/Extractors/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ddff5e9 --- /dev/null +++ b/Extractors/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Extractors/src/main/kotlin/com/extractors/ExtractorsPlugin.kt b/Extractors/src/main/kotlin/com/extractors/ExtractorsPlugin.kt new file mode 100644 index 0000000..630f4c7 --- /dev/null +++ b/Extractors/src/main/kotlin/com/extractors/ExtractorsPlugin.kt @@ -0,0 +1,22 @@ +package com.extractors +import com.lagradost.cloudstream3.plugins.CloudstreamPlugin +import com.lagradost.cloudstream3.plugins.Plugin +import android.content.Context + +@CloudstreamPlugin +class ExtractorsPlugin: Plugin() { + override fun load(context: Context) { + registerExtractorAPI(VidHDJW()) + registerExtractorAPI(VidHD()) + registerExtractorAPI(GoStream()) + registerExtractorAPI(MyVid()) + registerExtractorAPI(Vidshar()) + registerExtractorAPI(Vadbam()) + registerExtractorAPI(Vidbom()) + registerExtractorAPI(Govad()) + registerExtractorAPI(Moshahda()) + registerExtractorAPI(VoeSx()) + registerExtractorAPI(LinkBox()) + registerExtractorAPI(Vidmoly()) + } +} \ No newline at end of file diff --git a/Shahid4uProvider/src/main/kotlin/com/shahid4u/gostream.kt b/Extractors/src/main/kotlin/com/extractors/GoStream.kt similarity index 98% rename from Shahid4uProvider/src/main/kotlin/com/shahid4u/gostream.kt rename to Extractors/src/main/kotlin/com/extractors/GoStream.kt index bb3c121..ea7a0c3 100644 --- a/Shahid4uProvider/src/main/kotlin/com/shahid4u/gostream.kt +++ b/Extractors/src/main/kotlin/com/extractors/GoStream.kt @@ -1,4 +1,4 @@ -package com.shahid4u +package com.extractors import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink diff --git a/MovizlandProvider/src/main/kotlin/com/movizland/Govad.kt b/Extractors/src/main/kotlin/com/extractors/Govad.kt similarity index 98% rename from MovizlandProvider/src/main/kotlin/com/movizland/Govad.kt rename to Extractors/src/main/kotlin/com/extractors/Govad.kt index a26a8c5..9e01655 100644 --- a/MovizlandProvider/src/main/kotlin/com/movizland/Govad.kt +++ b/Extractors/src/main/kotlin/com/extractors/Govad.kt @@ -1,4 +1,4 @@ -package com.movizland +package com.extractors import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app diff --git a/Shahid4uProvider/src/main/kotlin/com/shahid4u/JWPlayerExtractor.kt b/Extractors/src/main/kotlin/com/extractors/JWPlayerExtractor.kt similarity index 89% rename from Shahid4uProvider/src/main/kotlin/com/shahid4u/JWPlayerExtractor.kt rename to Extractors/src/main/kotlin/com/extractors/JWPlayerExtractor.kt index a762f9a..1a9ba6b 100644 --- a/Shahid4uProvider/src/main/kotlin/com/shahid4u/JWPlayerExtractor.kt +++ b/Extractors/src/main/kotlin/com/extractors/JWPlayerExtractor.kt @@ -1,4 +1,4 @@ -package com.shahid4u +package com.extractors import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app @@ -60,4 +60,12 @@ class VidHDJW : JWPlayer() { class Vidbom : JWPlayer() { override val name = "Vidbom" override val mainUrl = "https://vidbom.com" +} +class Vadbam : JWPlayer() { + override val name = "Vadbam" + override val mainUrl = "https://vadbam.com/" +} +class Vidshar : JWPlayer() { + override val name = "Vidshar" + override val mainUrl = "https://vidshar.org/" } \ No newline at end of file diff --git a/Extractors/src/main/kotlin/com/extractors/LinkBox.kt b/Extractors/src/main/kotlin/com/extractors/LinkBox.kt new file mode 100644 index 0000000..e2b41c1 --- /dev/null +++ b/Extractors/src/main/kotlin/com/extractors/LinkBox.kt @@ -0,0 +1,58 @@ +package com.extractors + +import com.fasterxml.jackson.annotation.JsonProperty +import com.lagradost.cloudstream3.apmap +import com.lagradost.cloudstream3.utils.ExtractorApi +import com.lagradost.cloudstream3.utils.ExtractorLink +import com.lagradost.cloudstream3.app +import com.lagradost.cloudstream3.utils.Qualities +import java.net.URI + +open class LinkBox : ExtractorApi() { + override val name = "LinkBox" + override val mainUrl = "https://www.linkbox.to" + override val requiresReferer = false + + data class LinkBox ( + @JsonProperty("data" ) var data : Data? = Data(), + ) + data class Data ( + @JsonProperty("itemInfo" ) var itemInfo : ItemInfo? = ItemInfo(), + ) + data class ItemInfo ( + @JsonProperty("resolutionList" ) var resolutionList : ArrayList = arrayListOf(), + ) + data class ResolutionList ( + + @JsonProperty("resolution" ) var resolution : String? = null, + @JsonProperty("size" ) var size : Double? = null, + @JsonProperty("sub_type" ) var subType : String? = null, + @JsonProperty("url" ) var url : String? = null, + + ) + private fun bytesToHumanReadableSize(bytes: Double) = when { + bytes >= 1 shl 30 -> "%.1f GB".format(bytes / (1 shl 30)) + bytes >= 1 shl 20 -> "%.1f MB".format(bytes / (1 shl 20)) + bytes >= 1 shl 10 -> "%.0f kB".format(bytes / (1 shl 10)) + else -> "$bytes bytes" + } + + override suspend fun getUrl(url: String, referer: String?): List { + println("LinkBox extractor started") + val sources = mutableListOf() + val apiUrl = "https://" + URI(url).host + "/api/file/detail?itemId=" + url.substringAfter("/file/") + val json = app.get(apiUrl).parsed() + json.data?.itemInfo?.resolutionList?.forEach { + sources.add(ExtractorLink( + this.name, + "LinkBox " + bytesToHumanReadableSize(it.size ?: 0.0), + it.url ?: return@forEach, + mainUrl, + it.resolution?.replace("p","")?.toInt() ?: Qualities.Unknown.value, + false + )) + } + println(sources) + return sources + } +} \ No newline at end of file diff --git a/MovizlandProvider/src/main/kotlin/com/movizland/Moshahda.kt b/Extractors/src/main/kotlin/com/extractors/Moshahda.kt similarity index 95% rename from MovizlandProvider/src/main/kotlin/com/movizland/Moshahda.kt rename to Extractors/src/main/kotlin/com/extractors/Moshahda.kt index 63f4e89..3f14871 100644 --- a/MovizlandProvider/src/main/kotlin/com/movizland/Moshahda.kt +++ b/Extractors/src/main/kotlin/com/extractors/Moshahda.kt @@ -1,9 +1,8 @@ -package com.movizland +package com.extractors import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities -import com.lagradost.cloudstream3.app open class Moshahda : ExtractorApi() { override val name = "Moshahda" diff --git a/MyCimaProvider/src/main/kotlin/com/mycima/myvid.kt b/Extractors/src/main/kotlin/com/extractors/MyVid.kt similarity index 98% rename from MyCimaProvider/src/main/kotlin/com/mycima/myvid.kt rename to Extractors/src/main/kotlin/com/extractors/MyVid.kt index 62d62be..bfcb09c 100644 --- a/MyCimaProvider/src/main/kotlin/com/mycima/myvid.kt +++ b/Extractors/src/main/kotlin/com/extractors/MyVid.kt @@ -1,4 +1,4 @@ -package com.mycima +package com.extractors import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink diff --git a/Shahid4uProvider/src/main/kotlin/com/shahid4u/vidhd.kt b/Extractors/src/main/kotlin/com/extractors/VidHD.kt similarity index 98% rename from Shahid4uProvider/src/main/kotlin/com/shahid4u/vidhd.kt rename to Extractors/src/main/kotlin/com/extractors/VidHD.kt index 74787fb..664fa9a 100644 --- a/Shahid4uProvider/src/main/kotlin/com/shahid4u/vidhd.kt +++ b/Extractors/src/main/kotlin/com/extractors/VidHD.kt @@ -1,4 +1,4 @@ -package com.shahid4u +package com.extractors import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink diff --git a/Extractors/src/main/kotlin/com/extractors/Vidmoly.kt b/Extractors/src/main/kotlin/com/extractors/Vidmoly.kt new file mode 100644 index 0000000..2ff736e --- /dev/null +++ b/Extractors/src/main/kotlin/com/extractors/Vidmoly.kt @@ -0,0 +1,25 @@ +package com.extractors + +import com.lagradost.cloudstream3.utils.ExtractorApi +import com.lagradost.cloudstream3.utils.ExtractorLink +import com.lagradost.cloudstream3.app +import com.lagradost.cloudstream3.utils.Qualities + +open class Vidmoly : ExtractorApi() { + override val name = "Vidmoly" + override val mainUrl = "https://vidmoly.to" + override val requiresReferer = false + + override suspend fun getUrl(url: String, referer: String?): List { + val doc = app.get(url).document + val m3u8 = doc.select("body > script").map { it.data() }.first { it.contains("sources") }.substringAfter("sources: [{file:\"").substringBefore("\"}],") + return mutableListOf(ExtractorLink( + this.name, + "Vidmoly", + m3u8, + referer ?: mainUrl, + Qualities.Unknown.value, + m3u8.contains(".m3u8") + )) + } +} \ No newline at end of file diff --git a/Extractors/src/main/kotlin/com/extractors/VoeSx.kt b/Extractors/src/main/kotlin/com/extractors/VoeSx.kt new file mode 100644 index 0000000..20e52f6 --- /dev/null +++ b/Extractors/src/main/kotlin/com/extractors/VoeSx.kt @@ -0,0 +1,33 @@ +package com.extractors + +import com.lagradost.cloudstream3.utils.ExtractorApi +import com.lagradost.cloudstream3.utils.ExtractorLink +import com.lagradost.cloudstream3.app + +open class VoeSx : ExtractorApi() { + override val name = "VoeSx" + override val mainUrl = "https://voe.sx" + override val requiresReferer = false + + override suspend fun getUrl(url: String, referer: String?): List { + val doc = app.get(url).document + val script = doc.select("script").map { it.data() }.first { it.contains("sources") } + val m3u8 = script.substringAfter("'hls': '").substringBefore("'") + val mp4 = script.substringAfter("'mp4': '").substringBefore("'") + val quality = script.substringAfter("'video_height': ").substringBefore(",").toInt() + return mutableListOf(ExtractorLink( + this.name, + "Voe.sx m3u8", + m3u8, + referer ?: mainUrl, + quality, + true + ), ExtractorLink( + this.name, + "Voe.sx mp4", + mp4, + referer ?: mainUrl, + quality, + )) + } +} \ No newline at end of file diff --git a/FajerShowProvider/build.gradle.kts b/FajerShowProvider/build.gradle.kts index b00b977..8c18176 100644 --- a/FajerShowProvider/build.gradle.kts +++ b/FajerShowProvider/build.gradle.kts @@ -1,7 +1,6 @@ -version = 2 +version = 3 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/FajerShowProvider/src/main/kotlin/com/fajershow/FajerShowProvider.kt b/FajerShowProvider/src/main/kotlin/com/fajershow/FajerShowProvider.kt index 9eb8093..da2632e 100644 --- a/FajerShowProvider/src/main/kotlin/com/fajershow/FajerShowProvider.kt +++ b/FajerShowProvider/src/main/kotlin/com/fajershow/FajerShowProvider.kt @@ -195,49 +195,7 @@ class FajerShow : MainAPI() { ) ) } - println("FajerLive\n$response\n") // parse using FajerLive data class - } - else if (it.contains("vidmoly.to")) { - val doc = app.get(it).document - val m3u8 = doc.select("body > script").map { it.data() }.first { it.contains("sources") }.substringAfter("sources: [{file:\"").substringBefore("\"}],") - callback.invoke( - ExtractorLink( - this.name, - "Vidmoly", - m3u8, - data, - Qualities.Unknown.value, - m3u8.contains(".m3u8") - ) - ) - println("VIDMOLY.TO\n$m3u8\n") - } - else if (it.contains("voe.sx")) { - val doc = app.get(it).document - val script = doc.select("script").map { it.data() }.first { it.contains("sources") } - val m3u8 = script.substringAfter("'hls': '").substringBefore("'") - val mp4 = script.substringAfter("'mp4': '").substringBefore("'") - val quality = script.substringAfter("'video_height': ").substringBefore(",").toInt() - callback.invoke( - ExtractorLink( - this.name, - "Voe.sx m3u8", - m3u8, - data, - quality, - true - ) - ) - callback.invoke( - ExtractorLink( - this.name, - "Voe.sx mp4", - mp4, - data, - quality, - ) - ) - println("VOE.SX\n$m3u8\n$mp4\n$quality\n") + println("FajerLive\n$response\n") } else loadExtractor(it, data, subtitleCallback, callback) } diff --git a/FaselHDProvider/build.gradle.kts b/FaselHDProvider/build.gradle.kts index 3c43378..1c289bf 100644 --- a/FaselHDProvider/build.gradle.kts +++ b/FaselHDProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 6 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/FushaarProvider/build.gradle.kts b/FushaarProvider/build.gradle.kts index 1ac0e33..d3dcdda 100644 --- a/FushaarProvider/build.gradle.kts +++ b/FushaarProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 2 cloudstream { - description = "" authors = listOf( "Spoonge" ) language = "ar" status = 1 diff --git a/GateAnimeProvider/build.gradle.kts b/GateAnimeProvider/build.gradle.kts index 95e7428..3de1358 100644 --- a/GateAnimeProvider/build.gradle.kts +++ b/GateAnimeProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 3 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/MovizlandProvider/src/main/kotlin/com/movizland/JWPlayer.kt b/MovizlandProvider/src/main/kotlin/com/movizland/JWPlayer.kt deleted file mode 100644 index 935501f..0000000 --- a/MovizlandProvider/src/main/kotlin/com/movizland/JWPlayer.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.movizland - -import com.fasterxml.jackson.annotation.JsonProperty -import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson -import com.lagradost.cloudstream3.utils.ExtractorApi -import com.lagradost.cloudstream3.utils.ExtractorLink -import com.lagradost.cloudstream3.utils.getQualityFromName -import com.lagradost.cloudstream3.utils.Qualities - -open class JWPlayer : ExtractorApi() { - override val name = "JWPlayer" - override val mainUrl = "https://www.jwplayer.com" - override val requiresReferer = false - - override suspend fun getUrl(url: String, referer: String?): List? { - val sources = mutableListOf() - with(app.get(url).document) { - val data = this.select("script").mapNotNull { script -> - if (script.data().contains("sources: [")) { - script.data().substringAfter("sources: [") - .substringBefore("],").replace("file", "\"file\"").replace("label", "\"label\"") - } else { - null - } - } - - tryParseJson>("$data")?.map { - sources.add( - ExtractorLink( - name, - name, - it.file, - referer = url, - quality = getQualityFromName(it.label) ?: Qualities.Unknown.value, - isM3u8 = if(it.file.endsWith(".m3u8")) true else false - ) - ) - } - } - return sources - } - - private data class ResponseSource( - @JsonProperty("file") val file: String, - @JsonProperty("type") val type: String?, - @JsonProperty("label") val label: String? - ) - -} - -class Vadbam : JWPlayer() { - override val name = "Vadbam" - override val mainUrl = "https://vadbam.com/" -} -class Vidshar : JWPlayer() { - override val name = "Vidshar" - override val mainUrl = "https://vidshar.org/" -} diff --git a/MovizlandProvider/src/main/kotlin/com/movizland/MovizlandPlugin.kt b/MovizlandProvider/src/main/kotlin/com/movizland/MovizlandPlugin.kt index 5dd4bc5..c576dbc 100644 --- a/MovizlandProvider/src/main/kotlin/com/movizland/MovizlandPlugin.kt +++ b/MovizlandProvider/src/main/kotlin/com/movizland/MovizlandPlugin.kt @@ -7,9 +7,5 @@ import android.content.Context class MovizlandPlugin: Plugin() { override fun load(context: Context) { registerMainAPI(Movizland()) - registerExtractorAPI(Govad()) - registerExtractorAPI(Moshahda()) - registerExtractorAPI(Vadbam()) - registerExtractorAPI(Vidshar()) } } \ No newline at end of file diff --git a/MyCimaProvider/build.gradle.kts b/MyCimaProvider/build.gradle.kts index 8f4bd59..ace53b7 100644 --- a/MyCimaProvider/build.gradle.kts +++ b/MyCimaProvider/build.gradle.kts @@ -1,7 +1,6 @@ -version = 6 +version = 7 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaPlugin.kt b/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaPlugin.kt index d5a7533..4220e76 100644 --- a/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaPlugin.kt +++ b/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaPlugin.kt @@ -7,6 +7,5 @@ import android.content.Context class MyCimaPlugin: Plugin() { override fun load(context: Context) { registerMainAPI(MyCima()) - registerExtractorAPI(MyVid()) } } \ No newline at end of file diff --git a/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaProvider.kt b/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaProvider.kt index bd63c3a..60b8055 100644 --- a/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaProvider.kt +++ b/MyCimaProvider/src/main/kotlin/com/mycima/MyCimaProvider.kt @@ -55,7 +55,7 @@ class MyCima : MainAPI() { override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse { val doc = app.get(request.data + page).document - val list = doc.select("div.Grid--MycimaPosts div.GridItem").mapNotNull { element -> + val list = doc.select("div.Grid--WecimaPosts div.GridItem").mapNotNull { element -> element.toSearchResponse() } return newHomePageResponse(request.name, list) @@ -70,7 +70,7 @@ class MyCima : MainAPI() { "$mainUrl/search/$q/list/anime/" ).apmap { url -> val d = app.get(url).document - d.select("div.Grid--MycimaPosts div.GridItem").mapNotNull { + d.select("div.Grid--WecimaPosts div.GridItem").mapNotNull { if (it.text().contains("اعلان")) return@mapNotNull null it.toSearchResponse()?.let { it1 -> result.add(it1) } } @@ -86,9 +86,9 @@ class MyCima : MainAPI() { val doc = app.get(url).document val isMovie = doc.select("ol li:nth-child(3)").text().contains("افلام") val posterUrl = - doc.select("mycima.separated--top")?.attr("data-lazy-style")?.getImageURL() + doc.select("wecima.separated--top")?.attr("data-lazy-style")?.getImageURL() ?.ifEmpty { doc.select("meta[itemprop=\"thumbnailUrl\"]")?.attr("content") } - ?.ifEmpty { doc.select("mycima.separated--top")?.attr("style")?.getImageURL() } + ?.ifEmpty { doc.select("wecima.separated--top")?.attr("style")?.getImageURL() } val year = doc.select("div.Title--Content--Single-begin h1 a.unline")?.text()?.getIntFromText() val title = doc.select("div.Title--Content--Single-begin h1").text() @@ -113,7 +113,7 @@ class MyCima : MainAPI() { Actor(name, image) } val recommendations = - doc.select("div.Grid--MycimaPosts div.GridItem")?.mapNotNull { element -> + doc.select("div.Grid--WecimaPosts div.GridItem")?.mapNotNull { element -> element.toSearchResponse() } @@ -314,7 +314,7 @@ class MyCima : MainAPI() { val url = it.select("btn").attr("data-url") loadExtractor(url, data, subtitleCallback, callback) } - doc.select("ul.List--Download--Mycima--Single:nth-child(2) li").apmap { + doc.select("ul.List--Download--Wecima--Single:nth-child(2) li").apmap { it.select("a").map { linkElement -> callback.invoke( ExtractorLink( diff --git a/Shahid4uProvider/build.gradle.kts b/Shahid4uProvider/build.gradle.kts index 24065b6..4bc512c 100644 --- a/Shahid4uProvider/build.gradle.kts +++ b/Shahid4uProvider/build.gradle.kts @@ -1,7 +1,6 @@ version = 7 cloudstream { - description = "" authors = listOf( "ImZaw" ) language = "ar" diff --git a/Shahid4uProvider/src/main/kotlin/com/shahid4u/Shahid4uPlugin.kt b/Shahid4uProvider/src/main/kotlin/com/shahid4u/Shahid4uPlugin.kt index 0777b56..9e825b5 100644 --- a/Shahid4uProvider/src/main/kotlin/com/shahid4u/Shahid4uPlugin.kt +++ b/Shahid4uProvider/src/main/kotlin/com/shahid4u/Shahid4uPlugin.kt @@ -7,8 +7,5 @@ import android.content.Context class Shahid4uPlugin: Plugin() { override fun load(context: Context) { registerMainAPI(Shahid4u()) - registerExtractorAPI(VidHDJW()) - registerExtractorAPI(VidHD()) - registerExtractorAPI(GoStream()) } } \ No newline at end of file