This commit is contained in:
helo 2023-10-10 14:11:17 +07:00
parent e61c1b63c5
commit 5718b80f3f
3 changed files with 17 additions and 6 deletions

View File

@ -1,7 +1,7 @@
import org.jetbrains.kotlin.konan.properties.Properties
// use an integer for version numbers
version = 181
version = 182
android {
defaultConfig {

View File

@ -1031,33 +1031,41 @@ object SoraExtractor : SoraStream() {
title: String? = null,
year: Int? = null,
season: Int? = null,
lastSeason: Int? = null,
episode: Int? = null,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
invokeWpredis(title, year, season, episode, subtitleCallback, callback, dotmoviesAPI)
invokeWpredis(title, year, season, lastSeason, episode, subtitleCallback, callback, dotmoviesAPI)
}
suspend fun invokeVegamovies(
title: String? = null,
year: Int? = null,
season: Int? = null,
lastSeason: Int? = null,
episode: Int? = null,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit
) {
invokeWpredis(title, year, season, episode, subtitleCallback, callback, vegaMoviesAPI)
invokeWpredis(title, year, season, lastSeason, episode, subtitleCallback, callback, vegaMoviesAPI)
}
private suspend fun invokeWpredis(
title: String? = null,
year: Int? = null,
season: Int? = null,
lastSeason: Int? = null,
episode: Int? = null,
subtitleCallback: (SubtitleFile) -> Unit,
callback: (ExtractorLink) -> Unit,
api: String
) {
var res = app.get("$api/search/$title").document
val match = if (season == null) "$year" else "Season $season"
val match = when (season) {
null -> "$year"
1 -> "Season 1"
else -> "Season 1 $lastSeason"
}
val media =
res.selectFirst("div.blog-items article:has(h3.entry-title:matches((?i)$title.*$match)) a")
?.attr("href")
@ -1065,7 +1073,9 @@ object SoraExtractor : SoraStream() {
res = app.get(media ?: return).document
val hTag = if (season == null) "h5" else "h3"
val aTag = if (season == null) "Download Now" else "V-Cloud"
res.select("div.entry-content > $hTag:matches(1080p|2160p)").apmap {
val sTag = if (season == null) "" else "Season $season"
res.select("div.entry-content > $hTag:matches((?i)$sTag.*1080p|2160p)").
filter { element -> !element.text().contains("Download", true) }.apmap {
val tags =
"""(?:1080p|2160p)(.*)""".toRegex().find(it.text())?.groupValues?.get(1)?.trim()
val href =
@ -1090,7 +1100,6 @@ object SoraExtractor : SoraStream() {
getIndexQuality(it.text())
)
}
}
suspend fun invokePobmovies(

View File

@ -643,6 +643,7 @@ open class SoraStream : TmdbProvider() {
res.title,
res.year,
res.season,
res.lastSeason,
res.episode,
subtitleCallback,
callback
@ -653,6 +654,7 @@ open class SoraStream : TmdbProvider() {
res.title,
res.year,
res.season,
res.lastSeason,
res.episode,
subtitleCallback,
callback