Skip to content

Commit

Permalink
sora: fi sources
Browse files Browse the repository at this point in the history
  • Loading branch information
olivia committed Feb 2, 2024
1 parent 2ea2bbb commit c57f602
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 7 deletions.
2 changes: 1 addition & 1 deletion SoraStream/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import org.jetbrains.kotlin.konan.properties.Properties

// use an integer for version numbers
version = 221
version = 222

android {
defaultConfig {
Expand Down
33 changes: 27 additions & 6 deletions SoraStream/src/main/kotlin/com/hexated/SoraExtractor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -218,10 +218,29 @@ object SoraExtractor : SoraStream() {
val req = app.get(url)
val directUrl = getBaseUrl(req.url)
req.document.select("ul.bx-lst.aa-tbs li a").apmap {
if(!it.select("span.option").text().startsWith("Gdmirrorbot")) return@apmap
val iframe = app.get(base64Decode(it.attr("data-src"))).document.selectFirst("iframe")
?.attr("src")
loadExtractor(iframe ?: return@apmap, "$directUrl/", subtitleCallback, callback)
?.attr("src") ?: return@apmap
loadExtractor(iframe, "$directUrl/", subtitleCallback) { link ->
when {
link.name == "Bestx" && link.quality == Qualities.Unknown.value -> {
callback.invoke(
ExtractorLink(
"Moviefiction",
"Moviefiction",
link.url,
link.referer,
Qualities.P1080.value,
link.type,
link.headers,
link.extractorData
)
)
}
link.name != "Bestx" -> {
callback.invoke(link)
}
}
}
}
}

Expand Down Expand Up @@ -2111,16 +2130,18 @@ object SoraExtractor : SoraStream() {
cookies = cookies,
referer = url,
headers = headers
).document
serverRes.select("ul li").apmap { el ->
)
val script = getAndUnpack(serverRes.text)
val key = """\(key\s*=\s*(\d+)\)""".toRegex().find(script)?.groupValues?.get(1) ?: return
serverRes.document.select("ul li").apmap { el ->
val server = el.attr("data-value")
val encryptedData = app.get(
"$url?server=$server&_=$unixTimeMS",
cookies = cookies,
referer = url,
headers = headers
).text
val links = encryptedData.decrypt(base64Decode("OTg="))
val links = encryptedData.decrypt(key)
links?.forEach { video ->
qualities.filter { it <= video.max.toInt() }.forEach {
callback(
Expand Down

0 comments on commit c57f602

Please sign in to comment.