mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Fixes on Bflix and Wco (#748)
This commit is contained in:
parent
a2f92d8a26
commit
58bed05a32
3 changed files with 20 additions and 11 deletions
|
@ -14,6 +14,9 @@ class Vizcloud : WcoStream() {
|
|||
override val mainUrl: String = "https://vizcloud2.ru"
|
||||
}
|
||||
|
||||
class Vizcloud2 : WcoStream() {
|
||||
override val mainUrl: String = "https://vizcloud2.online"
|
||||
}
|
||||
|
||||
open class WcoStream : ExtractorApi() {
|
||||
override val name = "VidStream" //Cause works for animekisa and wco
|
||||
|
@ -87,9 +90,10 @@ open class WcoStream : ExtractorApi() {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (mainUrl == "https://vidstream.pro" || mainUrl == "https://vidstreamz.online") {
|
||||
if (mainUrl == "https://vidstream.pro" || mainUrl == "https://vidstreamz.online" || mainUrl == "https://vizcloud2.online") {
|
||||
if (it.file.contains("m3u8")) {
|
||||
hlsHelper.m3u8Generation(M3u8Helper.M3u8Stream(it.file, null), true)
|
||||
hlsHelper.m3u8Generation(M3u8Helper.M3u8Stream(it.file.replace("#.mp4",""), null,
|
||||
headers = mapOf("Referer" to url)), true)
|
||||
.forEach { stream ->
|
||||
val qualityString =
|
||||
if ((stream.quality ?: 0) == 0) "" else "${stream.quality}p"
|
||||
|
@ -98,9 +102,9 @@ open class WcoStream : ExtractorApi() {
|
|||
name,
|
||||
"$name $qualityString",
|
||||
stream.streamUrl,
|
||||
"",
|
||||
url,
|
||||
getQualityFromName(stream.quality.toString()),
|
||||
true
|
||||
true,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
|
@ -199,8 +199,6 @@ class BflixProvider(providerUrl: String, providerName: String) : MainAPI() {
|
|||
val soup = app.get(url).document
|
||||
val movieid = soup.selectFirst("div#watch").attr("data-id")
|
||||
val movieidencoded = encode(getVrf(movieid) ?: return null)
|
||||
val tvType = if (url.contains("/movie/")) TvType.Movie else TvType.TvSeries
|
||||
|
||||
val title = soup.selectFirst("div.info h1").text()
|
||||
val description = soup.selectFirst(".info .desc")?.text()?.trim()
|
||||
val poster: String? = try {
|
||||
|
@ -210,7 +208,7 @@ class BflixProvider(providerUrl: String, providerName: String) : MainAPI() {
|
|||
}
|
||||
|
||||
val tags = soup.select("div.info .meta div:contains(Genre) a").map { it.text() }
|
||||
val episodes = if (tvType == TvType.TvSeries) Jsoup.parse(
|
||||
val episodes = Jsoup.parse(
|
||||
app.get(
|
||||
"$mainUrl/ajax/film/servers?id=$movieid&vrf=$movieidencoded"
|
||||
).mapped<Response>().html
|
||||
|
@ -225,13 +223,16 @@ class BflixProvider(providerUrl: String, providerName: String) : MainAPI() {
|
|||
val season = if (isValid) extraData?.getOrNull(0) else null
|
||||
|
||||
val eptitle = it.selectFirst(".episode a span.name").text()
|
||||
val secondtitle = it.selectFirst(".episode a span").text()
|
||||
.replace(Regex("(Episode (\\d+):|Episode (\\d+)-|Episode (\\d+))"),"") ?: ""
|
||||
TvSeriesEpisode(
|
||||
eptitle,
|
||||
secondtitle+eptitle,
|
||||
season,
|
||||
episode,
|
||||
href,
|
||||
)
|
||||
} else null
|
||||
}
|
||||
val tvType = if (url.contains("/movie/") && episodes.size == 1) TvType.Movie else TvType.TvSeries
|
||||
val recommendations =
|
||||
soup.select("div.bl-2 section.bl div.content div.filmlist div.item")
|
||||
?.mapNotNull { element ->
|
||||
|
@ -263,7 +264,7 @@ class BflixProvider(providerUrl: String, providerName: String) : MainAPI() {
|
|||
url,
|
||||
this.name,
|
||||
tvType,
|
||||
episodes!!,
|
||||
episodes,
|
||||
poster,
|
||||
year?.toIntOrNull(),
|
||||
description,
|
||||
|
@ -332,8 +333,11 @@ class BflixProvider(providerUrl: String, providerName: String) : MainAPI() {
|
|||
).html
|
||||
)
|
||||
.select("html body #episodes").map {
|
||||
val tvType = if (data.contains("movie/")) TvType.Movie else TvType.TvSeries
|
||||
val cleandata = data.replace(mainUrl, "")
|
||||
val a = it.select("a").map {
|
||||
it.attr("data-kname")
|
||||
}
|
||||
val tvType = if (data.contains("movie/") && a.size == 1) TvType.Movie else TvType.TvSeries
|
||||
val servers = if (tvType == TvType.Movie) it.select(".episode a").attr("data-ep")
|
||||
else
|
||||
it.select(".episode a[href=$cleandata]").attr("data-ep")
|
||||
|
|
|
@ -96,6 +96,7 @@ val extractorApis: Array<ExtractorApi> = arrayOf(
|
|||
WcoStream(),
|
||||
Vidstreamz(),
|
||||
Vizcloud(),
|
||||
Vizcloud2(),
|
||||
Mp4Upload(),
|
||||
StreamTape(),
|
||||
MixDrop(),
|
||||
|
|
Loading…
Reference in a new issue