cloudstream-extensions-mult.../CineBlog01Provider/src/main/kotlin/com/lagradost/CineBlogProvider.kt

111 lines
4.0 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.lagradost
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.loadExtractor
class CineBlog01Provider : MainAPI() {
override var lang = "it"
override var mainUrl = "https://www.cineblog01.legal"
override var name = "CineBlog01"
override val hasMainPage = true
override val hasChromecastSupport = true
override var sequentialMainPage = true
override val supportedTypes = setOf(
TvType.Movie,
)
override val mainPage = mainPageOf(
Pair("$mainUrl/page/", "Film Popolari"),
Pair("$mainUrl/film-sub-ita/page/", "Film Sub-ita")
)
override suspend fun getMainPage(
page: Int,
request: MainPageRequest
): HomePageResponse {
val url = request.data + page
val soup = app.get(url).document
val home = soup.select("div.filmbox").map { series ->
val title = series.selectFirst("img")!!.attr("alt")
val link = series.selectFirst("a")!!.attr("href")
val posterUrl = fixUrl(series.selectFirst("img")!!.attr("src"))
val quality = Regex("\\[([^\\]]*)]").find(series.selectFirst("h1")!!.text())?.groupValues?.get(1)
val year = Regex("\\(([^)]*)\\)").find(series.selectFirst("h1")!!.text())?.groupValues?.get(1)?.toIntOrNull()
newMovieSearchResponse(
title,
link,
TvType.TvSeries
) {
this.posterUrl = posterUrl
this.quality = getQualityFromString(quality)
this.year = year
}
}
return newHomePageResponse(request.name, home)
}
override suspend fun search(query: String): List<SearchResponse> {
val doc = app.post(
"$mainUrl/index.php?do=search", data = mapOf(
"do" to "search",
"subaction" to "search",
"story" to query
)
).document
return doc.select("div.filmbox").map { series ->
val title = series.selectFirst("img")!!.attr("alt")
val link = series.selectFirst("a")!!.attr("href")
val posterUrl = fixUrl(series.selectFirst("img")!!.attr("src"))
var quality = Regex("\\[([^\\]]*)]").find(series.selectFirst("h1")!!.text())?.groupValues?.get(1)
var year = Regex("\\(([^)]*)\\)").find(series.selectFirst("h1")!!.text())?.groupValues?.get(1)?.toIntOrNull()
newMovieSearchResponse(
title,
link,
TvType.TvSeries
) {
this.posterUrl = posterUrl
this.quality = getQualityFromString(quality)
this.year = year
}
}
}
override suspend fun load(url: String): LoadResponse {
val document = app.get(url).document
val title = document.selectFirst("div.imgrow > img")!!.attr("alt")
val description = document.selectFirst("div.fstory")?.text()?.removeSuffix(" +Info »")?.substringAfter(" - ")
var year = document.selectFirst("div.filmboxfull")?.getElementsByAttributeValueContaining("href" , "/anno/")?.text()?.toIntOrNull()
val poster = fixUrl(document.selectFirst("div.imgrow > img")!!.attr("src"))
val dataUrl = document.select("ul.mirrors-list__list > li").map {
it.select("a").attr("href")
}.drop(1).joinToString (",")
return newMovieLoadResponse(
title,
url,
TvType.Movie,
dataUrl = dataUrl
) {
this.plot = description
this.year = year
this.posterUrl = poster
}
}
override suspend fun loadLinks(
data: String,
isCasting: Boolean,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
): Boolean {
val links = data.split(",")
links.map { url ->
loadExtractor(fixUrl(url), fixUrl(url), subtitleCallback, callback)
}
return true
}
}