From 08c3350666f1ff5a54fd0df97a2edd22ff2086b3 Mon Sep 17 00:00:00 2001 From: Blatzar <46196380+Blatzar@users.noreply.github.com> Date: Mon, 14 Feb 2022 14:37:17 +0100 Subject: [PATCH] moar fixes --- .../com/lagradost/cloudstream3/MainAPI.kt | 1 - .../movieproviders/SflixProvider.kt | 39 ++++++++++++++----- .../cloudstream3/network/WebViewResolver.kt | 2 + 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt index f60cbba6..c19a1292 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt @@ -36,7 +36,6 @@ object APIHolder { AllAnimeProvider(), AnimekisaProvider(), //ShiroProvider(), // v2 fucked me - //AnimePaheProvider(), //ddos guard AnimeFlickProvider(), AnimeflvnetProvider(), diff --git a/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SflixProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SflixProvider.kt index c22c4bbb..6b9c6592 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SflixProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/movieproviders/SflixProvider.kt @@ -308,7 +308,7 @@ class SflixProvider(providerUrl: String, providerName: String) : MainAPI() { // Some smarter ws11 or w10 selection might be required in the future. val extractorData = - "https://ws10.rabbitstream.net/socket.io/?EIO=4&transport=polling" + "https://ws11.rabbitstream.net/socket.io/?EIO=4&transport=polling" val sources = resolved.first?.let { app.baseClient.newCall(it).execute().text } ?: return@suspendSafeApiCall @@ -384,19 +384,25 @@ class SflixProvider(providerUrl: String, providerName: String) : MainAPI() { /** * Generates a new session if the request fails + * @return the data and if it is new. * */ - private suspend fun getUpdatedData(response: AppResponse, data: PollingData, baseUrl: String) : PollingData { - if (!response.response.isSuccessful){ - return negotiateNewSid(baseUrl) ?: data + private suspend fun getUpdatedData( + response: AppResponse, + data: PollingData, + baseUrl: String + ): Pair { + if (!response.response.isSuccessful) { + return negotiateNewSid(baseUrl)?.let { + it to true + } ?: data to false } - return data + return data to false } override suspend fun extractorVerifierJob(extractorData: String?) { if (extractorData == null) return val headers = mapOf( - "User-Agent" to USER_AGENT, "Referer" to "https://rabbitstream.net/" ) @@ -431,13 +437,26 @@ class SflixProvider(providerUrl: String, providerName: String) : MainAPI() { // Prevents them from fucking us over with doing a while(true){} loop val interval = maxOf(data.pingInterval?.toLong()?.plus(2000) ?: return, 10000L) var reconnect = false + var newAuth = false while (true) { - val authData = if (reconnect) """ - 42["_reconnect", "$reconnectSid"] - """.trimIndent() else authInt + val authData = + when { + newAuth -> "40" + reconnect -> """42["_reconnect", "$reconnectSid"]""" + else -> authInt + } val url = "${extractorData}&t=${generateTimeStamp()}&sid=${data.sid}" - data = getUpdatedData(app.post(url, data = authData, headers = headers), data, extractorData) + + getUpdatedData( + app.post(url, data = authData, headers = headers), + data, + extractorData + ).also { + newAuth = it.second + data = it.first + } + //.also { println("Sflix post job ${it.text}") } Log.d(this.name, "Running Sflix job $url") diff --git a/app/src/main/java/com/lagradost/cloudstream3/network/WebViewResolver.kt b/app/src/main/java/com/lagradost/cloudstream3/network/WebViewResolver.kt index 9aa44a08..095bb3f2 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/network/WebViewResolver.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/network/WebViewResolver.kt @@ -125,6 +125,8 @@ class WebViewResolver(val interceptUrl: Regex, val additionalUrls: List = ".srt", ".ts", ".gif", + // Warning, this might fuck some future sites, but it's used to make Sflix work. + "wss://" ) /** NOTE! request.requestHeaders is not perfect!