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

View File

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

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>

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>

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