forked from recloudstream/cloudstream
		
	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:
		
							parent
							
								
									9bb60a1677
								
							
						
					
					
						commit
						e32f99d8a7
					
				
					 8 changed files with 54 additions and 127 deletions
				
			
		|  | @ -128,10 +128,10 @@ | |||
|                 <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="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="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="http://167.88.14.149" android:pathPrefix="/"/> | ||||
|                 <data android:scheme="https" android:host="149.56.24.226" android:pathPrefix="/"/> | ||||
|  |  | |||
|  | @ -18,8 +18,9 @@ class AltadefinizioneProvider : MainAPI() { | |||
|     ) | ||||
| 
 | ||||
|     override val mainPage = mainPageOf( | ||||
|         Pair("$mainUrl/azione/page/", "Azione"), | ||||
|         Pair("$mainUrl/avventura/page/", "Avventura"), | ||||
|         Pair("$mainUrl/cerca/anno/2022/page/", "Ultimi Film"), | ||||
|         Pair("$mainUrl/cerca/openload-quality/HD/page/", "Film in HD"), | ||||
|         Pair("$mainUrl/cinema/page/", "Ora al cinema") | ||||
|     ) | ||||
| 
 | ||||
|     override suspend fun getMainPage( | ||||
|  |  | |||
|  | @ -16,17 +16,22 @@ class CineblogProvider : MainAPI() { | |||
|         TvType.Movie, | ||||
|         TvType.TvSeries, | ||||
|     ) | ||||
| 
 | ||||
|     override suspend fun getMainPage(page: Int, categoryName: String, categoryData: String): HomePageResponse { | ||||
|         val items = ArrayList<HomePageList>() | ||||
|         val urls = listOf( | ||||
|             Pair("$mainUrl/genere/azione/", "Azione"), | ||||
|             Pair("$mainUrl/genere/avventura/", "Avventura"), | ||||
|     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"), | ||||
|     ) | ||||
|         for ((url, name) in urls) { | ||||
|             try { | ||||
|                 val soup = app.get(url).document | ||||
|                 val home = soup.select("article.item.movies").map { | ||||
| 
 | ||||
|     override suspend fun getMainPage( | ||||
|         page: Int, | ||||
|         categoryName: String, | ||||
|         categoryData: String | ||||
|     ): HomePageResponse { | ||||
|         val url = categoryData.replace("number", page.toString()) | ||||
|         val soup = app.get(url, referer = url.substringBefore("page")).document | ||||
|         val home = soup.select("article.item").map { | ||||
|             val title = it.selectFirst("div.data > h3 > a")!!.text().substringBefore("(") | ||||
|             val link = it.selectFirst("div.poster > a")!!.attr("href") | ||||
|             val quality = getQualityFromString(it.selectFirst("span.quality")?.text()) | ||||
|  | @ -41,35 +46,7 @@ class CineblogProvider : MainAPI() { | |||
|                 quality = quality | ||||
|             ) | ||||
|         } | ||||
| 
 | ||||
|                 items.add(HomePageList(name, home)) | ||||
|             } catch (e: Exception) { | ||||
|                 logError(e) | ||||
|             } | ||||
|         } | ||||
|         try { | ||||
|             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) | ||||
|         return newHomePageResponse(categoryName, home) | ||||
|     } | ||||
| 
 | ||||
|     override suspend fun search(query: String): List<SearchResponse> { | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer | |||
| import com.lagradost.cloudstream3.utils.AppUtils.toJson | ||||
| import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson | ||||
| import com.lagradost.cloudstream3.utils.ExtractorLink | ||||
| import com.lagradost.cloudstream3.utils.ShortLink | ||||
| import com.lagradost.cloudstream3.utils.loadExtractor | ||||
| import com.lagradost.nicehttp.NiceResponse | ||||
| import org.jsoup.nodes.Element | ||||
|  | @ -14,7 +15,7 @@ import org.jsoup.nodes.Element | |||
| 
 | ||||
| class FilmpertuttiProvider : MainAPI() { | ||||
|     override var lang = "it" | ||||
|     override var mainUrl = "https://filmpertutti.love" | ||||
|     override var mainUrl = "https://filmpertutti.photo" | ||||
|     override var name = "Filmpertutti" | ||||
|     override val hasMainPage = true | ||||
|     override val hasChromecastSupport = true | ||||
|  | @ -24,9 +25,9 @@ class FilmpertuttiProvider : MainAPI() { | |||
|     ) | ||||
| 
 | ||||
|     override val mainPage = mainPageOf( | ||||
|         Pair("$mainUrl/category/serie-tv/page/", "Serie Tv"), | ||||
|         Pair("$mainUrl/category/film/azione/page/", "Azione"), | ||||
|         Pair("$mainUrl/category/film/avventura/page/", "Avventura"), | ||||
|         Pair("$mainUrl/category/film/page/", "Film Popolari"), | ||||
|         Pair("$mainUrl/category/serie-tv/page/", "Serie Tv Popolari"), | ||||
|         Pair("$mainUrl/prime-visioni/", "Ultime uscite"), | ||||
|     ) | ||||
| 
 | ||||
|     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( | ||||
|         data: String, | ||||
|         isCasting: Boolean, | ||||
|  | @ -235,16 +186,8 @@ class FilmpertuttiProvider : MainAPI() { | |||
|         callback: (ExtractorLink) -> Unit | ||||
|     ): Boolean { | ||||
|         tryParseJson<List<String>>(data)?.apmap { id -> | ||||
|             if (id.contains("buckler")) { | ||||
|                 val id2 = unshorten_linkup(id).trim().replace("/v/", "/e/").replace("/f/", "/e/") | ||||
|                 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) | ||||
|             } | ||||
|             val link = ShortLink.unshorten(id).trim().replace("/v/", "/e/").replace("/f/", "/e/") | ||||
|             loadExtractor(link, data, subtitleCallback, callback) | ||||
|         } | ||||
|         return true | ||||
|     } | ||||
|  |  | |||
|  | @ -177,7 +177,7 @@ class StreamingcommunityProvider : MainAPI() { | |||
|     override suspend fun getMainPage(page: Int, categoryName: String, categoryData: String): HomePageResponse { | ||||
|         val items = ArrayList<HomePageList>() | ||||
|         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") { | ||||
|                 val films = it.attr("titles-json") | ||||
|                 val lista = mutableListOf<MovieSearchResponse>() | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ import com.lagradost.cloudstream3.utils.loadExtractor | |||
| 
 | ||||
| class TantifilmProvider : MainAPI() { | ||||
|     override var lang = "it" | ||||
|     override var mainUrl = "https://www.tantifilm.nl" | ||||
|     override var mainUrl = "https://tantifilm.autos" | ||||
|     override var name = "Tantifilm" | ||||
|     override val hasMainPage = true | ||||
|     override val hasChromecastSupport = true | ||||
|  | @ -18,9 +18,9 @@ class TantifilmProvider : MainAPI() { | |||
|     ) | ||||
| 
 | ||||
|     override val mainPage = mainPageOf( | ||||
|         Pair("$mainUrl/watch-genre/serie-tv/page/", "Serie Tv"), | ||||
|         Pair("$mainUrl/watch-genre/azione/page/", "Azione"), | ||||
|         Pair("$mainUrl/watch-genre/avventura/page/", "Avventura"), | ||||
|         Pair("$mainUrl/watch-genre/al-cinema/page/", "Ultimi Film"), | ||||
|         Pair("$mainUrl/serie-tv/page/", "Ultime Serie Tv"), | ||||
|         Pair("$mainUrl/watch-genre/film-aggiornati/page/", "Ultimi Film Aggiornati"), | ||||
|     ) | ||||
| 
 | ||||
|     override suspend fun getMainPage( | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ object ShortLink { | |||
|     private val nuovoLinkRegex = """nuovolink\.com""" | ||||
|     private val uprotRegex = """uprot\.net""" | ||||
|     private val davisonbarkerRegex = """davisonbarker\.pro|lowrihouston\.pro""" | ||||
|     private val isecureRegex = """isecure\.link""" | ||||
| 
 | ||||
|     private val shortList = listOf( | ||||
|         ShortUrl(adflyRegex, "adfly", ::unshortenAdfly), | ||||
|  | @ -39,6 +40,7 @@ object ShortLink { | |||
|         ShortUrl(nuovoLinkRegex, "nuovolink", ::unshortenNuovoLink), | ||||
|         ShortUrl(uprotRegex, "uprot", ::unshortenUprot), | ||||
|         ShortUrl(davisonbarkerRegex, "uprot", ::unshortenDavisonbarker), | ||||
|         ShortUrl(isecureRegex, "isecure", ::unshortenIsecure), | ||||
|     ) | ||||
| 
 | ||||
|     fun isShortLink(url: String): Boolean { | ||||
|  | @ -187,4 +189,8 @@ object ShortLink { | |||
|     fun unshortenDavisonbarker(uri: String): String { | ||||
|         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 | ||||
|     } | ||||
| } | ||||
|  | @ -222,7 +222,7 @@ | |||
|         "language": "it", | ||||
|         "name": "Filmpertutti", | ||||
|         "status": 1, | ||||
|         "url": "https://filmpertutti.love" | ||||
|         "url": "https://filmpertutti.photo" | ||||
|     }, | ||||
|     "FmoviesToProvider": { | ||||
|         "language": "en", | ||||
|  | @ -502,7 +502,7 @@ | |||
|         "language": "it", | ||||
|         "name": "Tantifilm", | ||||
|         "status": 1, | ||||
|         "url": "https://www.tantifilm.nl" | ||||
|         "url": "https://tantifilm.autos" | ||||
|     }, | ||||
|     "TenshiProvider": { | ||||
|         "language": "en", | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue