diff --git a/NineGoalProvider/build.gradle.kts b/NineGoalProvider/build.gradle.kts index 94d8a9c..e07b672 100644 --- a/NineGoalProvider/build.gradle.kts +++ b/NineGoalProvider/build.gradle.kts @@ -1,4 +1,4 @@ -version = 4 +version = 5 cloudstream { description = "" diff --git a/NineGoalProvider/src/main/kotlin/com/ninegoal/9GoalProvider.kt b/NineGoalProvider/src/main/kotlin/com/ninegoal/9GoalProvider.kt index 6033272..26d493b 100644 --- a/NineGoalProvider/src/main/kotlin/com/ninegoal/9GoalProvider.kt +++ b/NineGoalProvider/src/main/kotlin/com/ninegoal/9GoalProvider.kt @@ -5,6 +5,7 @@ import com.lagradost.cloudstream3.utils.ExtractorLink import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.Qualities +import java.net.URL import java.net.UnknownHostException import java.util.* @@ -60,10 +61,6 @@ data class sourcesJSON ( @JsonProperty("data" ) var data : sourceData? = sourceData() ) -private fun String.getDomainFromUrl(): String? { - return Regex("""^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n\?\=]+)""").find(this)?.groupValues?.firstOrNull() -} - class NineGoal : MainAPI() { override var mainUrl = "https://9goaltv.to" override var name = "9Goal" @@ -76,7 +73,10 @@ class NineGoal : MainAPI() { override suspend fun getMainPage(page: Int, request : MainPageRequest): HomePageResponse { 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(app.get("$apiUrl/v1/match/featured").text) val liveHomePageList = matchesData.data.filter { it.isLive == true }.map { LiveSearchResponse( @@ -131,17 +131,17 @@ class NineGoal : MainAPI() { else -> Qualities.Unknown.value } } - val language = it.name?.replace(""" \(.*""".toRegex(), "") ?: "" + val language = it.name?.replace("""\(.*""".toRegex(), "") ?: "" + val url = URL(it.url) val requestStatus = try { app.head( fixUrl( - it.url?.getDomainFromUrl() ?: "canyou.letmestreamyou.net" + it.url ?: "" ) ).isSuccessful } catch (e: UnknownHostException) { false } - val domain = fixUrl(it.url?.getDomainFromUrl() ?: "https://canyou.letmestreamyou.net") if (!requestStatus) { mapOf( "(1)" to "https://playing.smoothlikebutterstream.com", @@ -153,8 +153,8 @@ class NineGoal : MainAPI() { callback.invoke( ExtractorLink( this.name, - "$language - $name", - it.url?.replace(domain, value) ?: "", + "$language $name", + it.url?.replace(url.host, value) ?: "", "$mainUrl/", quality, isM3u8 = true, @@ -165,7 +165,7 @@ class NineGoal : MainAPI() { callback.invoke( ExtractorLink( this.name, - "$language - ${sourcesData.name}", + "$language ${sourcesData.name}", it.url ?: "", "$mainUrl/", quality,