9goal 👍 (#60)

This commit is contained in:
Zaw 2022-11-30 20:24:51 +03:00 committed by GitHub
parent 2faa926b2d
commit 24336c1fb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 12 deletions

View file

@ -1,4 +1,4 @@
version = 4 version = 5
cloudstream { cloudstream {
description = "" description = ""

View file

@ -5,6 +5,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink
import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonProperty
import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.AppUtils.parseJson
import com.lagradost.cloudstream3.utils.Qualities import com.lagradost.cloudstream3.utils.Qualities
import java.net.URL
import java.net.UnknownHostException import java.net.UnknownHostException
import java.util.* import java.util.*
@ -60,10 +61,6 @@ data class sourcesJSON (
@JsonProperty("data" ) var data : sourceData? = sourceData() @JsonProperty("data" ) var data : sourceData? = sourceData()
) )
private fun String.getDomainFromUrl(): String? {
return Regex("""^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)""").find(this)?.groupValues?.firstOrNull()
}
class NineGoal : MainAPI() { class NineGoal : MainAPI() {
override var mainUrl = "https://9goaltv.to" override var mainUrl = "https://9goaltv.to"
override var name = "9Goal" override var name = "9Goal"
@ -76,7 +73,10 @@ class NineGoal : MainAPI() {
override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse { override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse {
val doc = app.get(mainUrl).document val doc = app.get(mainUrl).document
val apiUrl = doc.select("head > script").first()?.html()?.substringAfter("window.api_base_url = \"")?.substringBefore("\";") val apiUrl = doc.select("head > script")
.firstOrNull { it.html().contains("window.api_base_url") }.let {
Regex("""window\.api_base_url = "(.*)";""").find(it?.html() ?: "")?.groupValues?.lastOrNull()
} ?: "https://justameanlessdomain.com"
val matchesData = parseJson<matchesJSON>(app.get("$apiUrl/v1/match/featured").text) val matchesData = parseJson<matchesJSON>(app.get("$apiUrl/v1/match/featured").text)
val liveHomePageList = matchesData.data.filter { it.isLive == true }.map { val liveHomePageList = matchesData.data.filter { it.isLive == true }.map {
LiveSearchResponse( LiveSearchResponse(
@ -131,17 +131,17 @@ class NineGoal : MainAPI() {
else -> Qualities.Unknown.value else -> Qualities.Unknown.value
} }
} }
val language = it.name?.replace(""" \(.*""".toRegex(), "") ?: "" val language = it.name?.replace("""\(.*""".toRegex(), "") ?: ""
val url = URL(it.url)
val requestStatus = try { val requestStatus = try {
app.head( app.head(
fixUrl( fixUrl(
it.url?.getDomainFromUrl() ?: "canyou.letmestreamyou.net" it.url ?: ""
) )
).isSuccessful ).isSuccessful
} catch (e: UnknownHostException) { } catch (e: UnknownHostException) {
false false
} }
val domain = fixUrl(it.url?.getDomainFromUrl() ?: "https://canyou.letmestreamyou.net")
if (!requestStatus) { if (!requestStatus) {
mapOf( mapOf(
"(1)" to "https://playing.smoothlikebutterstream.com", "(1)" to "https://playing.smoothlikebutterstream.com",
@ -153,8 +153,8 @@ class NineGoal : MainAPI() {
callback.invoke( callback.invoke(
ExtractorLink( ExtractorLink(
this.name, this.name,
"$language - $name", "$language $name",
it.url?.replace(domain, value) ?: "", it.url?.replace(url.host, value) ?: "",
"$mainUrl/", "$mainUrl/",
quality, quality,
isM3u8 = true, isM3u8 = true,
@ -165,7 +165,7 @@ class NineGoal : MainAPI() {
callback.invoke( callback.invoke(
ExtractorLink( ExtractorLink(
this.name, this.name,
"$language - ${sourcesData.name}", "$language ${sourcesData.name}",
it.url ?: "", it.url ?: "",
"$mainUrl/", "$mainUrl/",
quality, quality,