diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/AStreamHub.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/AStreamHub.kt index 18602664..b0051ba7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/AStreamHub.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/AStreamHub.kt @@ -2,10 +2,11 @@ package com.lagradost.cloudstream3.extractors import android.util.Log import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.base64Decode -import com.lagradost.cloudstream3.utils.* +import com.lagradost.cloudstream3.utils.ExtractorApi +import com.lagradost.cloudstream3.utils.ExtractorLink +import com.lagradost.cloudstream3.utils.Qualities -class AStreamHub : ExtractorApi() { +open class AStreamHub : ExtractorApi() { override val name = "AStreamHub" override val mainUrl = "https://astreamhub.com" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Acefile.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Acefile.kt index fe46791b..18198f44 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Acefile.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Acefile.kt @@ -4,7 +4,7 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode import com.lagradost.cloudstream3.utils.* -class Acefile : ExtractorApi() { +open class Acefile : ExtractorApi() { override val name = "Acefile" override val mainUrl = "https://acefile.co" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/AsianLoad.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/AsianLoad.kt index cf16f200..7a62fb52 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/AsianLoad.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/AsianLoad.kt @@ -7,7 +7,7 @@ import com.lagradost.cloudstream3.utils.M3u8Helper import com.lagradost.cloudstream3.utils.getQualityFromName import java.net.URI -class AsianLoad : ExtractorApi() { +open class AsianLoad : ExtractorApi() { override var name = "AsianLoad" override var mainUrl = "https://asianembed.io" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Blogger.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Blogger.kt index cae77322..44e700b1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Blogger.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Blogger.kt @@ -5,7 +5,7 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson -class Blogger : ExtractorApi() { +open class Blogger : ExtractorApi() { override val name = "Blogger" override val mainUrl = "https://www.blogger.com" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/BullStream.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/BullStream.kt index e5368bc3..71fa7066 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/BullStream.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/BullStream.kt @@ -5,7 +5,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper -class BullStream : ExtractorApi() { +open class BullStream : ExtractorApi() { override val name = "BullStream" override val mainUrl = "https://bullstream.xyz" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Embedgram.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Embedgram.kt index 35569663..45a06dcc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Embedgram.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Embedgram.kt @@ -7,7 +7,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getQualityFromName import com.lagradost.cloudstream3.utils.httpsify -class Embedgram : ExtractorApi() { +open class Embedgram : ExtractorApi() { override val name = "Embedgram" override val mainUrl = "https://embedgram.com" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Fastream.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Fastream.kt index 0d5a5c78..f813d7ea 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Fastream.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Fastream.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8 -class Fastream: ExtractorApi() { +open class Fastream: ExtractorApi() { override var mainUrl = "https://fastream.to" override var name = "Fastream" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Filesim.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Filesim.kt index 5c8af1c5..8e3dc730 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Filesim.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Filesim.kt @@ -5,7 +5,7 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson -class Filesim : ExtractorApi() { +open class Filesim : ExtractorApi() { override val name = "Filesim" override val mainUrl = "https://files.im" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/GMPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/GMPlayer.kt index af02ee8a..52c45096 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/GMPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/GMPlayer.kt @@ -3,10 +3,9 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink -import com.lagradost.cloudstream3.utils.M3u8Helper import com.lagradost.cloudstream3.utils.Qualities -class GMPlayer : ExtractorApi() { +open class GMPlayer : ExtractorApi() { override val name = "GM Player" override val mainUrl = "https://gmplayer.xyz" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Linkbox.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Linkbox.kt index 52fc5532..73734e2a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Linkbox.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Linkbox.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getQualityFromName -class Linkbox : ExtractorApi() { +open class Linkbox : ExtractorApi() { override val name = "Linkbox" override val mainUrl = "https://www.linkbox.to" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mcloud.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Mcloud.kt deleted file mode 100644 index 29d98557..00000000 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mcloud.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.lagradost.cloudstream3.extractors - -open class Mcloud : WcoStream() { - override var name = "Mcloud" - override var mainUrl = "https://mcloud.to" - override val requiresReferer = true -} \ No newline at end of file diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mp4Upload.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Mp4Upload.kt index 68a4a103..93a280ed 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mp4Upload.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Mp4Upload.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.getAndUnpack -class Mp4Upload : ExtractorApi() { +open class Mp4Upload : ExtractorApi() { override var name = "Mp4Upload" override var mainUrl = "https://www.mp4upload.com" private val srcRegex = Regex("""player\.src\("(.*?)"""") diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/MultiQuality.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/MultiQuality.kt index 0c0b5c68..44657196 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/MultiQuality.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/MultiQuality.kt @@ -7,7 +7,7 @@ import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.getQualityFromName import java.net.URI -class MultiQuality : ExtractorApi() { +open class MultiQuality : ExtractorApi() { override var name = "MultiQuality" override var mainUrl = "https://gogo-play.net" private val sourceRegex = Regex("""file:\s*['"](.*?)['"],label:\s*['"](.*?)['"]""") diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mvidoo.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Mvidoo.kt index c00df942..9e5f5e74 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Mvidoo.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Mvidoo.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities -class Mvidoo : ExtractorApi() { +open class Mvidoo : ExtractorApi() { override val name = "Mvidoo" override val mainUrl = "https://mvidoo.com" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Pelisplus.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Pelisplus.kt index de469b22..45ec4c2f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Pelisplus.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Pelisplus.kt @@ -14,7 +14,7 @@ import org.jsoup.Jsoup * overrideMainUrl is necessary for for other vidstream clones like vidembed.cc * If they diverge it'd be better to make them separate. * */ -class Pelisplus(val mainUrl: String) { +open class Pelisplus(val mainUrl: String) { val name: String = "Vidstream" private fun getExtractorUrl(id: String): String { diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt index 9a031556..2b286abb 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson -class PlayLtXyz: ExtractorApi() { +open class PlayLtXyz: ExtractorApi() { override val name: String = "PlayLt" override val mainUrl: String = "https://play.playlt.xyz" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Solidfiles.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Solidfiles.kt index 849f5fc8..cc34781c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Solidfiles.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Solidfiles.kt @@ -8,7 +8,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getQualityFromName -class Solidfiles : ExtractorApi() { +open class Solidfiles : ExtractorApi() { override val name = "Solidfiles" override val mainUrl = "https://www.solidfiles.com" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamTape.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamTape.kt index af436ff3..ece8dc4b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamTape.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/StreamTape.kt @@ -5,7 +5,15 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities -class StreamTape : ExtractorApi() { +class StreamTapeNet : StreamTape() { + override var mainUrl = "https://streamtape.net" +} + +class ShaveTape : StreamTape(){ + override var mainUrl = "https://shavetape.cash" +} + +open class StreamTape : ExtractorApi() { override var name = "StreamTape" override var mainUrl = "https://streamtape.com" override val requiresReferer = false @@ -16,7 +24,8 @@ class StreamTape : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List? { with(app.get(url)) { linkRegex.find(this.text)?.let { - val extractedUrl = "https:${it.groups[1]!!.value + it.groups[2]!!.value.substring(3,)}" + val extractedUrl = + "https:${it.groups[1]!!.value + it.groups[2]!!.value.substring(3)}" return listOf( ExtractorLink( name, diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamhub.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamhub.kt index 2765ae17..c7689c58 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamhub.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamhub.kt @@ -7,7 +7,7 @@ import com.lagradost.cloudstream3.utils.JsUnpacker import com.lagradost.cloudstream3.utils.Qualities import java.net.URI -class Streamhub : ExtractorApi() { +open class Streamhub : ExtractorApi() { override var mainUrl = "https://streamhub.to" override var name = "Streamhub" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamplay.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamplay.kt index 3f5e5bd6..e6bbfeba 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamplay.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Streamplay.kt @@ -9,7 +9,7 @@ import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import java.net.URI -class Streamplay : ExtractorApi() { +open class Streamplay : ExtractorApi() { override val name = "Streamplay" override val mainUrl = "https://streamplay.to" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Supervideo.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Supervideo.kt index 955345aa..dd49d994 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Supervideo.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Supervideo.kt @@ -11,7 +11,7 @@ data class Files( @JsonProperty("label") val label: String? = null, ) - open class Supervideo : ExtractorApi() { +open class Supervideo : ExtractorApi() { override var name = "Supervideo" override var mainUrl = "https://supervideo.tv" override val requiresReferer = false @@ -20,10 +20,13 @@ data class Files( val response = app.get(url).text val jstounpack = Regex("eval((.|\\n)*?)").find(response)?.groups?.get(1)?.value val unpacjed = JsUnpacker(jstounpack).unpack() - val extractedUrl = unpacjed?.let { Regex("""sources:((.|\n)*?)image""").find(it) }?.groups?.get(1)?.value.toString().replace("file",""""file"""").replace("label",""""label"""").substringBeforeLast(",") + val extractedUrl = + unpacjed?.let { Regex("""sources:((.|\n)*?)image""").find(it) }?.groups?.get(1)?.value.toString() + .replace("file", """"file"""").replace("label", """"label"""") + .substringBeforeLast(",") val parsedlinks = parseJson>(extractedUrl) parsedlinks.forEach { data -> - if (data.label.isNullOrBlank()){ // mp4 links (with labels) are slow. Use only m3u8 link. + if (data.label.isNullOrBlank()) { // mp4 links (with labels) are slow. Use only m3u8 link. M3u8Helper.generateM3u8( name, data.id, @@ -34,8 +37,6 @@ data class Files( } } } - - return extractedLinksList } } \ No newline at end of file diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt index 1eb384c4..09e47d03 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt @@ -6,7 +6,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper -class UpstreamExtractor : ExtractorApi() { +open class UpstreamExtractor : ExtractorApi() { override val name: String = "Upstream" override val mainUrl: String = "https://upstream.to" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/VideoVard.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/VideoVard.kt index 41e77967..30a1d8fe 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/VideoVard.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/VideoVard.kt @@ -11,7 +11,7 @@ class VideovardSX : WcoStream() { override var mainUrl = "https://videovard.sx" } -class VideoVard : ExtractorApi() { +open class VideoVard : ExtractorApi() { override var name = "Videovard" // Cause works for animekisa and wco override var mainUrl = "https://videovard.to" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/WcoStream.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/WcoStream.kt index d99485ea..6cc486cd 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/WcoStream.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/WcoStream.kt @@ -53,6 +53,12 @@ class VizcloudSite : WcoStream() { override var mainUrl = "https://vizcloud.site" } +class Mcloud : WcoStream() { + override var name = "Mcloud" + override var mainUrl = "https://mcloud.to" + override val requiresReferer = true +} + open class WcoStream : ExtractorApi() { override var name = "VidStream" // Cause works for animekisa and wco override var mainUrl = "https://vidstream.pro" diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/YourUpload.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/YourUpload.kt index 3c564f67..c7aa989d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/YourUpload.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/YourUpload.kt @@ -7,7 +7,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getQualityFromName -class YourUpload: ExtractorApi() { +open class YourUpload: ExtractorApi() { override val name = "Yourupload" override val mainUrl = "https://www.yourupload.com" override val requiresReferer = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/extractors/Zorofile.kt b/app/src/main/java/com/lagradost/cloudstream3/extractors/Zorofile.kt index 84785b6c..43c4eefb 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/extractors/Zorofile.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/extractors/Zorofile.kt @@ -10,7 +10,7 @@ import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper -class Zorofile : ExtractorApi() { +open class Zorofile : ExtractorApi() { override val name = "Zorofile" override val mainUrl = "https://zorofile.com" override val requiresReferer = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt index 1a1afb68..24708e99 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -205,6 +205,8 @@ val extractorApis: MutableList = arrayListOf( VideovardSX(), Mp4Upload(), StreamTape(), + StreamTapeNet(), + ShaveTape(), //mixdrop extractors MixDropBz(),