fix(en/fmovies): Update subtitle fetching (#3013)
This commit is contained in:
parent
39fba625dc
commit
40811bc0eb
@ -33,7 +33,7 @@ class VidsrcExtractor(private val client: OkHttpClient, private val headers: Hea
|
||||
).execute().parseAs<List<String>>()
|
||||
}
|
||||
|
||||
fun videosFromUrl(embedLink: String, hosterName: String, type: String = ""): List<Video> {
|
||||
fun videosFromUrl(embedLink: String, hosterName: String, type: String = "", subtitleList: List<Track> = emptyList()): List<Video> {
|
||||
val host = embedLink.toHttpUrl().host
|
||||
val apiUrl = getApiUrl(embedLink, keys)
|
||||
|
||||
@ -64,7 +64,7 @@ class VidsrcExtractor(private val client: OkHttpClient, private val headers: Hea
|
||||
data.result.sources.first().file,
|
||||
referer = "https://$host/",
|
||||
videoNameGen = { q -> hosterName + (if (type.isBlank()) "" else " - $type") + " - $q" },
|
||||
subtitleList = data.result.tracks.toTracks(),
|
||||
subtitleList = subtitleList + data.result.tracks.toTracks(),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -251,13 +251,16 @@ class FMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
|
||||
val decrypted = utils.vrfDecrypt(encrypted)
|
||||
when (name) {
|
||||
"Vidplay", "MyCloud" -> vidsrcExtractor.videosFromUrl(decrypted, name)
|
||||
"Vidplay", "MyCloud" -> {
|
||||
val subs = client.newCall(
|
||||
GET("$baseUrl/ajax/episode/subtitles/${data.id}"),
|
||||
).execute().toTracks()
|
||||
vidsrcExtractor.videosFromUrl(decrypted, name, subtitleList = subs)
|
||||
}
|
||||
"Filemoon" -> filemoonExtractor.videosFromUrl(decrypted, headers = headers)
|
||||
"Streamtape" -> {
|
||||
val subtitleList = decrypted.toHttpUrl().queryParameter("sub.info")?.let {
|
||||
client.newCall(GET(it, headers)).await().parseAs<List<FMoviesSubs>>().map { t ->
|
||||
Track(t.file, t.label)
|
||||
}
|
||||
client.newCall(GET(it, headers)).await().toTracks()
|
||||
} ?: emptyList()
|
||||
|
||||
streamtapeExtractor.videoFromUrl(decrypted, subtitleList = subtitleList)?.let(::listOf) ?: emptyList()
|
||||
@ -292,6 +295,11 @@ class FMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
return if (this == 1) "" else "${if (first) "?" else "&"}page=$this"
|
||||
}
|
||||
|
||||
private fun Response.toTracks(): List<Track> = parseAs<List<FMoviesSubs>>()
|
||||
.map { t ->
|
||||
Track(t.file, t.label)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val HOSTERS = arrayOf(
|
||||
"Vidplay",
|
||||
|
Loading…
x
Reference in New Issue
Block a user