fix cloudflare for faselhd
This commit is contained in:
parent
212cf30cdb
commit
31103c783c
2 changed files with 13 additions and 14 deletions
|
@ -1,4 +1,4 @@
|
|||
version = 5
|
||||
version = 6
|
||||
|
||||
cloudstream {
|
||||
description = ""
|
||||
|
|
|
@ -13,10 +13,12 @@ import org.jsoup.nodes.Element
|
|||
class FaselHD : MainAPI() {
|
||||
override var lang = "ar"
|
||||
override var mainUrl = "https://faselhd.io"
|
||||
private val alternativeUrl = "https://www.faselhd.club"
|
||||
override var name = "FaselHD"
|
||||
override val usesWebView = false
|
||||
override val hasMainPage = true
|
||||
override val supportedTypes = setOf(TvType.TvSeries, TvType.Movie, TvType.AsianDrama, TvType.Anime)
|
||||
private val cfKiller = CloudflareKiller()
|
||||
|
||||
private fun String.getIntFromText(): Int? {
|
||||
return Regex("""\d+""").find(this)?.groupValues?.firstOrNull()?.toIntOrNull()
|
||||
|
@ -37,7 +39,8 @@ class FaselHD : MainAPI() {
|
|||
posterUrl,
|
||||
null,
|
||||
null,
|
||||
quality = getQualityFromString(quality)
|
||||
quality = getQualityFromString(quality),
|
||||
posterHeaders = cfKiller.getCookieHeaders(alternativeUrl).toMap()
|
||||
)
|
||||
}
|
||||
override val mainPage = mainPageOf(
|
||||
|
@ -49,10 +52,8 @@ class FaselHD : MainAPI() {
|
|||
override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse {
|
||||
var doc = app.get(request.data + page).document
|
||||
if(doc.select("title").text() == "Just a moment...") {
|
||||
println("Found Cloudflare.")
|
||||
doc = app.get(request.data + page, interceptor = CloudflareKiller()).document
|
||||
doc = app.get(request.data.replace(mainUrl, alternativeUrl) + page, interceptor = cfKiller, timeout = 120).document
|
||||
}
|
||||
println("HTML: "+doc.html())
|
||||
val list = doc.select("div[id=\"postList\"] div[class=\"col-xl-2 col-lg-2 col-md-3 col-sm-3\"]")
|
||||
.mapNotNull { element ->
|
||||
element.toSearchResponse()
|
||||
|
@ -64,8 +65,7 @@ class FaselHD : MainAPI() {
|
|||
val q = query.replace(" ","+")
|
||||
var d = app.get("$mainUrl/?s=$q").document
|
||||
if(d.select("title").text() == "Just a moment...") {
|
||||
println("Found Cloudflare.")
|
||||
d = app.get("$mainUrl/?s=$q", interceptor = CloudflareKiller()).document
|
||||
d = app.get("$alternativeUrl/?s=$q", interceptor = cfKiller, timeout = 120).document
|
||||
}
|
||||
return d.select("div[id=\"postList\"] div[class=\"col-xl-2 col-lg-2 col-md-3 col-sm-3\"]")
|
||||
.mapNotNull {
|
||||
|
@ -77,8 +77,7 @@ class FaselHD : MainAPI() {
|
|||
override suspend fun load(url: String): LoadResponse {
|
||||
var doc = app.get(url).document
|
||||
if(doc.select("title").text() == "Just a moment...") {
|
||||
println("Found Cloudflare.")
|
||||
doc = app.get(url, interceptor = CloudflareKiller()).document
|
||||
doc = app.get(url, interceptor = cfKiller, timeout = 120).document
|
||||
}
|
||||
val isMovie = doc.select("div.epAll").isEmpty()
|
||||
val posterUrl = doc.select("div.posterImg img").attr("src")
|
||||
|
@ -116,6 +115,7 @@ class FaselHD : MainAPI() {
|
|||
this.duration = duration
|
||||
this.tags = tags
|
||||
this.recommendations = recommendations
|
||||
this.posterHeaders = cfKiller.getCookieHeaders(alternativeUrl).toMap()
|
||||
}
|
||||
} else {
|
||||
val episodes = ArrayList<Episode>()
|
||||
|
@ -133,8 +133,7 @@ class FaselHD : MainAPI() {
|
|||
.not(".active").apmap { it ->
|
||||
var s = app.get("$mainUrl/?p="+it.attr("data-href")).document
|
||||
if(s.select("title").text() == "Just a moment...") {
|
||||
println("Found Cloudflare.")
|
||||
s = app.get("$mainUrl/?p="+it.attr("data-href"), interceptor = CloudflareKiller()).document
|
||||
s = app.get("$alternativeUrl/?p="+it.attr("data-href"), interceptor = cfKiller).document
|
||||
}
|
||||
s.select("div.epAll a").map {
|
||||
episodes.add(
|
||||
|
@ -154,6 +153,7 @@ class FaselHD : MainAPI() {
|
|||
this.plot = synopsis
|
||||
this.tags = tags
|
||||
this.recommendations = recommendations
|
||||
this.posterHeaders = cfKiller.getCookieHeaders(alternativeUrl).toMap()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -166,15 +166,14 @@ class FaselHD : MainAPI() {
|
|||
): Boolean {
|
||||
var doc = app.get(data).document
|
||||
if(doc.select("title").text() == "Just a moment...") {
|
||||
println("Found Cloudflare.")
|
||||
doc = app.get(data, interceptor = CloudflareKiller()).document
|
||||
doc = app.get(data, interceptor = cfKiller).document
|
||||
}
|
||||
listOf(
|
||||
doc.select(".downloadLinks a").attr("href") to "download",
|
||||
doc.select("iframe[name=\"player_iframe\"]").attr("src") to "iframe"
|
||||
).apmap { (url, method) ->
|
||||
if(method == "download") {
|
||||
val player = app.post(url, interceptor = CloudflareKiller(), referer = mainUrl).document
|
||||
val player = app.post(url, interceptor = cfKiller, referer = mainUrl, timeout = 120).document
|
||||
callback.invoke(
|
||||
ExtractorLink(
|
||||
this.name,
|
||||
|
|
Loading…
Reference in a new issue