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>>()
|
).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 host = embedLink.toHttpUrl().host
|
||||||
val apiUrl = getApiUrl(embedLink, keys)
|
val apiUrl = getApiUrl(embedLink, keys)
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ class VidsrcExtractor(private val client: OkHttpClient, private val headers: Hea
|
|||||||
data.result.sources.first().file,
|
data.result.sources.first().file,
|
||||||
referer = "https://$host/",
|
referer = "https://$host/",
|
||||||
videoNameGen = { q -> hosterName + (if (type.isBlank()) "" else " - $type") + " - $q" },
|
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)
|
val decrypted = utils.vrfDecrypt(encrypted)
|
||||||
when (name) {
|
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)
|
"Filemoon" -> filemoonExtractor.videosFromUrl(decrypted, headers = headers)
|
||||||
"Streamtape" -> {
|
"Streamtape" -> {
|
||||||
val subtitleList = decrypted.toHttpUrl().queryParameter("sub.info")?.let {
|
val subtitleList = decrypted.toHttpUrl().queryParameter("sub.info")?.let {
|
||||||
client.newCall(GET(it, headers)).await().parseAs<List<FMoviesSubs>>().map { t ->
|
client.newCall(GET(it, headers)).await().toTracks()
|
||||||
Track(t.file, t.label)
|
|
||||||
}
|
|
||||||
} ?: emptyList()
|
} ?: emptyList()
|
||||||
|
|
||||||
streamtapeExtractor.videoFromUrl(decrypted, subtitleList = subtitleList)?.let(::listOf) ?: 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"
|
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 {
|
companion object {
|
||||||
private val HOSTERS = arrayOf(
|
private val HOSTERS = arrayOf(
|
||||||
"Vidplay",
|
"Vidplay",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user