Better code and fully fix Eurostreaming + verbump

This commit is contained in:
LikDev-256 2022-11-29 05:35:55 +05:30
parent 8bf7b6d22c
commit ec74d3c756
6 changed files with 71 additions and 41 deletions

3
EurostreamingProvider/.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

12
EurostreamingProvider/.idea/gradle.xml generated Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
</GradleProjectSettings>
</option>
</component>
</project>

10
EurostreamingProvider/.idea/misc.xml generated Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

6
EurostreamingProvider/.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View file

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

View file

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