Better code and fully fix Eurostreaming + verbump (#59)

Co-authored-by: Cloudburst <18114966+C10udburst@users.noreply.github.com>
This commit is contained in:
LikDev-256 2022-11-29 15:44:42 +05:30 committed by GitHub
parent 8bf7b6d22c
commit 29a1e11e4e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 41 deletions

View file

@ -1,6 +1,5 @@
// use an integer for version numbers
version = 1
version = 2
cloudstream {
language = "it"

View file

@ -5,70 +5,68 @@ import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.loadExtractor
import com.lagradost.cloudstream3.utils.AppUtils.parseJson
import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.network.CloudflareKiller
import okhttp3.FormBody
import org.jsoup.nodes.Element
class EurostreamingProvider : MainAPI() {
override var lang = "it"
override var mainUrl = "https://eurostreaming.social"
override var mainUrl = "https://eurostreaming.taxi"
override var name = "Eurostreaming"
override val hasMainPage = true
override val hasChromecastSupport = true
private val interceptor = CloudflareKiller()
override val supportedTypes = setOf(
TvType.TvSeries
)
override val mainPage = mainPageOf(
Pair("$mainUrl/serie-tv-archive/page/", "Ultime serie Tv"),
Pair("$mainUrl/animazione/page/", "Ultime serie Animazione"),
"$mainUrl/serie-tv-archive/page/" to "Ultime serie Tv",
"$mainUrl/animazione/page/" to "Ultime serie Animazione",
)
override suspend fun getMainPage(page: Int, request: MainPageRequest): HomePageResponse {
val url = request.data + page
val soup = app.get(url).document
val soup = app.get(url, interceptor = interceptor).document
val home = soup.select("div.post-thumb").map {
val title = it.selectFirst("img")!!.attr("alt")
val link = it.selectFirst("a")!!.attr("href")
val image = fixUrl(it.selectFirst("img")!!.attr("src"))
MovieSearchResponse(
title,
link,
this.name,
TvType.Movie,
image
)
it.toSearchResult()
}
return newHomePageResponse(arrayListOf(HomePageList(request.name, home)), hasNext = true)
}
private fun Element.toSearchResult(): SearchResponse {
val title = this.selectFirst("a")?.attr("title")
val link = this.selectFirst("a")?.attr("href")
val image = fixUrlNull(mainUrl + this.selectFirst("img")?.attr("src")?.trim())
return newTvSeriesSearchResponse(title, link, TvType.TvSeries){
this.posterUrl = image
this.posterHeaders = interceptor.getCookieHeaders(mainUrl).toMap()
}
return newHomePageResponse(request.name, home)
}
override suspend fun search(query: String): List<SearchResponse> {
val doc = app.post(
"$mainUrl/index.php", data = mapOf(
"do" to "search",
"subaction" to "search",
"story" to query,
"sortby" to "news_read"
)
).document
return doc.select("div.post-thumb").map {
val title = it.selectFirst("img")!!.attr("alt")
val link = it.selectFirst("a")!!.attr("href")
val image = mainUrl + it.selectFirst("img")!!.attr("src")
val body = FormBody.Builder()
.addEncoded("do", "search")
.addEncoded("subaction", "search")
.addEncoded("story", query)
.addEncoded("sortby", "news_read")
.build()
MovieSearchResponse(
title,
link,
this.name,
TvType.Movie,
image
)
val doc = app.post(
"$mainUrl/index.php",
requestBody = body,
interceptor = interceptor
).document
return doc.select("div.post-thumb").mapNotNull {
it?.toSearchResult()
}
}
override suspend fun load(url: String): LoadResponse {
val page = app.get(url)
val page = app.get(url, interceptor = interceptor)
val document = page.document
val title = document.selectFirst("h2")!!.text().replace("^([1-9+]]$","")
val style = document.selectFirst("div.entry-cover")!!.attr("style")
@ -93,7 +91,8 @@ class EurostreamingProvider : MainAPI() {
}
}
return newTvSeriesLoadResponse(title, url, TvType.TvSeries, episodeList) {
posterUrl = poster
this.posterUrl = poster
this.posterHeaders = interceptor.getCookieHeaders(mainUrl).toMap()
}
}