From 974df97f500e7bcbe06aafd14538cd4c2454099b Mon Sep 17 00:00:00 2001 From: krysanify Date: Thu, 17 Apr 2025 11:03:24 +0800 Subject: [PATCH] src(en/fmovies) dead forced to shutdown: https://torrentfreak.com/fmovies-piracy-ring-was-shut-down-by-vietnam-assisted-by-ace-240829/ owner/operator prosecuted: https://torrentfreak.com/fmovies-piracy-mastermind-confesses-authorities-confirm-prosecution-241113/ --- src/en/fmovies/build.gradle | 13 - .../fmovies/res/mipmap-hdpi/ic_launcher.png | Bin 3071 -> 0 bytes .../fmovies/res/mipmap-mdpi/ic_launcher.png | Bin 1734 -> 0 bytes .../fmovies/res/mipmap-xhdpi/ic_launcher.png | Bin 4007 -> 0 bytes .../fmovies/res/mipmap-xxhdpi/ic_launcher.png | Bin 7238 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 10188 -> 0 bytes .../animeextension/en/fmovies/FMovies.kt | 368 ------------------ .../animeextension/en/fmovies/FMoviesDto.kt | 54 --- .../en/fmovies/FMoviesFilters.kt | 304 --------------- .../animeextension/en/fmovies/FmoviesUtils.kt | 140 ------- 10 files changed, 879 deletions(-) delete mode 100644 src/en/fmovies/build.gradle delete mode 100644 src/en/fmovies/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/en/fmovies/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/en/fmovies/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/en/fmovies/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/en/fmovies/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMovies.kt delete mode 100644 src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMoviesDto.kt delete mode 100644 src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMoviesFilters.kt delete mode 100644 src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FmoviesUtils.kt diff --git a/src/en/fmovies/build.gradle b/src/en/fmovies/build.gradle deleted file mode 100644 index 3d5bb63a..00000000 --- a/src/en/fmovies/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -ext { - extName = 'FMovies' - extClass = '.FMovies' - extVersionCode = 26 -} - -apply from: "$rootDir/common.gradle" - -dependencies { - implementation(project(':lib:vidsrc-extractor')) - implementation(project(':lib:filemoon-extractor')) - implementation(project(':lib:streamtape-extractor')) -} diff --git a/src/en/fmovies/res/mipmap-hdpi/ic_launcher.png b/src/en/fmovies/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 20e890a4b48c5f9a0b5430ea372fe5def8081183..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3071 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 UaxujSO8@`>07*qoM6N<$f;FawYXATM diff --git a/src/en/fmovies/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/fmovies/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 62f3def9382c38b14a6e4581d54b3e5c0e0eb788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10188 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 diff --git a/src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMovies.kt b/src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMovies.kt deleted file mode 100644 index 9e062a7e..00000000 --- a/src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/FMovies.kt +++ /dev/null @@ -1,368 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.fmovies - -import android.app.Application -import android.content.SharedPreferences -import androidx.preference.ListPreference -import androidx.preference.MultiSelectListPreference -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource -import eu.kanade.tachiyomi.animesource.model.AnimeFilterList -import eu.kanade.tachiyomi.animesource.model.SAnime -import eu.kanade.tachiyomi.animesource.model.SEpisode -import eu.kanade.tachiyomi.animesource.model.Track -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource -import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor -import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor -import eu.kanade.tachiyomi.lib.vidsrcextractor.VidsrcExtractor -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.await -import eu.kanade.tachiyomi.network.awaitSuccess -import eu.kanade.tachiyomi.util.asJsoup -import eu.kanade.tachiyomi.util.parallelCatchingFlatMap -import eu.kanade.tachiyomi.util.parseAs -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import org.jsoup.Jsoup -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy - -class FMovies : ConfigurableAnimeSource, ParsedAnimeHttpSource() { - - override val name = "FMovies" - - override val baseUrl = "https://fmovies24.to" - - override val lang = "en" - - override val supportsLatest = true - - private val json: Json by injectLazy() - - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - - private val utils by lazy { FmoviesUtils(client, headers) } - - // ============================== Popular =============================== - - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/trending${page.toPageQuery()}", headers) - - override fun popularAnimeSelector(): String = "div.items > div.item" - - override fun popularAnimeFromElement(element: Element): SAnime = SAnime.create().apply { - element.selectFirst("div.meta a")!!.let { a -> - title = a.text() - setUrlWithoutDomain(a.attr("abs:href")) - } - - thumbnail_url = element.select("div.poster img").attr("data-src") - } - - override fun popularAnimeNextPageSelector(): String = "ul.pagination > li.active + li" - - // =============================== Latest =============================== - - override fun latestUpdatesRequest(page: Int): Request = - GET("$baseUrl/filter?keyword=&sort=recently_updated${page.toPageQuery(false)}", headers) - - override fun latestUpdatesSelector(): String = popularAnimeSelector() - - override fun latestUpdatesFromElement(element: Element): SAnime = popularAnimeFromElement(element) - - override fun latestUpdatesNextPageSelector(): String = popularAnimeNextPageSelector() - - // =============================== Search =============================== - - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { - val params = FMoviesFilters.getSearchParameters(filters) - - return GET("$baseUrl/filter?keyword=$query${params.filter}${page.toPageQuery(false)}", headers) - } - - override fun searchAnimeSelector(): String = popularAnimeSelector() - - override fun searchAnimeFromElement(element: Element): SAnime = popularAnimeFromElement(element) - - override fun searchAnimeNextPageSelector(): String = popularAnimeNextPageSelector() - - // ============================== Filters =============================== - - override fun getFilterList(): AnimeFilterList = FMoviesFilters.FILTER_LIST - - // =========================== Anime Details ============================ - - override fun animeDetailsParse(document: Document): SAnime { - val info = document.selectFirst("section#w-info > div.info")!! - val detail = info.selectFirst("div.detail") - - val descElement = info.selectFirst("div.description") - val desc = descElement?.selectFirst("div[data-name=full]")?.ownText() ?: descElement?.ownText() ?: "" - val extraInfo = detail?.select("> div")?.joinToString("\n") { it.text() } ?: "" - - val mediaTitle = info.selectFirst("h1.name")!!.text() - val mediaDetail = utils.getDetail(mediaTitle) - - return SAnime.create().apply { - title = mediaTitle - status = when (mediaDetail?.status) { - "Ended", "Released" -> SAnime.COMPLETED - "In Production" -> SAnime.LICENSED - "Canceled" -> SAnime.CANCELLED - "Returning Series" -> { - mediaDetail.nextEpisode?.let { SAnime.ONGOING } ?: SAnime.ON_HIATUS - } - else -> SAnime.UNKNOWN - } - thumbnail_url = document.selectFirst("section#w-info > div.poster img")!!.attr("src") - description = buildString { - appendLine(desc.ifBlank { mediaDetail?.overview }) - appendLine() - mediaDetail?.nextEpisode?.let { - appendLine("Next: Ep ${it.epNumber} - ${it.name}") - appendLine("Air Date: ${it.airDate}") - appendLine() - } - appendLine(extraInfo) - } - genre = detail?.let { dtl -> - dtl.select("> div:has(> div:contains(Genre:)) span").joinToString { it.text() } - } - author = detail?.let { dtl -> - dtl.select("> div:has(> div:contains(Production:)) span").joinToString { it.text() } - } - } - } - - // ============================== Episodes ============================== - - override fun episodeListRequest(anime: SAnime): Request { - val id = client.newCall(GET(baseUrl + anime.url)).execute().asJsoup() - .selectFirst("div[data-id]")!!.attr("data-id") - - val vrf = utils.vrfEncrypt(id) - val vrfHeaders = headers.newBuilder().apply { - add("Accept", "application/json, text/javascript, */*; q=0.01") - add("Host", baseUrl.toHttpUrl().host) - add("Referer", baseUrl + anime.url) - add("X-Requested-With", "XMLHttpRequest") - }.build() - - return GET("$baseUrl/ajax/episode/list/$id?vrf=$vrf", headers = vrfHeaders) - } - - override fun episodeListParse(response: Response): List { - val document = Jsoup.parse( - response.parseAs().result, - ) - val episodeList = mutableListOf() - val seasons = document.select("div.body > ul.episodes") - seasons.forEach { season -> - val seasonPrefix = if (seasons.size > 1) { - "Season ${season.attr("data-season")} " - } else { - "" - } - - season.select("li").forEach { ep -> - episodeList.add( - SEpisode.create().apply { - name = "$seasonPrefix${ep.text().trim()}".replace("Episode ", "Ep. ") - - ep.selectFirst("a")!!.let { a -> - episode_number = a.attr("data-num").toFloatOrNull() ?: 0F - url = json.encodeToString( - EpisodeInfo( - id = a.attr("data-id"), - url = "$baseUrl${a.attr("href")}", - ), - ) - } - }, - ) - } - } - - return episodeList.reversed() - } - - override fun episodeListSelector() = throw UnsupportedOperationException() - - override fun episodeFromElement(element: Element): SEpisode = throw UnsupportedOperationException() - - // ============================ Video Links ============================= - - override suspend fun getVideoList(episode: SEpisode): List