fix(en/fmovies): Use correct action for mcloud and small tweak to filters (#2231)

This commit is contained in:
Secozzi
2023-09-21 17:40:39 +00:00
committed by GitHub
parent cf721b67cb
commit 5aee7f6e8e
4 changed files with 34 additions and 44 deletions

View File

@ -8,7 +8,7 @@ ext {
extName = 'FMovies' extName = 'FMovies'
pkgNameSuffix = 'en.fmovies' pkgNameSuffix = 'en.fmovies'
extClass = '.FMovies' extClass = '.FMovies'
extVersionCode = 7 extVersionCode = 8
libVersion = '13' libVersion = '13'
} }

View File

@ -216,13 +216,11 @@ class FMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
response.parseAs<AjaxResponse>().result, response.parseAs<AjaxResponse>().result,
) )
val hosterSelection = preferences.getStringSet(PREF_HOSTER_KEY, PREF_HOSTER_DEFAULT)!! val hosterSelection = preferences.getStringSet(PREF_HOSTER_KEY, PREF_HOSTER_DEFAULT)!!
val videoList = mutableListOf<Video>()
videoList.addAll( return document.select("ul.servers > li.server").parallelMap { server ->
document.select("ul.servers > li.server").parallelMap { server ->
runCatching { runCatching {
val name = server.text().trim() val name = server.text().trim()
if (!hosterSelection.contains(name)) return@runCatching null if (!hosterSelection.contains(name)) return@runCatching emptyList()
// Get decrypted url // Get decrypted url
val vrf = vrfHelper.getVrf(server.attr("data-link-id")) val vrf = vrfHelper.getVrf(server.attr("data-link-id"))
@ -251,15 +249,10 @@ class FMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
streamtapeExtractor.videoFromUrl(decrypted, subtitleList = subtitleList)?.let(::listOf) ?: emptyList() streamtapeExtractor.videoFromUrl(decrypted, subtitleList = subtitleList)?.let(::listOf) ?: emptyList()
} }
else -> null else -> emptyList()
} }
}.getOrNull() }.getOrElse { emptyList() }
}.filterNotNull().flatten(), }.flatten().ifEmpty { throw Exception("Failed to fetch videos") }
)
require(videoList.isNotEmpty()) { "Failed to fetch videos" }
return videoList.sort()
} }
override fun videoListSelector() = throw Exception("not used") override fun videoListSelector() = throw Exception("not used")

View File

@ -288,6 +288,7 @@ object FMoviesFilters {
) )
val SORT = arrayOf( val SORT = arrayOf(
Pair("Most relevance", "most_relevance"),
Pair("Recently updated", "recently_updated"), Pair("Recently updated", "recently_updated"),
Pair("Recently added", "recently_added"), Pair("Recently added", "recently_added"),
Pair("Release date", "release_date"), Pair("Release date", "release_date"),

View File

@ -39,7 +39,7 @@ class FMoviesHelper(private val client: OkHttpClient, private val headers: Heade
fun getVidSrc(query: String, host: String): String { fun getVidSrc(query: String, host: String): String {
val url = API_URL.newBuilder().apply { val url = API_URL.newBuilder().apply {
addPathSegment("rawVizcloud") addPathSegment(if (host == "vidstream.pro") "rawVizcloud" else "rawMcloud")
addQueryParameter("apikey", API_KEY) addQueryParameter("apikey", API_KEY)
}.build().toString() }.build().toString()
@ -52,13 +52,9 @@ class FMoviesHelper(private val client: OkHttpClient, private val headers: Heade
add("futoken", futoken) add("futoken", futoken)
}.build() }.build()
val rawURL = client.newCall( return client.newCall(
POST(url, body = body), POST(url, body = body),
).execute().parseAs<RawResponse>().rawURL ).execute().parseAs<RawResponse>().rawURL
return rawURL.toHttpUrl().newBuilder().apply {
host(host)
}.build().toString()
} }
companion object { companion object {