mirror of
https://github.com/hexated/cloudstream-extensions-hexated.git
synced 2024-08-15 00:03:22 +00:00
[Sora] small clean
This commit is contained in:
parent
463dd39857
commit
e986782af6
2 changed files with 42 additions and 49 deletions
|
@ -1524,58 +1524,14 @@ object SoraExtractor : SoraStream() {
|
||||||
}
|
}
|
||||||
|
|
||||||
val server = getTvMoviesServer(url, season, episode) ?: return
|
val server = getTvMoviesServer(url, season, episode) ?: return
|
||||||
|
val videoData = extractCovyn(server.second ?: return)
|
||||||
val request = session.get(server.second ?: return, referer = "$tvMoviesAPI/")
|
val quality = Regex("([0-9]{3,4})p").find(server.first)?.groupValues?.getOrNull(1)?.toIntOrNull()
|
||||||
var filehosting = session.baseClient.cookieJar.loadForRequest(url.toHttpUrl())
|
|
||||||
.find { it.name == "filehosting" }?.value
|
|
||||||
val iframe = request.document.findTvMoviesIframe()
|
|
||||||
delay(10000)
|
|
||||||
val request2 = session.get(
|
|
||||||
iframe ?: return, referer = url, headers = mapOf(
|
|
||||||
"Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
|
|
||||||
"Connection" to "keep-alive",
|
|
||||||
"Cookie" to "filehosting=$filehosting",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
filehosting = session.baseClient.cookieJar.loadForRequest(url.toHttpUrl())
|
|
||||||
.find { it.name == "filehosting" }?.value
|
|
||||||
val iframe2 = request2.document.findTvMoviesIframe()
|
|
||||||
delay(11000)
|
|
||||||
val request3 = session.get(
|
|
||||||
iframe2 ?: return, referer = iframe, headers = mapOf(
|
|
||||||
"Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
|
|
||||||
"Connection" to "keep-alive",
|
|
||||||
"Cookie" to "filehosting=$filehosting",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
filehosting = session.baseClient.cookieJar.loadForRequest(url.toHttpUrl())
|
|
||||||
.find { it.name == "filehosting" }?.value
|
|
||||||
val response = request3.document
|
|
||||||
val videoLink =
|
|
||||||
response.selectFirst("button.btn.btn--primary")?.attr("onclick")
|
|
||||||
?.substringAfter("location = '")?.substringBefore("';")?.let {
|
|
||||||
app.get(
|
|
||||||
it, referer = iframe2, headers = mapOf(
|
|
||||||
"Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
|
|
||||||
"Connection" to "keep-alive",
|
|
||||||
"Cookie" to "filehosting=$filehosting",
|
|
||||||
)
|
|
||||||
).url
|
|
||||||
}
|
|
||||||
|
|
||||||
val quality =
|
|
||||||
Regex("([0-9]{3,4})p").find(server.first)?.groupValues?.getOrNull(1)?.toIntOrNull()
|
|
||||||
val size =
|
|
||||||
response.selectFirst("ul.row--list li:contains(Filesize) span:last-child")
|
|
||||||
?.text()
|
|
||||||
|
|
||||||
callback.invoke(
|
callback.invoke(
|
||||||
ExtractorLink(
|
ExtractorLink(
|
||||||
"TVMovies [$size]",
|
"TVMovies [${videoData?.second}]",
|
||||||
"TVMovies [$size]",
|
"TVMovies [${videoData?.second}]",
|
||||||
videoLink ?: return,
|
videoData?.first ?: return,
|
||||||
"",
|
"",
|
||||||
quality ?: Qualities.Unknown.value
|
quality ?: Qualities.Unknown.value
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.hexated
|
||||||
|
|
||||||
import com.hexated.SoraStream.Companion.filmxyAPI
|
import com.hexated.SoraStream.Companion.filmxyAPI
|
||||||
import com.hexated.SoraStream.Companion.gdbot
|
import com.hexated.SoraStream.Companion.gdbot
|
||||||
|
import com.hexated.SoraStream.Companion.tvMoviesAPI
|
||||||
import com.lagradost.cloudstream3.app
|
import com.lagradost.cloudstream3.app
|
||||||
import com.lagradost.cloudstream3.base64Decode
|
import com.lagradost.cloudstream3.base64Decode
|
||||||
import com.lagradost.cloudstream3.base64Encode
|
import com.lagradost.cloudstream3.base64Encode
|
||||||
|
@ -12,6 +13,7 @@ import com.lagradost.cloudstream3.utils.Qualities
|
||||||
import com.lagradost.cloudstream3.utils.getQualityFromName
|
import com.lagradost.cloudstream3.utils.getQualityFromName
|
||||||
import com.lagradost.nicehttp.RequestBodyTypes
|
import com.lagradost.nicehttp.RequestBodyTypes
|
||||||
import com.lagradost.nicehttp.requestCreator
|
import com.lagradost.nicehttp.requestCreator
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||||
|
@ -200,6 +202,41 @@ suspend fun extractOiya(url: String, quality: String): String? {
|
||||||
?: doc.selectFirst("div.wp-block-button a")?.attr("href")
|
?: doc.selectFirst("div.wp-block-button a")?.attr("href")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun extractCovyn(url: String?): Pair<String?, String?>? {
|
||||||
|
val request = session.get(url ?: return null, referer = "${tvMoviesAPI}/")
|
||||||
|
val filehosting = session.baseClient.cookieJar.loadForRequest(url.toHttpUrl())
|
||||||
|
.find { it.name == "filehosting" }?.value
|
||||||
|
val headers = mapOf(
|
||||||
|
"Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
|
||||||
|
"Connection" to "keep-alive",
|
||||||
|
"Cookie" to "filehosting=$filehosting",
|
||||||
|
)
|
||||||
|
|
||||||
|
val iframe = request.document.findTvMoviesIframe()
|
||||||
|
delay(10500)
|
||||||
|
val request2 = session.get(
|
||||||
|
iframe ?: return null, referer = url, headers = headers
|
||||||
|
)
|
||||||
|
|
||||||
|
val iframe2 = request2.document.findTvMoviesIframe()
|
||||||
|
delay(10500)
|
||||||
|
val request3 = session.get(
|
||||||
|
iframe2 ?: return null, referer = iframe, headers = headers
|
||||||
|
)
|
||||||
|
|
||||||
|
val response = request3.document
|
||||||
|
val videoLink = response.selectFirst("button.btn.btn--primary")?.attr("onclick")
|
||||||
|
?.substringAfter("location = '")?.substringBefore("';")?.let {
|
||||||
|
app.get(
|
||||||
|
it, referer = iframe2, headers = headers
|
||||||
|
).url
|
||||||
|
}
|
||||||
|
val size = response.selectFirst("ul.row--list li:contains(Filesize) span:last-child")
|
||||||
|
?.text()
|
||||||
|
|
||||||
|
return Pair(videoLink, size)
|
||||||
|
}
|
||||||
|
|
||||||
suspend fun bypassFdAds(url: String): String? {
|
suspend fun bypassFdAds(url: String): String? {
|
||||||
val res = app.get(url).document
|
val res = app.get(url).document
|
||||||
val freeRedirect = res.selectFirst("a#link")?.attr("href")
|
val freeRedirect = res.selectFirst("a#link")?.attr("href")
|
||||||
|
|
Loading…
Reference in a new issue