mirror of
https://github.com/recloudstream/cloudstream-extensions-multilingual.git
synced 2024-08-15 03:15:14 +00:00
finally fixed mesfilms after 30 days lol
This commit is contained in:
parent
d3acd05c2c
commit
019b45bf79
2 changed files with 12 additions and 19 deletions
|
@ -18,7 +18,6 @@ cloudstream {
|
||||||
* */
|
* */
|
||||||
status = 1 // will be 3 if unspecified
|
status = 1 // will be 3 if unspecified
|
||||||
tvTypes = listOf(
|
tvTypes = listOf(
|
||||||
"AnimeMovie",
|
|
||||||
"Movie",
|
"Movie",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -30,11 +30,7 @@ class MesFilmsProvider : MainAPI() {
|
||||||
**/
|
**/
|
||||||
override suspend fun search(query: String): List<SearchResponse> {
|
override suspend fun search(query: String): List<SearchResponse> {
|
||||||
val link = "$mainUrl/?s=$query"
|
val link = "$mainUrl/?s=$query"
|
||||||
// L'url pour chercher un film de james bond sera donc: 'https://mesfilms.lol/?s=james bond'
|
val document = app.get(link).document // on convertit le html en un document
|
||||||
// le $ dans une string permet d'insérer une variable
|
|
||||||
val html = app.get(link).text // app.get() permet de télécharger la page html avec une requete HTTP (get)
|
|
||||||
// on peut utiliser également app.post()
|
|
||||||
val document = Jsoup.parse(html) // on convertit le html en un document
|
|
||||||
return document.select("div.search-page > div.result-item > article") // on séléctione tous les éléments 'enfant' du type articles
|
return document.select("div.search-page > div.result-item > article") // on séléctione tous les éléments 'enfant' du type articles
|
||||||
.filter { article -> // on filtre la liste obtenue de tous les articles
|
.filter { article -> // on filtre la liste obtenue de tous les articles
|
||||||
val type = article?.selectFirst("> div.image > div.thumbnail > a > span")?.text()
|
val type = article?.selectFirst("> div.image > div.thumbnail > a > span")?.text()
|
||||||
|
@ -104,9 +100,8 @@ class MesFilmsProvider : MainAPI() {
|
||||||
)
|
)
|
||||||
|
|
||||||
override suspend fun load(url: String): LoadResponse {
|
override suspend fun load(url: String): LoadResponse {
|
||||||
val html = app.get(url).text // récupere le texte sur la page (requète http)
|
|
||||||
// url est le lien retourné par la fonction search (la variable href) ou la fonction getMainPage
|
// url est le lien retourné par la fonction search (la variable href) ou la fonction getMainPage
|
||||||
val document = Jsoup.parse(html) // convertit en document
|
val document = app.get(url).document // convertit en document
|
||||||
|
|
||||||
val meta = document.selectFirst("div.sheader")
|
val meta = document.selectFirst("div.sheader")
|
||||||
val poster = meta?.select("div.poster > img")?.attr("data-src") // récupere le texte de l'attribut 'data-src'
|
val poster = meta?.select("div.poster > img")?.attr("data-src") // récupere le texte de l'attribut 'data-src'
|
||||||
|
@ -118,13 +113,14 @@ class MesFilmsProvider : MainAPI() {
|
||||||
|
|
||||||
val description = extra.select("span.tagline").first()?.text() // first() selectione le premier élément de la liste
|
val description = extra.select("span.tagline").first()?.text() // first() selectione le premier élément de la liste
|
||||||
|
|
||||||
val ratingValue = data.select("div.dt_rating_data > div.starstruck-rating > span.dt_rating_vgs").first()?.text()
|
val rating = data.select("div.dt_rating_data > div.starstruck-rating > span.dt_rating_vgs").first()?.text()?.let {
|
||||||
|
if (it == "0.0" || it.isNullOrBlank()) {
|
||||||
val rating = if (ratingValue == "0.0" || ratingValue.isNullOrEmpty()) { // || correspond à un 'or' en python
|
null
|
||||||
null // if empty or null, hide the rating
|
} else {
|
||||||
} else {
|
it
|
||||||
ratingValue
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val date = extra.select("span.date").first()?.text()?.takeLast(4) // prends les 4 dernier chiffres
|
val date = extra.select("span.date").first()?.text()?.takeLast(4) // prends les 4 dernier chiffres
|
||||||
|
|
||||||
val tags = data.select("div.sgeneros > a").apmap {it.text()} // séléctione tous les tags et les ajoutes à une liste
|
val tags = data.select("div.sgeneros > a").apmap {it.text()} // séléctione tous les tags et les ajoutes à une liste
|
||||||
|
@ -172,8 +168,7 @@ class MesFilmsProvider : MainAPI() {
|
||||||
callback: (ExtractorLink) -> Unit,
|
callback: (ExtractorLink) -> Unit,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val parsedInfo = tryParseJson<EpisodeData>(data)
|
val parsedInfo = tryParseJson<EpisodeData>(data)
|
||||||
val html = app.get(data).text
|
val document = app.get(data).document
|
||||||
val document = Jsoup.parse(html)
|
|
||||||
|
|
||||||
document.select("ul#playeroptionsul > li:not(#player-option-trailer)").apmap { li -> // séléctione tous les players sauf celui avec l'id player-option-trailer
|
document.select("ul#playeroptionsul > li:not(#player-option-trailer)").apmap { li -> // séléctione tous les players sauf celui avec l'id player-option-trailer
|
||||||
// https://jsoup.org/cookbook/extracting-data/selector-syntax
|
// https://jsoup.org/cookbook/extracting-data/selector-syntax
|
||||||
|
@ -216,8 +211,7 @@ class MesFilmsProvider : MainAPI() {
|
||||||
page: Int,
|
page: Int,
|
||||||
request : MainPageRequest
|
request : MainPageRequest
|
||||||
): HomePageResponse {
|
): HomePageResponse {
|
||||||
val html = app.get("$mainUrl/tendance/?get=movies").text
|
val document = app.get("$mainUrl/tendance/?get=movies").document
|
||||||
val document = Jsoup.parse(html)
|
|
||||||
val movies = document.select("div.items > article.movies")
|
val movies = document.select("div.items > article.movies")
|
||||||
val categoryTitle = document.select("div.content > header > h1").text().replaceFirstChar { it.uppercase() }
|
val categoryTitle = document.select("div.content > header > h1").text().replaceFirstChar { it.uppercase() }
|
||||||
val returnList = movies.mapNotNull { article ->
|
val returnList = movies.mapNotNull { article ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue