diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt index 8a98bd2972e..e990f51cb7f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainActivity.kt @@ -2070,7 +2070,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, BiometricCa app.get( "https://raw.githubusercontent.com/recloudstream/.github/master/connectivitycheck", timeout = 5 - ).text.trim() == "ok" + ).text().trim() == "ok" } catch (t: Throwable) { false } diff --git a/app/src/main/java/com/lagradost/cloudstream3/network/DdosGuardKiller.kt b/app/src/main/java/com/lagradost/cloudstream3/network/DdosGuardKiller.kt index 5c1ae75b2af..ceb04d8676d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/network/DdosGuardKiller.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/network/DdosGuardKiller.kt @@ -35,7 +35,7 @@ class DdosGuardKiller(private val alwaysBypass: Boolean) : Interceptor { ddosBypassPath = ddosBypassPath ?: Regex("'(.*?)'").find( app.get( "https://check.ddos-guard.net/check.js" - ).text + ).text() )?.groupValues?.get(1) val cookies = diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt index 07d6aaa37bc..65eda36ea2c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/RepositoryManager.kt @@ -144,7 +144,7 @@ object RepositoryManager { val response = app.get(convertRawGitUrl(pluginUrls)) // Normal parsed function not working? // return response.parsedSafe() - tryParseJson>(response.text)?.toList() ?: emptyList() + tryParseJson>(response.text())?.toList() ?: emptyList() } catch (t: Throwable) { logError(t) emptyList() @@ -177,7 +177,7 @@ object RepositoryManager { // Prevent corrupting the plugin file if the operation fails val tempFile = File.createTempFile(file.name, ".tmp", context.cacheDir) - val body = app.get(convertRawGitUrl(pluginUrl)).okhttpResponse.body + val body = app.get(convertRawGitUrl(pluginUrl)).body() body.byteStream().use { body -> tempFile.outputStream().use { fileSteam -> diff --git a/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt b/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt index 85a806f0b12..6fe3c32a6c7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/plugins/VotingApi.kt @@ -41,7 +41,7 @@ object VotingApi { val id = transformUrl(pluginUrl) val url = "$API_DOMAIN/increment/$id" Log.d(LOGKEY, "Requesting POST: $url") - return app.post(url, emptyMap()) + return app.post(url) { headers = emptyMap() } .parsedSafe()?.count != null } diff --git a/app/src/main/java/com/lagradost/cloudstream3/services/PackageInstallerService.kt b/app/src/main/java/com/lagradost/cloudstream3/services/PackageInstallerService.kt index fa7754718b5..ce4abcacd13 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/services/PackageInstallerService.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/services/PackageInstallerService.kt @@ -80,7 +80,7 @@ class PackageInstallerService : Service() { ApkInstaller.InstallProgressStatus.Downloading ) - val body = app.get(url).body + val body = app.get(url).body() val inputStream = body.byteStream() installer = ApkInstaller(this) val totalSize = body.contentLength() diff --git a/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubProvider.kt index 9e6f241fb95..ceb7e034987 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubProvider.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/subtitles/AbstractSubProvider.kt @@ -81,7 +81,7 @@ class SubtitleResource { url: String, nameGenerator: (String, File) -> String? = { _, _ -> null } ) { - val source = app.get(url).okhttpResponse.body.source() + val source = app.get(url).body().source() val zip = downloadFile(source) val realFiles = unzip(zip) zip.deleteRecursively() diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt index b83a32e45dc..31d67e19cf7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.syncproviders.providers import com.lagradost.cloudstream3.AllLanguagesName import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities.SubtitleEntity import com.lagradost.cloudstream3.subtitles.AbstractSubtitleEntities.SubtitleSearch import com.lagradost.cloudstream3.syncproviders.AuthData @@ -66,8 +65,8 @@ class Addic7ed : SubtitleAPI() { ) } - val response = app.get(url = "$HOST/search.php?search=$searchQuery&Submit=Search") - val hostDocument = response.ksoupDocument + val response = app.get("$HOST/search.php?search=$searchQuery&Submit=Search") + val hostDocument = response.document() // 1st case: found one movie or episode. Redirected to $HOST/movie/1234 or $HOST/serie/show-name/$seasonNum/$epNum/ep-name if (response.url.contains("/movie/") || response.url.contains("/serie/")) @@ -79,7 +78,7 @@ class Addic7ed : SubtitleAPI() { val doc = app.get( "$HOST/ajax_loadShow.php?show=$showId&season=$seasonNum&langs=|$langNumAddic7ed|&hd=0&hi=0", referer = "$HOST/" - ).ksoupDocument + ).document() // get direct subtitles links from list return doc.select("#season tbody tr").mapNotNull { node -> @@ -106,7 +105,7 @@ class Addic7ed : SubtitleAPI() { // filter download page by language. Do not work for movies :/ if (downloadPage.contains("/serie/")) downloadPage = downloadPage.substringBeforeLast("/") + "/$langNumAddic7ed" - val doc = app.get(url = downloadPage).ksoupDocument + val doc = app.get(url = downloadPage).document() // get subtitles links from download page return doc.select(".tabel95 .tabel95 tr:has(.language):contains($langName)").mapNotNull { node -> diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt index 7a46b411376..788e95912eb 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/AniListApi.kt @@ -270,7 +270,7 @@ class AniListApi : SyncAPI() { //headers = mapOf(), data = data,//(if (vars == null) mapOf("query" to q) else mapOf("query" to q, "variables" to vars)) timeout = 5000 // REASONABLE TIMEOUT - ).text.replace("\\", "") + ).text().replace("\\", "") return res.toKotlinObject() } catch (e: Exception) { logError(e) @@ -453,7 +453,7 @@ class AniListApi : SyncAPI() { "https://graphql.anilist.co", data = mapOf("query" to q), cacheTime = 0, - ).text + ).text() return tryParseJson(data) ?: throw ErrorLoadingException("Error parsing $data") } @@ -521,7 +521,7 @@ class AniListApi : SyncAPI() { ) ), //(if (vars == null) mapOf("query" to q) else mapOf("query" to q, "variables" to vars)) timeout = 5 // REASONABLE TIMEOUT - ).text.replace("\\/", "/") + ).text().replace("\\/", "/") } diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt index ba0195be6b8..5686b8169ae 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/MALApi.kt @@ -235,7 +235,7 @@ class MALApi : SyncAPI() { url, headers = mapOf( "Authorization" to "Bearer $auth" ) - ).text + ).text() return parseJson(res).let { malAnime -> SyncAPI.SyncResult( id = internalId.toString(), @@ -539,7 +539,7 @@ class MALApi : SyncAPI() { url, headers = mapOf( "Authorization" to "Bearer ${token.accessToken}", ), cacheTime = 0 - ).text + ).text() return res.toKotlinObject() } @@ -592,7 +592,7 @@ class MALApi : SyncAPI() { "Authorization" to "Bearer ${token.accessToken}" ), data = data - ).text + ).text() } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt index 2e554f75eaf..1c24ca7e4f6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/Torrent.kt @@ -38,7 +38,7 @@ object Torrent { return try { app.get( "$TORRENT_SERVER_URL/echo", - ).text.isNotEmpty() + ).text().isNotEmpty() } catch (e: ConnectException) { // `Failed to connect to /127.0.0.1:8090` if the server is down false diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index 8bcd1b88e70..681693be652 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -94,7 +94,7 @@ object InAppUpdater { val url = "https://api.github.com/repos/$GITHUB_USER_NAME/$GITHUB_REPO/releases" val headers = mapOf("Accept" to "application/vnd.github.v3+json") val response = parseJson>( - app.get(url, headers = headers).text + app.get(url, headers = headers).text() ) val versionRegex = Regex("""(.*?((\d+)\.(\d+)\.(\d+))\.apk)""") @@ -151,7 +151,7 @@ object InAppUpdater { val releaseUrl = "https://api.github.com/repos/$GITHUB_USER_NAME/$GITHUB_REPO/releases" val headers = mapOf("Accept" to "application/vnd.github.v3+json") val response = parseJson>( - app.get(releaseUrl, headers = headers).text + app.get(releaseUrl, headers = headers).text() ) val found = response.lastOrNull { rel -> @@ -196,7 +196,7 @@ object InAppUpdater { val sink: BufferedSink = downloadedFile.sink().buffer() updateLock.withLock { - sink.writeAll(app.get(url).body.source()) + sink.writeAll(app.get(url).body().source()) sink.close() openApk(this, Uri.fromFile(downloadedFile)) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt index 351e77c8d72..5054443d231 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/SyncUtil.kt @@ -70,7 +70,7 @@ object SyncUtil { //Gogoanime, Twistmoe and 9anime val url = "https://raw.githubusercontent.com/MALSync/MAL-Sync-Backup/master/data/pages/$site/$slug.json" - val response = app.get(url, cacheTime = 1, cacheUnit = TimeUnit.DAYS).text + val response = app.get(url, cacheTime = 1, cacheUnit = TimeUnit.DAYS).text() val mapped = parseJson(response) val overrideMal = mapped?.malId ?: mapped?.mal?.id ?: mapped?.anilist?.malId diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadManager.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadManager.kt index 12fcc0c3329..6097bed9ff2 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadManager.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/downloader/DownloadManager.kt @@ -820,7 +820,7 @@ object VideoDownloadManager { referer = referer, verify = false ) - val requestStream = request.body.byteStream() + val requestStream = request.body().byteStream() val buffer = ByteArray(bufferSize) var read: Int diff --git a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt index 6fbb20da0a2..8f5be24fb8e 100644 --- a/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt +++ b/library/src/androidMain/kotlin/com/lagradost/cloudstream3/network/WebViewResolver.android.kt @@ -228,12 +228,12 @@ actual class WebViewResolver actual constructor( useOkhttp && request.method == "GET" -> app.get( webViewUrl, headers = request.requestHeaders - ).okhttpResponse.toWebResourceResponse() + ).toWebResourceResponse() useOkhttp && request.method == "POST" -> app.post( webViewUrl, headers = request.requestHeaders - ).okhttpResponse.toWebResourceResponse() + ).toWebResourceResponse() else -> super.shouldInterceptRequest( view, @@ -294,16 +294,16 @@ fun WebResourceRequest.toRequest(): Request? { } } -fun NiceResponse.toWebResourceResponse(): WebResourceResponse { - val contentTypeValue = this.header("Content-Type") +suspend fun NiceResponse.toWebResourceResponse(): WebResourceResponse { + val contentTypeValue = this.headers["Content-Type"] // 1. contentType. 2. charset val typeRegex = Regex("""(.*);(?:.*charset=(.*)(?:|;)|)""") return if (contentTypeValue != null) { val found = typeRegex.find(contentTypeValue) val contentType = found?.groupValues?.getOrNull(1)?.ifBlank { null } ?: contentTypeValue val charset = found?.groupValues?.getOrNull(2)?.ifBlank { null } - WebResourceResponse(contentType, charset, this.body.byteStream()) + WebResourceResponse(contentType, charset, this.body().byteStream()) } else { - WebResourceResponse("application/octet-stream", null, this.body.byteStream()) + WebResourceResponse("application/octet-stream", null, this.body().byteStream()) } } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt index 33933c6b3f8..2d6436f4be0 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainAPI.kt @@ -172,12 +172,12 @@ object APIHolder { referer = referer, cacheTime = 0 ) - .text + .text() .substringAfter("releases/") .substringBefore("/") val recapToken = app.get("https://www.google.com/recaptcha/api2/anchor?ar=1&hl=en&size=invisible&cb=cs3&k=$key&co=$domain&v=$vToken") - .ksoupDocument + .document() .selectFirst("#recaptcha-token")?.attr("value") if (recapToken != null) { return app.post( @@ -190,7 +190,7 @@ object APIHolder { "sa" to "", "reason" to "q" ), cacheTime = 0 - ).text + ).text() .substringAfter("rresp\",\"") .substringBefore("\"") } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt index 8c64dc7ceff..09d18feede6 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/MainActivity.kt @@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.fleeksoft.ksoup.Ksoup import com.fleeksoft.ksoup.nodes.Document -import com.lagradost.nicehttp.NiceResponse import com.lagradost.nicehttp.Requests import com.lagradost.nicehttp.ResponseParser import io.ktor.client.engine.okhttp.OkHttpEngine @@ -47,10 +46,6 @@ var app = Requests(responseParser = jacksonResponseParser).apply { val okHttpClient = (app.baseClient.engine as? OkHttpEngine) ?.config?.preconfigured ?: OkHttpClient() -/** Parses the response body as a Ksoup Document. */ -val NiceResponse.ksoupDocument: Document - get() = Ksoup.parse(text) - /** Same as the default app networking helper, but this instance ignores SSL certificates. * This should NEVER be used for sensitive networking operations such as logins. Only use this when required. */ @Prerelease diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt index a86c5f01a83..6b1f66c6990 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Acefile.kt @@ -16,7 +16,7 @@ open class Acefile : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { val id = "/(?:d|download|player|f|file)/(\\w+)".toRegex().find(url)?.groupValues?.get(1) - val script = getAndUnpack(app.get("$mainUrl/player/${id ?: return}").text) + val script = getAndUnpack(app.get("$mainUrl/player/${id ?: return}").text()) val service = """service\s*=\s*['"]([^'"]+)""".toRegex().find(script)?.groupValues?.get(1) val serverUrl = """['"](\S+check&id\S+?)['"]""".toRegex().find(script)?.groupValues?.get(1) ?.replace("\"+service+\"", service ?: return) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt index a2250ac5bc5..4fc2ac6c7de 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Blogger.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -13,7 +12,7 @@ open class Blogger : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List { val sources = mutableListOf() - with(app.get(url).ksoupDocument) { + with(app.get(url).document()) { this.select("script").map { script -> if (script.data().contains("\"streams\":[")) { val data = script.data().substringAfter("\"streams\":[") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt index 2d25184cd84..5d29ef8265d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Cda.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -26,7 +25,7 @@ open class Cda : ExtractorApi() { "User-Agent" to USER_AGENT, "Cookie" to "cda.player=html5" ) - ).ksoupDocument + ).document() val dataRaw = doc.selectFirst("[player_data]")?.attr("player_data") ?: return null val playerData = tryParseJson(dataRaw) ?: return null return listOf( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/CloudMailRuExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/CloudMailRuExtractor.kt index 3c79baf3a04..69434c11568 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/CloudMailRuExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/CloudMailRuExtractor.kt @@ -29,7 +29,7 @@ open class CloudMailRu : ExtractorApi() { ) val vidId = url.substringAfter("public/").toByteArray() val vidIdEnc = base64Encode(vidId) - val videoReq = app.get(url, headers=headers).text + val videoReq = app.get(url, headers=headers).text() val regex = Regex(pattern = "videowl_view\":\\{\"count\":\"1\",\"url\":\"([^\"]*)\"\\}", options = setOf(RegexOption.IGNORE_CASE)) val videoMatch = regex.find(videoReq)?.groupValues?.get(1).toString() val videoUrl = "$videoMatch/0p/$vidIdEnc.m3u8?double_encode=1" diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ContentXExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ContentXExtractor.kt index dba2e926787..8e0141623aa 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ContentXExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/ContentXExtractor.kt @@ -14,7 +14,7 @@ open class ContentX : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val iSource = app.get(url, referer=extRef).text + val iSource = app.get(url, referer=extRef).text() val iExtract = Regex("""window\.openPlayer\('([^']+)'""").find(iSource)!!.groups[1]?.value ?: throw ErrorLoadingException("iExtract is null") val subUrls = mutableSetOf() @@ -32,7 +32,7 @@ open class ContentX : ExtractorApi() { ) } - val vidSource = app.get("${mainUrl}/source2.php?v=${iExtract}", referer=extRef).text + val vidSource = app.get("${mainUrl}/source2.php?v=${iExtract}", referer=extRef).text() val vidExtract = Regex("""file\":\"([^\"]+)""").find(vidSource)!!.groups[1]?.value ?: throw ErrorLoadingException("vidExtract is null") val m3uLink = vidExtract.replace("\\", "") @@ -50,7 +50,7 @@ open class ContentX : ExtractorApi() { val iDublaj = Regex(""",\"([^']+)\",\"Türkçe""").find(iSource)!!.groups[1]?.value if (iDublaj != null) { - val dublajSource = app.get("${mainUrl}/source2.php?v=${iDublaj}", referer=extRef).text + val dublajSource = app.get("${mainUrl}/source2.php?v=${iDublaj}", referer=extRef).text() val dublajExtract = Regex("""file\":\"([^\"]+)""").find(dublajSource)!!.groups[1]?.value ?: throw ErrorLoadingException("dublajExtract is null") val dublajLink = dublajExtract.replace("\\", "") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt index db6db39d588..3e10ac94549 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Dailymotion.kt @@ -34,7 +34,7 @@ open class Dailymotion : ExtractorApi() { val id = getVideoId(embedUrl) ?: return val metaDataUrl = "$baseUrl/player/metadata/video/$id" - val response = app.get(metaDataUrl, referer = embedUrl).text + val response = app.get(metaDataUrl, referer = embedUrl).text() val gson = Gson() val meta = gson.fromJson(response, MetaData::class.java) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt index 12bc5a0c53d..ae6eeba0f28 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/DoodExtractor.kt @@ -109,7 +109,7 @@ open class DoodLaExtractor : ExtractorApi() { val embedUrl = url.replace("/d/", "/e/") val req = app.get(embedUrl) val host = getBaseUrl(req.url) - val response0 = req.text + val response0 = req.text() val md5 = host + (Regex("/pass_md5/[^']*").find(response0)?.value ?: return) val trueUrl = app.get(md5, referer = req.url).text + createHashTable() + "?token=" + md5.substringAfterLast("/") val quality = Regex("\\d{3,4}p") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Embedgram.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Embedgram.kt index 253f2b18311..6bb1f6941b7 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Embedgram.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Embedgram.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getQualityFromName @@ -20,7 +19,7 @@ open class Embedgram : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val document = app.get(url, referer = referer).ksoupDocument + val document = app.get(url, referer = referer).document() val link = document.select("video source:last-child").attr("src") val quality = document.select("video source:last-child").attr("title") callback.invoke( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/EmturbovidExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/EmturbovidExtractor.kt index d4297129db2..6d684e52d01 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/EmturbovidExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/EmturbovidExtractor.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLinkType @@ -17,7 +16,7 @@ open class EmturbovidExtractor : ExtractorApi() { val response = app.get( url, referer = referer ?: "$mainUrl/" ) - val playerScript = response.ksoupDocument + val playerScript = response.document() .select("script:contains(var urlPlay)") .html() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Evolaod.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Evolaod.kt index 8fc71e55b78..e3cca0d1d81 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Evolaod.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Evolaod.kt @@ -17,10 +17,10 @@ open class Evoload : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List { val id = url.replace("https://evoload.io/e/", "") // wanted media id - val csrv_token = app.get("https://csrv.evosrv.com/captcha?m412548=").text // whatever that is - val captchaPass = app.get("https://cd2.evosrv.com/html/jsx/e.jsx").text.take(300).split("captcha_pass = '")[1].split("\'")[0] //extract the captcha pass from the js response (located in the 300 first chars) + val csrv_token = app.get("https://csrv.evosrv.com/captcha?m412548=").text() // whatever that is + val captchaPass = app.get("https://cd2.evosrv.com/html/jsx/e.jsx").text().take(300).split("captcha_pass = '")[1].split("\'")[0] //extract the captcha pass from the js response (located in the 300 first chars) val payload = mapOf("code" to id, "csrv_token" to csrv_token, "pass" to captchaPass) - val r = app.post("https://evoload.io/SecurePlayer", data=(payload)).text + val r = app.post("https://evoload.io/SecurePlayer", data=(payload)).text() val link = Regex("src\":\"(.*?)\"").find(r)?.destructured?.component1() ?: return listOf() return listOf( newExtractorLink( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Fastream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Fastream.kt index 4810f8372ea..9802917e85b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Fastream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Fastream.kt @@ -4,7 +4,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.amap import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getAndUnpack @@ -31,9 +30,9 @@ open class Fastream : ExtractorApi() { "file_code" to id, "auto" to "1" ) - ).ksoupDocument + ).document() } else { - app.get(url, referer = url).ksoupDocument + app.get(url, referer = url).document() } response.select("script").amap { script -> if (getPacked(script.data()) != null) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filegram.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filegram.kt index 2bb05f52d78..4a37f417906 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filegram.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filegram.kt @@ -5,7 +5,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getAndUnpack @@ -33,7 +32,7 @@ open class Filegram : ExtractorApi() { "user-agent" to USER_AGENT, ) - val doc = app.get(getEmbedUrl(url), referer = referer).ksoupDocument + val doc = app.get(getEmbedUrl(url), referer = referer).document() val unpackedJs = unpackJs(doc).toString() JwPlayerHelper.extractStreamLinks(unpackedJs, name, mainUrl, callback, subtitleCallback, headers = header) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt index df5e7f794e4..338a2c38cb1 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filemoon.kt @@ -4,7 +4,6 @@ import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.network.WebViewResolver import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -48,10 +47,10 @@ open class FilemoonV2 : ExtractorApi() { ) val initialResponse = app.get(url, defaultHeaders) - val iframeSrcUrl = initialResponse.ksoupDocument.selectFirst("iframe")?.attr("src") + val iframeSrcUrl = initialResponse.document().selectFirst("iframe")?.attr("src") if (iframeSrcUrl.isNullOrEmpty()) { - val fallbackScriptData = initialResponse.ksoupDocument + val fallbackScriptData = initialResponse.document() .selectFirst("script:containsData(function(p,a,c,k,e,d))") ?.data().orEmpty() val unpackedScript = JsUnpacker(fallbackScriptData).unpack() @@ -75,7 +74,7 @@ open class FilemoonV2 : ExtractorApi() { val iframeHeaders = defaultHeaders + ("Accept-Language" to "en-US,en;q=0.5") val iframeResponse = app.get(iframeSrcUrl, headers = iframeHeaders) - val iframeScriptData = iframeResponse.ksoupDocument + val iframeScriptData = iframeResponse.document() .selectFirst("script:containsData(function(p,a,c,k,e,d))") ?.data().orEmpty() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt index a3e4f619a2a..4bdd92435f0 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Filesim.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* import com.lagradost.api.Log import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper @@ -61,7 +60,7 @@ open class Filesim : ExtractorApi() { val embedUrl = url.replace("/download/", "/e/") var pageResponse = app.get(embedUrl, referer = referer) - val iframeElement = pageResponse.ksoupDocument.selectFirst("iframe") + val iframeElement = pageResponse.document().selectFirst("iframe") if (iframeElement != null) { val iframeUrl = iframeElement.attr("src") pageResponse = app.get( @@ -74,10 +73,10 @@ open class Filesim : ExtractorApi() { ) } - val scriptData = if (!getPacked(pageResponse.text).isNullOrEmpty()) { - getAndUnpack(pageResponse.text) + val scriptData = if (!getPacked(pageResponse.text()).isNullOrEmpty()) { + getAndUnpack(pageResponse.text()) } else { - pageResponse.ksoupDocument.selectFirst("script:containsData(sources:)")?.data() + pageResponse.document().selectFirst("script:containsData(sources:)")?.data() } val linkFound = JwPlayerHelper.extractStreamLinks(scriptData.orEmpty(), name, mainUrl, callback, subtitleCallback) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt index e0fefe8aae8..594aec00823 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GDMirrorbot.kt @@ -30,7 +30,7 @@ open class GDMirrorbot : ExtractorApi() { val (sid, host) = if (!url.contains("key=")) { Pair(url.substringAfterLast("embed/"), getBaseUrl(app.get(url).url)) } else { - var pageText = app.get(url).text + var pageText = app.get(url).text() val finalId = Regex("""FinalID\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) val myKey = Regex("""myKey\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) val idType = Regex("""idType\s*=\s*"([^"]+)"""").find(pageText)?.groupValues?.get(1) ?: "imdbid" @@ -45,7 +45,7 @@ open class GDMirrorbot : ExtractorApi() { } else { "$mainUrl/mymovieapi?$idType=$finalId&key=$myKey" } - pageText = app.get(apiUrl).text + pageText = app.get(apiUrl).text() } val jsonElement = JsonParser.parseString(pageText) @@ -63,7 +63,7 @@ open class GDMirrorbot : ExtractorApi() { } val postData = mapOf("sid" to sid) - val responseText = app.post("$host/embedhelper.php", data = postData).text + val responseText = app.post("$host/embedhelper.php", data = postData).text() val rootElement = JsonParser.parseString(responseText) if (!rootElement.isJsonObject) return diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt index 7daaa55cc94..d8029fcbfb2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GUpload.kt @@ -21,7 +21,7 @@ open class GUpload: ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val response = app.get(url, referer = referer).text + val response = app.get(url, referer = referer).text() val playerConfigEncoded = response.substringAfter("decodePayload('").substringBefore("');") val playerConfigString = base64Decode(playerConfigEncoded).substringAfter("|") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GamoVideo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GamoVideo.kt index cfa13949898..f3ca2bf6804 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GamoVideo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GamoVideo.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -19,7 +18,7 @@ open class GamoVideo : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - app.get(url, referer = referer).ksoupDocument.select("script") + app.get(url, referer = referer).document().select("script") .firstOrNull { JwPlayerHelper.canParseJwScript(it.data()) }!!.let { JwPlayerHelper.extractStreamLinks(it.data(), name, mainUrl, callback, subtitleCallback) } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt index ca284ee5e89..088f325d082 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gdriveplayer.kt @@ -75,7 +75,7 @@ open class Gdriveplayer : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val document = app.get(url).ksoupDocument + val document = app.get(url).document() val eval = unpackJs(document)?.replace("\\", "") ?: return val data = Regex("data='(\\S+?)'").first(eval) ?: return diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt index ced827eecb7..02e27a9bfea 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Gofile.kt @@ -27,7 +27,7 @@ open class Gofile : ExtractorApi() { "$mainApi/accounts", ).parsedSafe()?.data?.token ?: return - val globalRes = app.get("$mainUrl/dist/js/config.js").text + val globalRes = app.get("$mainUrl/dist/js/config.js").text() val wt = Regex("""appdata\.wt\s*=\s*[\"']([^\"']+)[\"']""").find(globalRes)?.groupValues?.get(1) ?: return val headers = mapOf( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GoodstreamExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GoodstreamExtractor.kt index 523e1f0f1ee..b30bc459202 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GoodstreamExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/GoodstreamExtractor.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -19,7 +18,7 @@ class GoodstreamExtractor : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - app.get(url).ksoupDocument.select("script").map { script -> + app.get(url).document().select("script").map { script -> if (script.data().contains(Regex("file|player"))) { val urlRegex = Regex("file: \"(https:\\/\\/[a-z0-9.\\/-_?=&]+)\",") urlRegex.find(script.data())?.groupValues?.get(1).let { link -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt index ea6fba73b85..bed860a7ed3 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HDMomPlayerExtractor.kt @@ -18,7 +18,7 @@ open class HDMomPlayer : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val m3uLink:String? val extRef = referer ?: "" - val iSource = app.get(url, referer=extRef).text + val iSource = app.get(url, referer=extRef).text() val bePlayer = Regex("""bePlayer\('([^']+)',\s*'(\{[^\}]+\})'\);""").find(iSource)?.groupValues if (bePlayer != null) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt index 624cbacbff6..8ba7da8de1c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/HubCloud.kt @@ -4,7 +4,6 @@ import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.amap import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -34,7 +33,7 @@ class HubCloud : ExtractorApi() { if ("hubcloud.php" in realUrl) { realUrl } else { - val rawHref = app.get(realUrl).ksoupDocument.select("#download").attr("href") + val rawHref = app.get(realUrl).document().select("#download").attr("href") if (rawHref.startsWith("http", ignoreCase = true)) { rawHref } else { @@ -51,7 +50,7 @@ class HubCloud : ExtractorApi() { return } - val document = app.get(href).ksoupDocument + val document = app.get(href).document() val size = document.selectFirst("i#size")?.text().orEmpty() val header = document.selectFirst("div.card-header")?.text().orEmpty() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Hxfile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Hxfile.kt index a01ace15fde..ec75273fe6a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Hxfile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Hxfile.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* class Neonime7n : Hxfile() { @@ -46,7 +45,7 @@ open class Hxfile : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val document = app.get(url, allowRedirects = redirect, referer = referer).ksoupDocument + val document = app.get(url, allowRedirects = redirect, referer = referer).document() with(document) { this.select("script").map { script -> if (getPacked(script.data()) != null) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/InternetArchive.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/InternetArchive.kt index 358819b4e12..324792ed42f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/InternetArchive.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/InternetArchive.kt @@ -5,7 +5,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.newSubtitleFile -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -35,7 +34,7 @@ open class InternetArchive : ExtractorApi() { ) { val document = archivedItems[url] ?: run { try { - val doc = app.get(url).ksoupDocument + val doc = app.get(url).document() archivedItems[url] = doc doc } catch (e: Exception) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/JWPlayer.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/JWPlayer.kt index d3b8ae60595..cdb2a0a73e8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/JWPlayer.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/JWPlayer.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -61,7 +60,7 @@ open class JWPlayer : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val script = app.get(url).ksoupDocument.selectFirst("script:containsData(sources:)") ?: return + val script = app.get(url).document().selectFirst("script:containsData(sources:)") ?: return JwPlayerHelper.extractStreamLinks(script.data(), name, mainUrl, callback, subtitleCallback) } } \ No newline at end of file diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt index fee9ebd6493..c9a9aadae2f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Jeniusplay.kt @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper @@ -22,7 +21,7 @@ open class Jeniusplay : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val document = app.get(url, referer = "$mainUrl/").ksoupDocument + val document = app.get(url, referer = "$mainUrl/").document() val hash = url.split("/").last().substringAfter("data=") val m3uLink = app.post( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Krakenfiles.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Krakenfiles.kt index 36c1606564e..56f12a3dad6 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Krakenfiles.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Krakenfiles.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -21,7 +20,7 @@ open class Krakenfiles : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { val id = Regex("/(?:view|embed-video)/([\\da-zA-Z]+)").find(url)?.groupValues?.get(1) - val doc = app.get("$mainUrl/embed-video/$id").ksoupDocument + val doc = app.get("$mainUrl/embed-video/$id").document() val link = doc.selectFirst("source")?.attr("src") callback.invoke( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt index 6cfeecd6a71..6d92bb40a78 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/LuluStream.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -43,7 +42,7 @@ open class LuluStream : ExtractorApi() { "auto" to "1", "referer" to (referer ?: "") ) - ).ksoupDocument + ).document() post.selectFirst("script:containsData(vplayer)")?.data() ?.let { script -> JwPlayerHelper.extractStreamLinks(script, name, mainUrl, callback, subtitleCallback) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Maxstream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Maxstream.kt index 51b0827d207..371d3ebaea2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Maxstream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Maxstream.kt @@ -10,7 +10,7 @@ open class Maxstream : ExtractorApi() { override val requiresReferer = false override suspend fun getUrl(url: String, referer: String?): List? { val extractedLinksList: MutableList = mutableListOf() - val response = app.get(url).text + val response = app.get(url).text() val jstounpack = Regex("cript\">eval((.|\\n)*?)").find(response)?.groups?.get(1)?.value val unpacjed = JsUnpacker(jstounpack).unpack() val extractedUrl = unpacjed?.let { Regex("""src:"((.|\n)*?)",type""").find(it) }?.groups?.get(1)?.value.toString() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mediafire.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mediafire.kt index fd0fc7e4cc4..495a5832107 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mediafire.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mediafire.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.INFER_TYPE @@ -20,7 +19,7 @@ open class Mediafire : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val res = app.get(url, referer = referer).ksoupDocument + val res = app.get(url, referer = referer).document() val title = res.select("div.dl-btn-label").text() val video = res.selectFirst("a#downloadButton")?.attr("href") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Moviehab.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Moviehab.kt index 150867cd646..63c5bf6e522 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Moviehab.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Moviehab.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.newSubtitleFile import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -24,7 +23,7 @@ open class Moviehab : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { val res = app.get(url) - res.ksoupDocument.select("video#player").let { + res.document().select("video#player").let { //should redirect first for making it works val link = app.get("$mainUrl/${it.select("source").attr("src")}", referer = url).url M3u8Helper.generateM3u8( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mvidoo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mvidoo.kt index 76f14d33bc8..77a464cc193 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mvidoo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Mvidoo.kt @@ -27,7 +27,7 @@ open class Mvidoo : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val document = app.get(url, referer = referer).text + val document = app.get(url, referer = referer).text() val data = Regex("""\{var\s*[^\s]+\s*=\s*(\[[^]]+])""").find(document)?.groupValues?.get(1) ?.removeSurrounding("[", "]")?.replace("\"", "")?.replace("\\x", "")?.split(",")?.map { it.decodeHex() }?.reversed()?.joinToString("") ?: return Regex("source\\s*src=\"([^\"]+)").find(data)?.groupValues?.get(1)?.let { link -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt index 8af77c1dfc6..8f1b8fbc7c4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/OdnoklassnikiExtractor.kt @@ -30,7 +30,7 @@ open class Odnoklassniki : ExtractorApi() { "User-Agent" to USER_AGENT, ) val embedUrl = url.replace("/video/","/videoembed/") - val videoReq = app.get(embedUrl, headers=headers).text.replace("\\"", "\"").replace("\\\\", "\\") + val videoReq = app.get(embedUrl, headers=headers).text().replace("\\"", "\"").replace("\\\\", "\\") .replace(Regex("\\\\u([0-9A-Fa-f]{4})")) { matchResult -> Integer.parseInt(matchResult.groupValues[1], 16).toChar().toString() } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt index f96387d75c1..4efd20589be 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PeaceMakerstExtractor.kt @@ -30,8 +30,8 @@ open class PeaceMakerst : ExtractorApi() { "X-Requested-With" to "XMLHttpRequest" ) ) - if (response.text.contains("teve2.com.tr\\/embed\\/")) { - val teve2Id = response.text.substringAfter("teve2.com.tr\\/embed\\/").substringBefore("\"") + if (response.text().contains("teve2.com.tr\\/embed\\/")) { + val teve2Id = response.text().substringAfter("teve2.com.tr\\/embed\\/").substringBefore("\"") val teve2Response = app.get( "https://www.teve2.com.tr/action/media/${teve2Id}", referer = "https://www.teve2.com.tr/embed/${teve2Id}" diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt index 9211630b0e4..a5ecfb5d83a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayLtXyz.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.api.Log import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson @@ -22,7 +21,7 @@ open class PlayLtXyz: ExtractorApi() { var idUser = "" var idFile = "" var bodyText = "" - val doc = app.get(url, referer = referer).ksoupDocument + val doc = app.get(url, referer = referer).document() //Log.i(this.name, "Result => (url, script) $url / ${doc.select("script")}") bodyText = doc.select("script").firstOrNull { val text = it.toString() @@ -56,7 +55,7 @@ open class PlayLtXyz: ExtractorApi() { val data = app.post(posturl, headers = ajaxHead, data = ajaxData) //Log.i(this.name, "Result => (posturl) $posturl") if (data.isSuccessful) { - val itemstr = data.text + val itemstr = data.text() Log.i(this.name, "Result => (data) $itemstr") tryParseJson(itemstr)?.let { item -> val linkUrl = item.data ?: "" diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayerVoxzer.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayerVoxzer.kt index 950dbfef6c9..6b808d472d4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayerVoxzer.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/PlayerVoxzer.kt @@ -13,7 +13,7 @@ open class PlayerVoxzer : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List? { val listurl = url.replace("/view/","/list/") - val urltext = app.get(listurl, referer = url).text + val urltext = app.get(listurl, referer = url).text() val m3u8regex = Regex("((https:|http:)\\/\\/.*\\.m3u8)") val sources = mutableListOf() val listm3 = m3u8regex.find(urltext)?.value diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt index 98598dd2865..a266fed8e66 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Rabbitstream.kt @@ -44,7 +44,7 @@ class Megacloud : Rabbitstream() { } private suspend fun getKeys(): List> { - val script = app.get(scriptUrl).text + val script = app.get(scriptUrl).text() fun matchingKey(value: String): String { return Regex(",$value=((?:0x)?([0-9a-fA-F]+))").find(script)?.groupValues?.get(1) ?.removePrefix("0x") ?: throw ErrorLoadingException("Failed to match the key") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/RapidVidExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/RapidVidExtractor.kt index 9654e5f3805..b1051d5a995 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/RapidVidExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/RapidVidExtractor.kt @@ -13,7 +13,7 @@ open class RapidVid : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val videoReq = app.get(url, referer=extRef).text + val videoReq = app.get(url, referer=extRef).text() val subUrls = mutableSetOf() Regex("""captions\",\"file\":\"([^\"]+)\",\"label\":\"([^\"]+)\"""").findAll(videoReq).forEach { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SBPlay.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SBPlay.kt index 402d910318c..8a62f1699ba 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SBPlay.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SBPlay.kt @@ -24,7 +24,7 @@ open class SBPlay : ExtractorApi() { override val requiresReferer = false override suspend fun getUrl(url: String, referer: String?): List { - val response = app.get(url, referer = referer).text + val response = app.get(url, referer = referer).text() val document = Ksoup.parse(response) val links = ArrayList() @@ -39,7 +39,7 @@ open class SBPlay : ExtractorApi() { val mode = it.groupValues[2] val hash = it.groupValues[3] val href = "https://sbplay.one/dl?op=download_orig&id=$id&mode=$mode&hash=$hash" - val hrefResponse = app.get(href).text + val hrefResponse = app.get(href).text() app.post( "https://sbplay.one/?op=notifications&open=&_=$unixTimeMS", referer = href diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SecvideoOnline.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SecvideoOnline.kt index e06133766aa..daf75b993ad 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SecvideoOnline.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SecvideoOnline.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.newSubtitleFile import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -25,7 +24,7 @@ open class SecvideoOnline : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val doc = app.get(url, referer = referer).ksoupDocument + val doc = app.get(url, referer = referer).document() for (script in doc.select("script")) { val files = fileListRegex.findAll(script.data()) .mapNotNull { it.groupValues.getOrNull(1)?.split(",") } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Sendvid.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Sendvid.kt index 3b4d77b3ccb..9791a755545 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Sendvid.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Sendvid.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.M3u8Helper.Companion.generateM3u8 open class Sendvid : ExtractorApi() { @@ -16,7 +15,7 @@ open class Sendvid : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val doc = app.get(url).ksoupDocument + val doc = app.get(url).document() val urlString = doc.select("head meta[property=og:video:secure_url]").attr("content") if (urlString.contains("m3u8")) { generateM3u8( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SibNetExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SibNetExtractor.kt index 4c28549e576..314e3a58fd0 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SibNetExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SibNetExtractor.kt @@ -13,7 +13,7 @@ open class SibNet : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val iSource = app.get(url, referer=extRef).text + val iSource = app.get(url, referer=extRef).text() var m3uLink = Regex("""player.src\(\[\{src: \"([^\"]+)""").find(iSource)?.groupValues?.get(1) ?: throw ErrorLoadingException("m3u link not found") m3uLink = "${mainUrl}${m3uLink}" diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt index be95940e0c1..1ac5a104fe2 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/SobreatsesuypExtractor.kt @@ -14,7 +14,7 @@ open class Sobreatsesuyp : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val videoReq = app.get(url, referer = extRef).text + val videoReq = app.get(url, referer = extRef).text() val file = Regex("""file\":\"([^\"]+)""").find(videoReq)?.groupValues?.get(1) ?: throw ErrorLoadingException("File not found") val postLink = "${mainUrl}/" + file.replace("\\", "") @@ -31,7 +31,7 @@ open class Sobreatsesuyp : ExtractorApi() { for (item in postJson) { if (item.file == null || item.title == null) continue - val videoData = app.post("${mainUrl}/playlist/${item.file.substring(1)}.txt", referer = extRef).text + val videoData = app.post("${mainUrl}/playlist/${item.file.substring(1)}.txt", referer = extRef).text() callback.invoke( newExtractorLink( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt index c89f4d226cb..7b2846d6bbf 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamEmbed.kt @@ -19,7 +19,7 @@ open class StreamEmbed : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val jsonString = app.get(url, referer = mainUrl).text + val jsonString = app.get(url, referer = mainUrl).text() .substringAfter("var video = ").substringBefore(";") val video = parseJson
(jsonString) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSilk.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSilk.kt index eac262d4a59..b78e7341eca 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSilk.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamSilk.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* open class StreamSilk : ExtractorApi() { @@ -19,7 +18,7 @@ open class StreamSilk : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { val response = app.get(url, headers = mapOf("Accept" to "*/*")) - response.ksoupDocument.select("script").firstOrNull { + response.document().select("script").firstOrNull { it.html().contains("h,u,n,t,e,r") }?.html()?.let { hunted -> JsHunter(hunted).dehunt()?.let { script -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt index 417497d3de6..2da73553e2f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamTape.kt @@ -1,7 +1,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -32,7 +31,7 @@ open class StreamTape : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List? { with(app.get(url)) { var result = - this.ksoupDocument.select("script").firstOrNull { it.html().contains("botlink').innerHTML") } + this.document().select("script").firstOrNull { it.html().contains("botlink').innerHTML") } ?.html()?.lines()?.firstOrNull{ it.contains("botlink').innerHTML") }?.let { val scriptContent = it.substringAfter(").innerHTML").replaceFirst("=", "var url =") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt index 54e21fcb6f8..d17ede00b54 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamWishExtractor.kt @@ -5,7 +5,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper @@ -173,12 +172,12 @@ open class StreamWishExtractor : ExtractorApi() { val pageResponse = app.get(resolveEmbedUrl(url), referer = referer) val playerScriptData = when { - !getPacked(pageResponse.text).isNullOrEmpty() -> getAndUnpack(pageResponse.text) - pageResponse.ksoupDocument.select("script").any { it.html().contains("jwplayer(\"vplayer\").setup(") } -> - pageResponse.ksoupDocument.select("script").firstOrNull { + !getPacked(pageResponse.text()).isNullOrEmpty() -> getAndUnpack(pageResponse.text()) + pageResponse.document().select("script").any { it.html().contains("jwplayer(\"vplayer\").setup(") } -> + pageResponse.document().select("script").firstOrNull { it.html().contains("jwplayer(\"vplayer\").setup(") }?.html() - else -> pageResponse.ksoupDocument.selectFirst("script:containsData(sources:)")?.data() + else -> pageResponse.document().selectFirst("script:containsData(sources:)")?.data() } val linkFound = JwPlayerHelper.extractStreamLinks(playerScriptData.orEmpty(), name, mainUrl, callback, subtitleCallback, headers) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamhub.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamhub.kt index 611711e39b9..47add4498fa 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamhub.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamhub.kt @@ -20,7 +20,7 @@ open class Streamhub : ExtractorApi() { } override suspend fun getUrl(url: String, referer: String?): List? { - val response = app.get(url).text + val response = app.get(url).text() Regex("eval((.|\\n)*?)").find(response)?.groupValues?.get(1)?.let { jsEval -> JsUnpacker("eval$jsEval").unpack()?.let { unPacked -> Regex("sources:\\[\\{src:\"(.*?)\"").find(unPacked)?.groupValues?.get(1)?.let { link -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamoUpload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamoUpload.kt index 833f30264e9..58b2a8dbb59 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamoUpload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/StreamoUpload.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getAndUnpack @@ -21,7 +20,7 @@ open class StreamoUpload : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { val response = app.get(url, referer = referer) - response.ksoupDocument.select("script").map { script -> + response.document().select("script").map { script -> if (getPacked(script.data()) != null) { val data = getAndUnpack(script.data()) JwPlayerHelper.extractStreamLinks(data, name, mainUrl, callback, subtitleCallback) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt index c84432f5b37..639eec33584 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Streamplay.kt @@ -5,7 +5,6 @@ import com.lagradost.cloudstream3.APIHolder.getCaptchaToken import com.lagradost.cloudstream3.ErrorLoadingException import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import java.net.URI @@ -28,7 +27,7 @@ open class Streamplay : ExtractorApi() { } val key = redirectUrl.substringAfter("embed-").substringBefore(".html") val token = - request.ksoupDocument.select("script").find { it.data().contains("sitekey:") }?.data() + request.document().select("script").find { it.data().contains("sitekey:") }?.data() ?.substringAfterLast("sitekey: '")?.substringBefore("',")?.let { captchaKey -> getCaptchaToken( redirectUrl, @@ -46,7 +45,7 @@ open class Streamplay : ExtractorApi() { "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "Content-Type" to "application/x-www-form-urlencoded" ) - ).ksoupDocument.select("script").find { script -> + ).document().select("script").find { script -> script.data().contains("eval(function(p,a,c,k,e,d)") }?.let { val data = getAndUnpack(it.data()).substringAfter("sources=[").substringBefore(",desc") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Supervideo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Supervideo.kt index 5e47dd2decf..5e321b217b4 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Supervideo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Supervideo.kt @@ -18,7 +18,7 @@ open class Supervideo : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val response = app.get(url).text + val response = app.get(url).text() val jstounpack = Regex("eval((.|\\n)*?)").find(response)?.groups?.get(1)?.value val unpacked = JsUnpacker(jstounpack).unpack() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt index 1348f74d501..1345da96cdf 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/TRsTXExtractor.kt @@ -15,7 +15,7 @@ open class TRsTX : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val videoReq = app.get(url, referer=extRef).text + val videoReq = app.get(url, referer=extRef).text() val file = Regex("""file\":\"([^\"]+)""").find(videoReq)?.groupValues?.get(1) ?: throw ErrorLoadingException("File not found") val postLink = "${mainUrl}/" + file.replace("\\", "") @@ -35,7 +35,7 @@ open class TRsTX : ExtractorApi() { if (item.file == null || item.title == null) continue val fileUrl = "${mainUrl}/playlist/" + item.file.substring(1) + ".txt" - val videoData = app.post(fileUrl, referer=extRef).text + val videoData = app.post(fileUrl, referer=extRef).text() if (videoData in vidLinks) { continue } vidLinks.add(videoData) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt index 4e330d1a77a..2ac30d2c69b 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Tantifilm.kt @@ -27,7 +27,7 @@ open class Tantifilm : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List? { val link = "$mainUrl/api/source/${url.substringAfterLast("/")}" - val response = app.post(link).text.replace("""\""","") + val response = app.post(link).text().replace("""\""","") val jsonvideodata = parseJson(response) return jsonvideodata.data.map { newExtractorLink( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Up4Stream.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Up4Stream.kt index bfcc227855c..ec85acdb946 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Up4Stream.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Up4Stream.kt @@ -4,7 +4,6 @@ import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.JsUnpacker @@ -30,7 +29,7 @@ open class Up4Stream : ExtractorApi() { // redirect from "wait 5 seconds" page to actual movie page val redirectResponse = app.get(url, cookies = mapOf("id" to movieId)) - val redirectForm = redirectResponse.ksoupDocument.selectFirst("form[method=POST]") ?: return + val redirectForm = redirectResponse.document().selectFirst("form[method=POST]") ?: return val redirectUrl = fixUrl(redirectForm.attr("action")) val redirectParams = redirectForm.select("input[type=hidden]").associate { input -> input.attr("name") to input.attr("value") @@ -38,7 +37,7 @@ open class Up4Stream : ExtractorApi() { // wait for 5 seconds, otherwise the below md5 hash is invalid delay(5000) - val response = app.post(redirectUrl, data = redirectParams).ksoupDocument + val response = app.post(redirectUrl, data = redirectParams).document() // starting here, this works similar to many other extractors like StreamWish val extractedpack = diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt index 09e47d037dd..098572dab8d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/UpstreamExtractor.kt @@ -18,7 +18,7 @@ open class UpstreamExtractor : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { //Log.i(this.name, "Result => (no extractor) ${url}") - val doc = app.get(url, referer = referer).text + val doc = app.get(url, referer = referer).text() if (doc.isNotBlank()) { var reg = Regex("(?<=master)(.*)(?=hls)") val result = reg.find(doc)?.groupValues?.map { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt index 471801e02f1..9ef3ce5ba5f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userload.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.* import org.mozilla.javascript.Context import org.mozilla.javascript.EvaluatorException @@ -89,11 +88,11 @@ open class Userload : ExtractorApi() { val extractedLinksList: MutableList = mutableListOf() - val response = app.get(url).text + val response = app.get(url).text() val jsToUnpack = Regex("ext/javascript\">eval((.|\\n)*?)").find(response)?.groups?.get(1)?.value val unpacked = JsUnpacker(jsToUnpack).unpack() val videoJs = app.get("$mainUrl/api/assets/userload/js/videojs.js") - val videoJsToDecode = videoJs.text + val videoJsToDecode = videoJs.text() val values = decodeVideoJs(videoJsToDecode) val morocco = unpacked!!.split(";").filter { it.contains(values[0]) }[0].split("=")[1].drop(1).dropLast(1) val mycountry = unpacked.split(";").filter { it.contains(values[1]) }[0].split("=")[1].drop(1).dropLast(1) @@ -101,8 +100,8 @@ open class Userload : ExtractorApi() { "morocco" to morocco, "mycountry" to mycountry )) - val videoLink = videoLinkPage.text - val nameSource = app.get(url).ksoupDocument.head().selectFirst("title")!!.text() + val videoLink = videoLinkPage.text() + val nameSource = app.get(url).document().head().selectFirst("title")!!.text() extractedLinksList.add( newExtractorLink( name, diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userscloud.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userscloud.kt index 8b3776f54cb..615dd28859d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userscloud.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Userscloud.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -19,7 +18,7 @@ open class Userscloud : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val res = app.get(url).ksoupDocument + val res = app.get(url).document() val video = res.selectFirst("video#vjsplayer source")?.attr("src") val quality = res.selectFirst("div.innerTB h2 b")?.text() callback.invoke( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt index 41ae7e4fe58..f6c3002813d 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Uservideo.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.AppUtils import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -21,11 +20,11 @@ open class Uservideo : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val script = app.get(url).ksoupDocument.selectFirst("script:containsData(hosts =)")?.data() + val script = app.get(url).document().selectFirst("script:containsData(hosts =)")?.data() val host = script?.substringAfter("hosts = [\"")?.substringBefore("\"];") val servers = script?.substringAfter("servers = \"")?.substringBefore("\";") - val sources = app.get("$host/s/$servers").text.substringAfter("\"sources\":[").substringBefore("],").let { + val sources = app.get("$host/s/$servers").text().substringAfter("\"sources\":[").substringBefore("],").let { AppUtils.tryParseJson>("[$it]") } val quality = Regex("(\\d{3,4})[Pp]").find(url)?.groupValues?.getOrNull(1)?.toIntOrNull() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt index 974549fcbbb..5ff48cce827 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vicloud.kt @@ -19,7 +19,7 @@ open class Vicloud : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val id = Regex("\"apiQuery\":\"(.*?)\"").find(app.get(url).text)?.groupValues?.getOrNull(1) + val id = Regex("\"apiQuery\":\"(.*?)\"").find(app.get(url).text())?.groupValues?.getOrNull(1) app.get( "$mainUrl/api/?$id=&_=${System.currentTimeMillis()}", headers = mapOf( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt index ef3b931d901..5a0674ca313 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidHidePro.kt @@ -4,7 +4,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.getAndUnpack @@ -77,10 +76,10 @@ open class VidHidePro : ExtractorApi() { ) val response = app.get(getEmbedUrl(url), referer = referer) - val script = if (!getPacked(response.text).isNullOrEmpty()) { - getAndUnpack(response.text) + val script = if (!getPacked(response.text()).isNullOrEmpty()) { + getAndUnpack(response.text()) } else { - response.ksoupDocument.selectFirst("script:containsData(sources:)")?.data() + response.document().selectFirst("script:containsData(sources:)")?.data() } ?: return JwPlayerHelper.extractStreamLinks(script, name, mainUrl, callback, subtitleCallback, headers) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidMoxyExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidMoxyExtractor.kt index 36acf7f7ad5..871cdb4f177 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidMoxyExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidMoxyExtractor.kt @@ -13,7 +13,7 @@ open class VidMoxy : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?, subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit) { val extRef = referer ?: "" - val videoReq = app.get(url, referer=extRef).text + val videoReq = app.get(url, referer=extRef).text() val subUrls = mutableSetOf() Regex("""captions\",\"file\":\"([^\"]+)\",\"label\":\"([^\"]+)\"""").findAll(videoReq).forEach { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidStack.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidStack.kt index 846fd851db9..6e99421a0b0 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidStack.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VidStack.kt @@ -38,7 +38,7 @@ open class VidStack : ExtractorApi() { val hash = url.substringAfterLast("#").substringAfter("/") val baseurl = getBaseUrl(url) - val encoded = app.get("$baseurl/api/v1/video?id=$hash", headers = headers).text.trim() + val encoded = app.get("$baseurl/api/v1/video?id=$hash", headers = headers).text().trim() val key = "kiemtienmua911ca" val ivList = listOf("1234567890oiuytr", "0123456789abcdef") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Videa.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Videa.kt index 47840a08aad..be0a73a61da 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Videa.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Videa.kt @@ -34,9 +34,8 @@ class Videa : ExtractorApi() { val webUrl = getXmlUrl(currentUrl) { cookie -> /* no-op, cookie not used */ } ?: return val response = app.get(webUrl) - val body = response.body + val body = response.body() val rawBytes = body.bytes() - body.close() // Check if response starts with XML declaration val isXml = rawBytes.size >= 5 && @@ -75,7 +74,7 @@ class Videa : ExtractorApi() { // You tried to use a video here return null } - val html = response.text + val html = response.text() // Extract sl cookie if present response.headers["Set-Cookie"]?.let { cookieHeader -> @@ -94,7 +93,7 @@ class Videa : ExtractorApi() { // Get player page to extract tokens val playerResponse = app.get(playerUrl) - val playerHtml = playerResponse.text + val playerHtml = playerResponse.text() // Update cookie from player response playerResponse.headers["Set-Cookie"]?.let { cookieHeader -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt index 583d92322a9..fdfe23c8243 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VideoSeyredExtractor.kt @@ -20,7 +20,7 @@ open class VideoSeyred : ExtractorApi() { val videoUrl = "${mainUrl}/playlist/${videoId}.json" val responseRaw = app.get(videoUrl) - val responseList:List = jacksonObjectMapper().readValue(responseRaw.text) ?: throw ErrorLoadingException("VideoSeyred") + val responseList:List = jacksonObjectMapper().readValue(responseRaw.text()) ?: throw ErrorLoadingException("VideoSeyred") val response = responseList[0] for (track in response.tracks) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidmoly.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidmoly.kt index 3e805f91e22..15d05deac4c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidmoly.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidmoly.kt @@ -4,7 +4,6 @@ import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.USER_AGENT import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -41,7 +40,7 @@ open class Vidmoly : ExtractorApi() { else url val script = app.get(newUrl, headers = headers, referer = referer) - .ksoupDocument.select("script") + .document().select("script") .firstOrNull { it.data().contains("sources:") } ?.data() diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt index 09912ccaa9e..2a078034000 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidoza.kt @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.AppUtils import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -26,7 +25,7 @@ open class Vidoza: ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val response = app.get(url).ksoupDocument + val response = app.get(url).document() val script = response.selectFirst("script:containsData(sourcesCode)")?.data() ?: throw RuntimeException("couldn't find script containing video data") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidsonic.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidsonic.kt index 5c871b54b93..f5bf947a122 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidsonic.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vidsonic.kt @@ -32,7 +32,7 @@ class Vidsonic() : ExtractorApi() { // }; // const _0x7 = _0x2(_0x1); <-- now contains the stream URL - val response = app.get(url).text + val response = app.get(url).text() val encodedStreamUrl = response .substringAfter("const _0x1 = ") .substringBefore(";") diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt index 65fca1db1da..f490390990c 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vinovo.kt @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.APIHolder import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.Qualities @@ -29,7 +28,7 @@ open class VinovoTo : ExtractorApi() { val fixedUrl = url.replace("/d/", "/e/") val resp = app.get(fixedUrl, referer = referer) - val doc = resp.ksoupDocument + val doc = resp.document() val videoBaseUrl = doc.selectFirst("video")?.attr("data-base") ?: return val videoToken = doc.selectFirst("meta[name=token]")?.attr("content") ?: return diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VkExtractor.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VkExtractor.kt index 8e454087436..5661f5fdaa3 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VkExtractor.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/VkExtractor.kt @@ -35,7 +35,7 @@ open class VkExtractor : ExtractorApi() { "Cache-Control" to "no-cache" ) val cookie = app.get(url, headers = headers, allowRedirects = false).cookies - val response = app.get(url, headers = headers, allowRedirects = false, cookies = cookie).text + val response = app.get(url, headers = headers, allowRedirects = false, cookies = cookie).text() val listUrl = listOf("url", "dash_sep", "hls") listUrl.forEach { linkType -> diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt index ebc0ba87ab6..00ca90dc19f 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Voe.kt @@ -5,7 +5,6 @@ import com.google.gson.JsonParser import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.INFER_TYPE @@ -63,11 +62,11 @@ open class Voe : ExtractorApi() { callback: (ExtractorLink) -> Unit ) { var res = app.get(url, referer = referer) - val redirectUrl = redirectRegex.find(res.ksoupDocument.data())?.groupValues?.get(1) + val redirectUrl = redirectRegex.find(res.document().data())?.groupValues?.get(1) if (redirectUrl != null) { res = app.get(redirectUrl, referer = referer) } - val encodedString = res.ksoupDocument.selectFirst("script[type=application/json]")?.data()?.trim()?.substringAfter("[\"")?.substringBeforeLast("\"]") + val encodedString = res.document().selectFirst("script[type=application/json]")?.data()?.trim()?.substringAfter("[\"")?.substringBeforeLast("\"]") if (encodedString == null) { println("encoded string not found.") return diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vtbe.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vtbe.kt index 77b9d3f0ea9..cbff69bf7e8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vtbe.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Vtbe.kt @@ -3,7 +3,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.extractors.helper.JwPlayerHelper -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.JsUnpacker @@ -20,7 +19,7 @@ open class Vtbe : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val response = app.get(url,referer=mainUrl).ksoupDocument + val response = app.get(url,referer=mainUrl).document() val extractedpack = response.selectFirst("script:containsData(function(p,a,c,k,e,d))")?.data().toString() JsUnpacker(extractedpack).unpack()?.let { unPacked -> JwPlayerHelper.extractStreamLinks(unPacked, name, mainUrl, callback, subtitleCallback) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Wibufile.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Wibufile.kt index 61413feccba..2d5f734c0f0 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Wibufile.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Wibufile.kt @@ -19,7 +19,7 @@ open class Wibufile : ExtractorApi() { subtitleCallback: (SubtitleFile) -> Unit, callback: (ExtractorLink) -> Unit ) { - val res = app.get(url).text + val res = app.get(url).text() val video = Regex("src: ['\"](.*?)['\"]").find(res)?.groupValues?.get(1) callback.invoke( diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt index 2677f414249..cdb6deb46ed 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/YourUpload.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.fasterxml.jackson.annotation.JsonProperty import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink @@ -16,7 +15,7 @@ open class YourUpload: ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List { val sources = mutableListOf() - with(app.get(url).ksoupDocument) { + with(app.get(url).document()) { val quality = Regex("\\d{3,4}p").find(this.select("title").text())?.groupValues?.get(0) this.select("script").map { script -> if (script.data().contains("var jwplayerOptions = {")) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Zplayer.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Zplayer.kt index 3d0b5cb1fe4..5ea231ea1af 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Zplayer.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/Zplayer.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors import com.lagradost.cloudstream3.amap import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorApi import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.M3u8Helper @@ -29,7 +28,7 @@ open class ZplayerV2 : ExtractorApi() { override val requiresReferer = false override suspend fun getUrl(url: String, referer: String?): List { - val doc = app.get(url).ksoupDocument + val doc = app.get(url).document() val sources = mutableListOf() doc.select("script").map { script -> if (script.data().contains("eval(function(p,a,c,k,e,d)")) { @@ -39,7 +38,7 @@ open class ZplayerV2 : ExtractorApi() { it.value }.toList().amap { urlm3u8 -> if (urlm3u8.contains("m3u8")) { - val testurl = app.get(urlm3u8, headers = mapOf("Referer" to url)).text + val testurl = app.get(urlm3u8, headers = mapOf("Referer" to url)).text() if (testurl.contains("EXTM3U")) { M3u8Helper.generateM3u8( name, diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AsianEmbedHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AsianEmbedHelper.kt index d2dd639dca3..d62ae6b4e90 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AsianEmbedHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/AsianEmbedHelper.kt @@ -4,7 +4,6 @@ import com.lagradost.api.Log import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.amap import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.loadExtractor @@ -16,7 +15,7 @@ class AsianEmbedHelper { callback: (ExtractorLink) -> Unit ) { // Fetch links - val doc = app.get(url).ksoupDocument + val doc = app.get(url).document() val links = doc.select("div#list-server-more > ul > li.linkserver") if (!links.isNullOrEmpty()) { links.amap { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt index c7541842fe3..ce36843b352 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/GogoHelper.kt @@ -6,7 +6,6 @@ import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode import com.lagradost.cloudstream3.base64DecodeArray import com.lagradost.cloudstream3.base64Encode -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.mvvm.safe import com.lagradost.cloudstream3.mvvm.safeApiCall import com.lagradost.cloudstream3.utils.AppUtils @@ -83,7 +82,7 @@ object GogoHelper { var document: Document? = iframeDocument val foundIv = - iv ?: (document ?: app.get(iframeUrl).ksoupDocument.also { document = it }) + iv ?: (document ?: app.get(iframeUrl).document().also { document = it }) .select("""div.wrapper[class*=container]""") .attr("class").split("-").lastOrNull() ?: return@safeApiCall val foundKey = secretKey ?: getKey(base64Decode(id) + foundIv) ?: return@safeApiCall @@ -95,7 +94,7 @@ object GogoHelper { val encryptedId = cryptoHandler(id, foundIv, foundKey) val encryptRequestData = if (isUsingAdaptiveData) { // Only fetch the document if necessary - val realDocument = document ?: app.get(iframeUrl).ksoupDocument + val realDocument = document ?: app.get(iframeUrl).document() val dataEncrypted = realDocument.select("script[data-name='episode']").attr("data-value") val headers = cryptoHandler(dataEncrypted, foundIv, foundKey, false) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/VstreamhubHelper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/VstreamhubHelper.kt index 1f4a81f6890..39a23c5db49 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/VstreamhubHelper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/helper/VstreamhubHelper.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.extractors.helper import com.lagradost.cloudstream3.SubtitleFile import com.lagradost.cloudstream3.app -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.cloudstream3.utils.ExtractorLink import com.lagradost.cloudstream3.utils.ExtractorLinkType import com.lagradost.cloudstream3.utils.Qualities @@ -21,7 +20,7 @@ class VstreamhubHelper { ) { if (url.startsWith(baseUrl)) { // Fetch links - val doc = app.get(url).ksoupDocument.select("script") + val doc = app.get(url).document().select("script") doc.forEach { val innerText = it.toString() if (!innerText.isNullOrEmpty()) { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt index bbbd11a8cc5..6333674ea5a 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -1291,7 +1291,7 @@ suspend fun getPostForm(requestUrl: String, html: String): String? { "accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" ), data = mapOf("op" to op, "id" to id, "mode" to mode, "hash" to hash) - ).text + ).text() } fun ExtractorApi.fixUrl(url: String): String { diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/M3u8Helper.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/M3u8Helper.kt index 23226418b48..3766b290b96 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/M3u8Helper.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/M3u8Helper.kt @@ -128,7 +128,7 @@ object M3u8Helper2 { returnThis: Boolean = true ): List { val list = mutableListOf() - val response = app.get(m3u8.streamUrl, headers = m3u8.headers, verify = false).text + val response = app.get(m3u8.streamUrl, headers = m3u8.headers, verify = false).text() val parsed = HlsPlaylistParser.parse( m3u8.streamUrl, response, @@ -233,9 +233,8 @@ object M3u8Helper2 { val ts = allTsLinks[index] val tsResponse = app.get(ts.url, headers = headers, verify = false) - val body = tsResponse.body + val body = tsResponse.body() val tsData = body.bytes() - body.close() if (tsData.isEmpty()) throw ErrorLoadingException("no data") return if (isEncrypted) { @@ -266,7 +265,7 @@ object M3u8Helper2 { playlistStream.streamUrl, headers = playlistStream.headers, verify = false - ).text + ).text() val parsed = HlsPlaylistParser.parse(playlistStream.streamUrl, playlistResponse) if (parsed != null) { @@ -331,9 +330,8 @@ object M3u8Helper2 { encryptionIv = match[3].toByteArray() val encryptionKeyResponse = app.get(encryptionUri, headers = playlistStream.headers, verify = false) - val body = encryptionKeyResponse.body + val body = encryptionKeyResponse.body() encryptionData = body.bytes() - body.close() } else { encryptionState = false } diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/UnshortenUrl.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/UnshortenUrl.kt index 6741eb692f2..d46969f2bb8 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/UnshortenUrl.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/utils/UnshortenUrl.kt @@ -2,7 +2,6 @@ package com.lagradost.cloudstream3.utils import com.lagradost.cloudstream3.app import com.lagradost.cloudstream3.base64Decode -import com.lagradost.cloudstream3.ksoupDocument import com.lagradost.nicehttp.NiceResponse import java.net.URI import java.net.URLDecoder @@ -69,7 +68,7 @@ object ShortLink { } suspend fun unshortenAdfly(uri: String): String { - val html = app.get(uri).text + val html = app.get(uri).text() val ysmm = Regex("""var ysmm =.*;?""").find(html)!!.value if (ysmm.isNotEmpty()) { @@ -173,12 +172,12 @@ object ShortLink { } suspend fun unshortenNuovoLink(uri: String): String { - return app.get(uri, allowRedirects = true).ksoupDocument.selectFirst("a")!!.attr("href") + return app.get(uri, allowRedirects = true).document().selectFirst("a")!!.attr("href") } suspend fun unshortenUprot(uri: String): String { - val page = app.get(uri).text + val page = app.get(uri).text() Regex("""]+href="([^"]+)".*Continue""").findAll(page) .map { it.value.replace(""" @@ -194,7 +193,7 @@ object ShortLink { } suspend fun unshortenIsecure(uri: String): String { - val doc = app.get(uri).ksoupDocument + val doc = app.get(uri).document() return doc.selectFirst("iframe")?.attr("src")?.trim() ?: uri } } \ No newline at end of file