changes on italian providers Main Pages (#1372)

* changes on italian providers Main Pages

* changes on italian providers Main Pages

* changes on italian providers Main Pages
This commit is contained in:
antonydp 2022-07-31 01:47:15 +02:00 committed by GitHub
parent 9bb60a1677
commit e32f99d8a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 54 additions and 127 deletions

View file

@ -128,10 +128,10 @@
<data android:scheme="https" android:host="hdm.to" android:pathPrefix="/"/> <data android:scheme="https" android:host="hdm.to" android:pathPrefix="/"/>
<data android:scheme="https" android:host="theflix.to" android:pathPrefix="/"/> <data android:scheme="https" android:host="theflix.to" android:pathPrefix="/"/>
<data android:scheme="https" android:host="streamingcommunity.best" android:pathPrefix="/"/> <data android:scheme="https" android:host="streamingcommunity.best" android:pathPrefix="/"/>
<data android:scheme="https" android:host="www.tantifilm.nl" android:pathPrefix="/"/> <data android:scheme="https" android:host="tantifilm.autos" android:pathPrefix="/"/>
<data android:scheme="https" android:host="cb01.rip" android:pathPrefix="/"/> <data android:scheme="https" android:host="cb01.rip" android:pathPrefix="/"/>
<data android:scheme="https" android:host="altadefinizione.tienda" android:pathPrefix="/"/> <data android:scheme="https" android:host="altadefinizione.tienda" android:pathPrefix="/"/>
<data android:scheme="https" android:host="filmpertutti.love" android:pathPrefix="/"/> <data android:scheme="https" android:host="filmpertutti.photo" android:pathPrefix="/"/>
<data android:scheme="https" android:host="hdmovie2.art" android:pathPrefix="/"/> <data android:scheme="https" android:host="hdmovie2.art" android:pathPrefix="/"/>
<data android:scheme="https" android:host="http://167.88.14.149" android:pathPrefix="/"/> <data android:scheme="https" android:host="http://167.88.14.149" android:pathPrefix="/"/>
<data android:scheme="https" android:host="149.56.24.226" android:pathPrefix="/"/> <data android:scheme="https" android:host="149.56.24.226" android:pathPrefix="/"/>

View file

@ -18,8 +18,9 @@ class AltadefinizioneProvider : MainAPI() {
) )
override val mainPage = mainPageOf( override val mainPage = mainPageOf(
Pair("$mainUrl/azione/page/", "Azione"), Pair("$mainUrl/cerca/anno/2022/page/", "Ultimi Film"),
Pair("$mainUrl/avventura/page/", "Avventura"), Pair("$mainUrl/cerca/openload-quality/HD/page/", "Film in HD"),
Pair("$mainUrl/cinema/page/", "Ora al cinema")
) )
override suspend fun getMainPage( override suspend fun getMainPage(

View file

@ -16,60 +16,37 @@ class CineblogProvider : MainAPI() {
TvType.Movie, TvType.Movie,
TvType.TvSeries, TvType.TvSeries,
) )
override val mainPage = mainPageOf(
Pair("$mainUrl/popolari/page/number/?get=movies", "Film Popolari"),
Pair("$mainUrl/popolari/page/number/?get=tv", "Serie Tv Popolari"),
Pair("$mainUrl/i-piu-votati/page/number/?get=movies", "Film più votati"),
Pair("$mainUrl/i-piu-votati/page/number/?get=tv", "Serie Tv più votate"),
Pair("$mainUrl/anno/2022/page/number", "Ultime uscite"),
)
override suspend fun getMainPage(page: Int, categoryName: String, categoryData: String): HomePageResponse { override suspend fun getMainPage(
val items = ArrayList<HomePageList>() page: Int,
val urls = listOf( categoryName: String,
Pair("$mainUrl/genere/azione/", "Azione"), categoryData: String
Pair("$mainUrl/genere/avventura/", "Avventura"), ): HomePageResponse {
) val url = categoryData.replace("number", page.toString())
for ((url, name) in urls) { val soup = app.get(url, referer = url.substringBefore("page")).document
try { val home = soup.select("article.item").map {
val soup = app.get(url).document val title = it.selectFirst("div.data > h3 > a")!!.text().substringBefore("(")
val home = soup.select("article.item.movies").map { val link = it.selectFirst("div.poster > a")!!.attr("href")
val title = it.selectFirst("div.data > h3 > a")!!.text().substringBefore("(") val quality = getQualityFromString(it.selectFirst("span.quality")?.text())
val link = it.selectFirst("div.poster > a")!!.attr("href") TvSeriesSearchResponse(
val quality = getQualityFromString(it.selectFirst("span.quality")?.text()) title,
TvSeriesSearchResponse( link,
title, this.name,
link, TvType.Movie,
this.name, it.selectFirst("img")!!.attr("src"),
TvType.Movie, null,
it.selectFirst("img")!!.attr("src"), null,
null, quality = quality
null, )
quality = quality
)
}
items.add(HomePageList(name, home))
} catch (e: Exception) {
logError(e)
}
} }
try { return newHomePageResponse(categoryName, home)
val soup = app.get("$mainUrl/serietv/").document
val home = soup.select("article.item.tvshows").map {
val title = it.selectFirst("div.data > h3 > a")!!.text().substringBefore("(")
val link = it.selectFirst("div.poster > a")!!.attr("href")
TvSeriesSearchResponse(
title,
link,
this.name,
TvType.Movie,
it.selectFirst("img")!!.attr("src"),
null,
null,
)
}
items.add(HomePageList("Serie tv", home))
} catch (e: Exception) {
logError(e)
}
if (items.size <= 0) throw ErrorLoadingException()
return HomePageResponse(items)
} }
override suspend fun search(query: String): List<SearchResponse> { override suspend fun search(query: String): List<SearchResponse> {

View file

@ -7,6 +7,7 @@ import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer
import com.lagradost.cloudstream3.utils.AppUtils.toJson import com.lagradost.cloudstream3.utils.AppUtils.toJson
import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLink
import com.lagradost.cloudstream3.utils.ShortLink
import com.lagradost.cloudstream3.utils.loadExtractor import com.lagradost.cloudstream3.utils.loadExtractor
import com.lagradost.nicehttp.NiceResponse import com.lagradost.nicehttp.NiceResponse
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
@ -14,7 +15,7 @@ import org.jsoup.nodes.Element
class FilmpertuttiProvider : MainAPI() { class FilmpertuttiProvider : MainAPI() {
override var lang = "it" override var lang = "it"
override var mainUrl = "https://filmpertutti.love" override var mainUrl = "https://filmpertutti.photo"
override var name = "Filmpertutti" override var name = "Filmpertutti"
override val hasMainPage = true override val hasMainPage = true
override val hasChromecastSupport = true override val hasChromecastSupport = true
@ -24,9 +25,9 @@ class FilmpertuttiProvider : MainAPI() {
) )
override val mainPage = mainPageOf( override val mainPage = mainPageOf(
Pair("$mainUrl/category/serie-tv/page/", "Serie Tv"), Pair("$mainUrl/category/film/page/", "Film Popolari"),
Pair("$mainUrl/category/film/azione/page/", "Azione"), Pair("$mainUrl/category/serie-tv/page/", "Serie Tv Popolari"),
Pair("$mainUrl/category/film/avventura/page/", "Avventura"), Pair("$mainUrl/prime-visioni/", "Ultime uscite"),
) )
override suspend fun getMainPage( override suspend fun getMainPage(
@ -178,56 +179,6 @@ class FilmpertuttiProvider : MainAPI() {
} }
} }
// to be updated when UnshortenUrl is ready
suspend fun unshorten_linkup(uri: String): String {
var r: NiceResponse? = null
var uri = uri
when {
uri.contains("/tv/") -> uri = uri.replace("/tv/", "/tva/")
uri.contains("delta") -> uri = uri.replace("/delta/", "/adelta/")
(uri.contains("/ga/") || uri.contains("/ga2/")) -> uri =
base64Decode(uri.split('/').last()).trim()
uri.contains("/speedx/") -> uri =
uri.replace("http://linkup.pro/speedx", "http://speedvideo.net")
else -> {
r = app.get(uri, allowRedirects = true)
uri = r.url
val link =
Regex("<iframe[^<>]*src=\\'([^'>]*)\\'[^<>]*>").find(r.text)?.value
?: Regex("""action="(?:[^/]+.*?/[^/]+/([a-zA-Z0-9_]+))">""").find(r.text)?.value
?: Regex("""href","((.|\\n)*?)"""").findAll(r.text)
.elementAtOrNull(1)?.groupValues?.get(1)
if (link != null) {
uri = link
}
}
}
val short = Regex("""^https?://.*?(https?://.*)""").find(uri)?.value
if (short != null) {
uri = short
}
if (r == null) {
r = app.get(
uri,
allowRedirects = false
)
if (r.headers["location"] != null) {
uri = r.headers["location"].toString()
}
}
if (uri.contains("snip.")) {
if (uri.contains("out_generator")) {
uri = Regex("url=(.*)\$").find(uri)!!.value
} else if (uri.contains("/decode/")) {
uri = app.get(uri, allowRedirects = true).url
}
}
return uri
}
override suspend fun loadLinks( override suspend fun loadLinks(
data: String, data: String,
isCasting: Boolean, isCasting: Boolean,
@ -235,16 +186,8 @@ class FilmpertuttiProvider : MainAPI() {
callback: (ExtractorLink) -> Unit callback: (ExtractorLink) -> Unit
): Boolean { ): Boolean {
tryParseJson<List<String>>(data)?.apmap { id -> tryParseJson<List<String>>(data)?.apmap { id ->
if (id.contains("buckler")) { val link = ShortLink.unshorten(id).trim().replace("/v/", "/e/").replace("/f/", "/e/")
val id2 = unshorten_linkup(id).trim().replace("/v/", "/e/").replace("/f/", "/e/") loadExtractor(link, data, subtitleCallback, callback)
loadExtractor(id2, data, subtitleCallback, callback)
} else if (id.contains("isecure")) {
val doc1 = app.get(id).document
val id2 = doc1.selectFirst("iframe")!!.attr("src")
loadExtractor(id2, data, subtitleCallback, callback)
} else {
loadExtractor(id, data, subtitleCallback, callback)
}
} }
return true return true
} }

View file

@ -177,7 +177,7 @@ class StreamingcommunityProvider : MainAPI() {
override suspend fun getMainPage(page: Int, categoryName: String, categoryData: String): HomePageResponse { override suspend fun getMainPage(page: Int, categoryName: String, categoryData: String): HomePageResponse {
val items = ArrayList<HomePageList>() val items = ArrayList<HomePageList>()
val document = app.get(mainUrl).document val document = app.get(mainUrl).document
document.select("slider-title").subList(0, 6).map { it -> document.select("slider-title").subList(0, 3).map { it ->
if (it.attr("slider-name") != "In arrivo") { if (it.attr("slider-name") != "In arrivo") {
val films = it.attr("titles-json") val films = it.attr("titles-json")
val lista = mutableListOf<MovieSearchResponse>() val lista = mutableListOf<MovieSearchResponse>()

View file

@ -8,7 +8,7 @@ import com.lagradost.cloudstream3.utils.loadExtractor
class TantifilmProvider : MainAPI() { class TantifilmProvider : MainAPI() {
override var lang = "it" override var lang = "it"
override var mainUrl = "https://www.tantifilm.nl" override var mainUrl = "https://tantifilm.autos"
override var name = "Tantifilm" override var name = "Tantifilm"
override val hasMainPage = true override val hasMainPage = true
override val hasChromecastSupport = true override val hasChromecastSupport = true
@ -18,9 +18,9 @@ class TantifilmProvider : MainAPI() {
) )
override val mainPage = mainPageOf( override val mainPage = mainPageOf(
Pair("$mainUrl/watch-genre/serie-tv/page/", "Serie Tv"), Pair("$mainUrl/watch-genre/al-cinema/page/", "Ultimi Film"),
Pair("$mainUrl/watch-genre/azione/page/", "Azione"), Pair("$mainUrl/serie-tv/page/", "Ultime Serie Tv"),
Pair("$mainUrl/watch-genre/avventura/page/", "Avventura"), Pair("$mainUrl/watch-genre/film-aggiornati/page/", "Ultimi Film Aggiornati"),
) )
override suspend fun getMainPage( override suspend fun getMainPage(

View file

@ -30,6 +30,7 @@ object ShortLink {
private val nuovoLinkRegex = """nuovolink\.com""" private val nuovoLinkRegex = """nuovolink\.com"""
private val uprotRegex = """uprot\.net""" private val uprotRegex = """uprot\.net"""
private val davisonbarkerRegex = """davisonbarker\.pro|lowrihouston\.pro""" private val davisonbarkerRegex = """davisonbarker\.pro|lowrihouston\.pro"""
private val isecureRegex = """isecure\.link"""
private val shortList = listOf( private val shortList = listOf(
ShortUrl(adflyRegex, "adfly", ::unshortenAdfly), ShortUrl(adflyRegex, "adfly", ::unshortenAdfly),
@ -39,6 +40,7 @@ object ShortLink {
ShortUrl(nuovoLinkRegex, "nuovolink", ::unshortenNuovoLink), ShortUrl(nuovoLinkRegex, "nuovolink", ::unshortenNuovoLink),
ShortUrl(uprotRegex, "uprot", ::unshortenUprot), ShortUrl(uprotRegex, "uprot", ::unshortenUprot),
ShortUrl(davisonbarkerRegex, "uprot", ::unshortenDavisonbarker), ShortUrl(davisonbarkerRegex, "uprot", ::unshortenDavisonbarker),
ShortUrl(isecureRegex, "isecure", ::unshortenIsecure),
) )
fun isShortLink(url: String): Boolean { fun isShortLink(url: String): Boolean {
@ -187,4 +189,8 @@ object ShortLink {
fun unshortenDavisonbarker(uri: String): String { fun unshortenDavisonbarker(uri: String): String {
return URLDecoder.decode(uri.substringAfter("dest=")) return URLDecoder.decode(uri.substringAfter("dest="))
} }
suspend fun unshortenIsecure(uri: String): String {
val doc = app.get(uri).document
return doc.selectFirst("iframe")?.attr("src")?.trim()?: uri
}
} }

View file

@ -222,7 +222,7 @@
"language": "it", "language": "it",
"name": "Filmpertutti", "name": "Filmpertutti",
"status": 1, "status": 1,
"url": "https://filmpertutti.love" "url": "https://filmpertutti.photo"
}, },
"FmoviesToProvider": { "FmoviesToProvider": {
"language": "en", "language": "en",
@ -502,7 +502,7 @@
"language": "it", "language": "it",
"name": "Tantifilm", "name": "Tantifilm",
"status": 1, "status": 1,
"url": "https://www.tantifilm.nl" "url": "https://tantifilm.autos"
}, },
"TenshiProvider": { "TenshiProvider": {
"language": "en", "language": "en",