mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Extractor: added Pixeldrain, Wibufile and fix some extractors (#502)
Co-authored-by: Sofie99 <Sofie99@gmail.com>
This commit is contained in:
parent
51c1089162
commit
847957362f
6 changed files with 124 additions and 2 deletions
|
@ -7,6 +7,10 @@ import com.lagradost.cloudstream3.utils.Qualities
|
||||||
import com.lagradost.cloudstream3.utils.getQualityFromName
|
import com.lagradost.cloudstream3.utils.getQualityFromName
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
|
class Dooood : DoodLaExtractor() {
|
||||||
|
override var mainUrl = "https://dooood.com"
|
||||||
|
}
|
||||||
|
|
||||||
class DoodWfExtractor : DoodLaExtractor() {
|
class DoodWfExtractor : DoodLaExtractor() {
|
||||||
override var mainUrl = "https://dood.wf"
|
override var mainUrl = "https://dood.wf"
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,16 @@ import com.lagradost.cloudstream3.app
|
||||||
import com.lagradost.cloudstream3.utils.*
|
import com.lagradost.cloudstream3.utils.*
|
||||||
import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8
|
import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8
|
||||||
|
|
||||||
|
class Guccihide : Filesim() {
|
||||||
|
override val name = "Guccihide"
|
||||||
|
override var mainUrl = "https://guccihide.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Ahvsh : Filesim() {
|
||||||
|
override val name = "Ahvsh"
|
||||||
|
override var mainUrl = "https://ahvsh.com"
|
||||||
|
}
|
||||||
|
|
||||||
class Moviesm4u : Filesim() {
|
class Moviesm4u : Filesim() {
|
||||||
override val mainUrl = "https://moviesm4u.com"
|
override val mainUrl = "https://moviesm4u.com"
|
||||||
override val name = "Moviesm4u"
|
override val name = "Moviesm4u"
|
||||||
|
@ -15,6 +25,11 @@ class FileMoonIn : Filesim() {
|
||||||
override val name = "FileMoon"
|
override val name = "FileMoon"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class StreamhideTo : Filesim() {
|
||||||
|
override val mainUrl = "https://streamhide.to"
|
||||||
|
override val name = "Streamhide"
|
||||||
|
}
|
||||||
|
|
||||||
class StreamhideCom : Filesim() {
|
class StreamhideCom : Filesim() {
|
||||||
override var name: String = "Streamhide"
|
override var name: String = "Streamhide"
|
||||||
override var mainUrl: String = "https://streamhide.com"
|
override var mainUrl: String = "https://streamhide.com"
|
||||||
|
@ -42,7 +57,7 @@ class FileMoonSx : Filesim() {
|
||||||
open class Filesim : ExtractorApi() {
|
open class Filesim : ExtractorApi() {
|
||||||
override val name = "Filesim"
|
override val name = "Filesim"
|
||||||
override val mainUrl = "https://files.im"
|
override val mainUrl = "https://files.im"
|
||||||
override val requiresReferer = false
|
override val requiresReferer = true
|
||||||
|
|
||||||
override suspend fun getUrl(
|
override suspend fun getUrl(
|
||||||
url: String,
|
url: String,
|
||||||
|
@ -50,7 +65,7 @@ open class Filesim : ExtractorApi() {
|
||||||
subtitleCallback: (SubtitleFile) -> Unit,
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
callback: (ExtractorLink) -> Unit
|
callback: (ExtractorLink) -> Unit
|
||||||
) {
|
) {
|
||||||
val response = app.get(url, referer = mainUrl).document
|
val response = app.get(url, referer = referer).document
|
||||||
response.select("script[type=text/javascript]").map { script ->
|
response.select("script[type=text/javascript]").map { script ->
|
||||||
if (script.data().contains(Regex("eval\\(function\\(p,a,c,k,e,[rd]"))) {
|
if (script.data().contains(Regex("eval\\(function\\(p,a,c,k,e,[rd]"))) {
|
||||||
val unpackedscript = getAndUnpack(script.data())
|
val unpackedscript = getAndUnpack(script.data())
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.lagradost.cloudstream3.extractors
|
||||||
|
|
||||||
|
import com.lagradost.cloudstream3.SubtitleFile
|
||||||
|
import com.lagradost.cloudstream3.utils.ExtractorApi
|
||||||
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
|
import com.lagradost.cloudstream3.utils.Qualities
|
||||||
|
|
||||||
|
open class Pixeldrain : ExtractorApi() {
|
||||||
|
override val name = "Pixeldrain"
|
||||||
|
override val mainUrl = "https://pixeldrain.com"
|
||||||
|
override val requiresReferer = false
|
||||||
|
override suspend fun getUrl(
|
||||||
|
url: String,
|
||||||
|
referer: String?,
|
||||||
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
|
callback: (ExtractorLink) -> Unit
|
||||||
|
) {
|
||||||
|
val mId = Regex("/([ul]/[\\da-zA-Z\\-]+)").find(url)?.groupValues?.get(1)?.split("/")
|
||||||
|
callback.invoke(
|
||||||
|
ExtractorLink(
|
||||||
|
this.name,
|
||||||
|
this.name,
|
||||||
|
"$mainUrl/api/file/${mId?.last() ?: return}?download",
|
||||||
|
url,
|
||||||
|
Qualities.Unknown.value,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -8,6 +8,31 @@ import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
import com.lagradost.cloudstream3.utils.M3u8Helper
|
import com.lagradost.cloudstream3.utils.M3u8Helper
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
|
class Sblona : StreamSB() {
|
||||||
|
override var name = "Sblona"
|
||||||
|
override var mainUrl = "https://sblona.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Lvturbo : StreamSB() {
|
||||||
|
override var name = "Lvturbo"
|
||||||
|
override var mainUrl = "https://lvturbo.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Sbrapid : StreamSB() {
|
||||||
|
override var name = "Sbrapid"
|
||||||
|
override var mainUrl = "https://sbrapid.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Sbface : StreamSB() {
|
||||||
|
override var name = "Sbface"
|
||||||
|
override var mainUrl = "https://sbface.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
class Sbsonic : StreamSB() {
|
||||||
|
override var name = "Sbsonic"
|
||||||
|
override var mainUrl = "https://sbsonic.com"
|
||||||
|
}
|
||||||
|
|
||||||
class Vidgomunimesb : StreamSB() {
|
class Vidgomunimesb : StreamSB() {
|
||||||
override var mainUrl = "https://vidgomunimesb.xyz"
|
override var mainUrl = "https://vidgomunimesb.xyz"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.lagradost.cloudstream3.extractors
|
||||||
|
|
||||||
|
import com.lagradost.cloudstream3.SubtitleFile
|
||||||
|
import com.lagradost.cloudstream3.app
|
||||||
|
import com.lagradost.cloudstream3.utils.ExtractorApi
|
||||||
|
import com.lagradost.cloudstream3.utils.ExtractorLink
|
||||||
|
import com.lagradost.cloudstream3.utils.Qualities
|
||||||
|
import java.net.URI
|
||||||
|
|
||||||
|
open class Wibufile : ExtractorApi() {
|
||||||
|
override val name: String = "Wibufile"
|
||||||
|
override val mainUrl: String = "https://wibufile.com"
|
||||||
|
override val requiresReferer = false
|
||||||
|
|
||||||
|
override suspend fun getUrl(
|
||||||
|
url: String,
|
||||||
|
referer: String?,
|
||||||
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
|
callback: (ExtractorLink) -> Unit
|
||||||
|
) {
|
||||||
|
val res = app.get(url).text
|
||||||
|
val video = Regex("src: ['\"](.*?)['\"]").find(res)?.groupValues?.get(1)
|
||||||
|
|
||||||
|
callback.invoke(
|
||||||
|
ExtractorLink(
|
||||||
|
name,
|
||||||
|
name,
|
||||||
|
video ?: return,
|
||||||
|
"$mainUrl/",
|
||||||
|
Qualities.Unknown.value,
|
||||||
|
URI(url).path.endsWith(".m3u8")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -244,6 +244,7 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
|
||||||
XStreamCdn(),
|
XStreamCdn(),
|
||||||
|
|
||||||
StreamSB(),
|
StreamSB(),
|
||||||
|
Sblona(),
|
||||||
Vidgomunimesb(),
|
Vidgomunimesb(),
|
||||||
StreamSB1(),
|
StreamSB1(),
|
||||||
StreamSB2(),
|
StreamSB2(),
|
||||||
|
@ -265,6 +266,10 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
|
||||||
Sbflix(),
|
Sbflix(),
|
||||||
Streamsss(),
|
Streamsss(),
|
||||||
Sbspeed(),
|
Sbspeed(),
|
||||||
|
Sbsonic(),
|
||||||
|
Sbface(),
|
||||||
|
Sbrapid(),
|
||||||
|
Lvturbo(),
|
||||||
|
|
||||||
Fastream(),
|
Fastream(),
|
||||||
|
|
||||||
|
@ -300,6 +305,7 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
|
||||||
DoodToExtractor(),
|
DoodToExtractor(),
|
||||||
DoodSoExtractor(),
|
DoodSoExtractor(),
|
||||||
DoodLaExtractor(),
|
DoodLaExtractor(),
|
||||||
|
Dooood(),
|
||||||
DoodWsExtractor(),
|
DoodWsExtractor(),
|
||||||
DoodShExtractor(),
|
DoodShExtractor(),
|
||||||
DoodWatchExtractor(),
|
DoodWatchExtractor(),
|
||||||
|
@ -366,9 +372,14 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
|
||||||
|
|
||||||
Movhide(),
|
Movhide(),
|
||||||
StreamhideCom(),
|
StreamhideCom(),
|
||||||
|
StreamhideTo(),
|
||||||
|
Pixeldrain(),
|
||||||
|
Wibufile(),
|
||||||
FileMoonIn(),
|
FileMoonIn(),
|
||||||
Moviesm4u(),
|
Moviesm4u(),
|
||||||
Filesim(),
|
Filesim(),
|
||||||
|
Ahvsh(),
|
||||||
|
Guccihide(),
|
||||||
FileMoon(),
|
FileMoon(),
|
||||||
FileMoonSx(),
|
FileMoonSx(),
|
||||||
Vido(),
|
Vido(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue