From 52f50292c900c9beb2f5f55200d7c5f8b8e533df Mon Sep 17 00:00:00 2001 From: hexated Date: Mon, 21 Aug 2023 17:13:07 +0700 Subject: [PATCH] sora: small fix --- .../src/main/kotlin/com/hexated/SoraExtractor.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt index 18305310..5e131676 100644 --- a/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt +++ b/SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt @@ -2320,16 +2320,17 @@ object SoraExtractor : SoraStream() { } ?: return val res = app.get(fixUrl(iframe, primewireAPI), verify = false) - val match = "var url = '(/user/servers/.*?\\?ep=.*?)';".toRegex().find(res.text) - val serverUrl = match?.groupValues?.get(1) ?: return + val serverUrl = "var url = '(/user/servers/.*?\\?ep=.*?)';".toRegex().find(res.text)?.groupValues?.get(1) ?: return val cookies = res.okhttpResponse.headers.getPrimewireCookies() val url = res.document.select("meta[property=og:url]").attr("content") val headers = mapOf("X-Requested-With" to "XMLHttpRequest") val qualities = intArrayOf(2160, 1440, 1080, 720, 480, 360) - app.get( + val serverRes = app.get( "$primewireAPI$serverUrl", cookies = cookies, referer = url, headers = headers - ).document.select("ul li").amap { el -> + ) + val key = getAndUnpack(serverRes.text).substringAfter("(key=").substringBefore(")") + serverRes.document.select("ul li").amap { el -> val server = el.attr("data-value") val encryptedData = app.get( "$url?server=$server&_=${System.currentTimeMillis()}", @@ -2337,7 +2338,7 @@ object SoraExtractor : SoraStream() { referer = url, headers = headers ).text - val json = base64Decode(encryptedData).decodePrimewireXor() + val json = base64Decode(encryptedData).decodePrimewireXor(key) val links = tryParseJson>(json) ?: return@amap links.forEach { video -> qualities.filter { it <= video.max.toInt() }.forEach {