Extractor: added Pixeldrain, Wibufile and fix some extractors (#502)

Co-authored-by: Sofie99 <Sofie99@gmail.com>
This commit is contained in:
Sofie 2023-07-10 06:52:03 +07:00 committed by GitHub
parent 51c1089162
commit 847957362f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 124 additions and 2 deletions

View file

@ -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"
} }

View file

@ -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())

View file

@ -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,
)
)
}
}

View file

@ -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"
} }

View file

@ -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")
)
)
}
}

View file

@ -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(),