mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Extractor: fix Gofile and added Userscloud (#523)
* Extractor: added Pixeldrain, Wibufile and fix some extractors * Extractor: added Moviesapi and fix some extractors * Extractor: fix Gofile and added Userscloud --------- Co-authored-by: Sofie99 <Sofie99@gmail.com>
This commit is contained in:
parent
363ffa26de
commit
a8ed8773de
3 changed files with 50 additions and 1 deletions
|
@ -21,7 +21,10 @@ open class Gofile : ExtractorApi() {
|
||||||
) {
|
) {
|
||||||
val id = Regex("/(?:\\?c=|d/)([\\da-zA-Z]+)").find(url)?.groupValues?.get(1)
|
val id = Regex("/(?:\\?c=|d/)([\\da-zA-Z]+)").find(url)?.groupValues?.get(1)
|
||||||
val token = app.get("$mainApi/createAccount").parsedSafe<Account>()?.data?.get("token")
|
val token = app.get("$mainApi/createAccount").parsedSafe<Account>()?.data?.get("token")
|
||||||
app.get("$mainApi/getContent?contentId=$id&token=$token&websiteToken=12345")
|
val websiteToken = app.get("$mainUrl/dist/js/alljs.js").text.let {
|
||||||
|
Regex("websiteToken\\s*=\\s*\"([^\"]+)").find(it)?.groupValues?.get(1)
|
||||||
|
}
|
||||||
|
app.get("$mainApi/getContent?contentId=$id&token=$token&websiteToken=$websiteToken")
|
||||||
.parsedSafe<Source>()?.data?.contents?.forEach {
|
.parsedSafe<Source>()?.data?.contents?.forEach {
|
||||||
callback.invoke(
|
callback.invoke(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
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
|
||||||
|
|
||||||
|
open class Userscloud : ExtractorApi() {
|
||||||
|
override val name = "Userscloud"
|
||||||
|
override val mainUrl = "https://userscloud.com"
|
||||||
|
override val requiresReferer = false
|
||||||
|
|
||||||
|
override suspend fun getUrl(
|
||||||
|
url: String,
|
||||||
|
referer: String?,
|
||||||
|
subtitleCallback: (SubtitleFile) -> Unit,
|
||||||
|
callback: (ExtractorLink) -> Unit
|
||||||
|
) {
|
||||||
|
val res = app.get(url).document
|
||||||
|
val video = res.selectFirst("video#vjsplayer source")?.attr("src")
|
||||||
|
val quality = res.selectFirst("div.innerTB h2 b")?.text()
|
||||||
|
callback.invoke(
|
||||||
|
ExtractorLink(
|
||||||
|
this.name,
|
||||||
|
this.name,
|
||||||
|
video ?: return,
|
||||||
|
"$mainUrl/",
|
||||||
|
getQuality(quality),
|
||||||
|
headers = mapOf(
|
||||||
|
"Accept" to "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5",
|
||||||
|
"Range" to "bytes=0-",
|
||||||
|
"Sec-Fetch-Dest" to "video",
|
||||||
|
"Sec-Fetch-Mode" to "no-cors",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getQuality(str: String?): Int {
|
||||||
|
return Regex("(\\d{3,4})[pP]").find(str ?: "")?.groupValues?.getOrNull(1)?.toIntOrNull()
|
||||||
|
?: Qualities.Unknown.value
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -370,6 +370,7 @@ val extractorApis: MutableList<ExtractorApi> = arrayListOf(
|
||||||
Gofile(),
|
Gofile(),
|
||||||
Vicloud(),
|
Vicloud(),
|
||||||
Uservideo(),
|
Uservideo(),
|
||||||
|
Userscloud(),
|
||||||
|
|
||||||
Movhide(),
|
Movhide(),
|
||||||
StreamhideCom(),
|
StreamhideCom(),
|
||||||
|
|
Loading…
Reference in a new issue