From 2509be27073f33a79ef68bdb2c424f486f1cb393 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Tue, 23 May 2023 11:41:57 +0000 Subject: [PATCH] feat(multisrc/dooplay): Convert Multimovies(en) to multisrc (#1639) * feat(multisrc/dooplay): Convert Multimovies(en) to multisrc * feat: Add MultimoviesCloud extractor * refactor: Use shared-libs when possible * refactor: General refactoration * chore: Bump version * fix: Fix NPE in episodes list page --- .../dooplay/multimovies/additional.gradle | 8 + .../res/mipmap-hdpi/ic_launcher.png | Bin .../res/mipmap-mdpi/ic_launcher.png | Bin .../res/mipmap-xhdpi/ic_launcher.png | Bin .../res/mipmap-xxhdpi/ic_launcher.png | Bin .../res/mipmap-xxxhdpi/ic_launcher.png | Bin .../dooplay/multimovies/src/Multimovies.kt | 196 ++++++++ .../multimovies/src/MultimoviesFilters.kt | 73 +++ .../src}/extractors/AutoEmbedExtractor.kt | 210 ++++----- .../extractors/MultimoviesCloudExtractor.kt | 46 ++ .../src/extractors/RabbitStreamExtractor.kt | 96 ++++ .../src}/extractors/StreamlareExtractor.kt | 28 +- .../multisrc/dooplay/DooPlayGenerator.kt | 13 +- src/en/multimovies/AndroidManifest.xml | 2 - src/en/multimovies/build.gradle | 20 - src/en/multimovies/res/web_hi_res_512.png | Bin 68792 -> 0 bytes .../en/multimovies/Multimovies.kt | 429 ------------------ .../extractors/MixDropExtractor.kt | 29 -- .../extractors/RabbitStreamExtractor.kt | 165 ------- 19 files changed, 537 insertions(+), 778 deletions(-) create mode 100644 multisrc/overrides/dooplay/multimovies/additional.gradle rename {src/en => multisrc/overrides/dooplay}/multimovies/res/mipmap-hdpi/ic_launcher.png (100%) rename {src/en => multisrc/overrides/dooplay}/multimovies/res/mipmap-mdpi/ic_launcher.png (100%) rename {src/en => multisrc/overrides/dooplay}/multimovies/res/mipmap-xhdpi/ic_launcher.png (100%) rename {src/en => multisrc/overrides/dooplay}/multimovies/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {src/en => multisrc/overrides/dooplay}/multimovies/res/mipmap-xxxhdpi/ic_launcher.png (100%) create mode 100644 multisrc/overrides/dooplay/multimovies/src/Multimovies.kt create mode 100644 multisrc/overrides/dooplay/multimovies/src/MultimoviesFilters.kt rename {src/en/multimovies/src/eu/kanade/tachiyomi/animeextension/en/multimovies => multisrc/overrides/dooplay/multimovies/src}/extractors/AutoEmbedExtractor.kt (88%) create mode 100644 multisrc/overrides/dooplay/multimovies/src/extractors/MultimoviesCloudExtractor.kt create mode 100644 multisrc/overrides/dooplay/multimovies/src/extractors/RabbitStreamExtractor.kt rename {src/en/multimovies/src/eu/kanade/tachiyomi/animeextension/en/multimovies => multisrc/overrides/dooplay/multimovies/src}/extractors/StreamlareExtractor.kt (60%) delete mode 100644 src/en/multimovies/AndroidManifest.xml delete mode 100644 src/en/multimovies/build.gradle delete mode 100644 src/en/multimovies/res/web_hi_res_512.png delete mode 100644 src/en/multimovies/src/eu/kanade/tachiyomi/animeextension/en/multimovies/Multimovies.kt delete mode 100644 src/en/multimovies/src/eu/kanade/tachiyomi/animeextension/en/multimovies/extractors/MixDropExtractor.kt delete mode 100644 src/en/multimovies/src/eu/kanade/tachiyomi/animeextension/en/multimovies/extractors/RabbitStreamExtractor.kt diff --git a/multisrc/overrides/dooplay/multimovies/additional.gradle b/multisrc/overrides/dooplay/multimovies/additional.gradle new file mode 100644 index 000000000..19ced95f5 --- /dev/null +++ b/multisrc/overrides/dooplay/multimovies/additional.gradle @@ -0,0 +1,8 @@ +dependencies { + implementation(project(':lib-streamsb-extractor')) + implementation(project(':lib-voe-extractor')) + implementation(project(':lib-dood-extractor')) + implementation(project(':lib-mixdrop-extractor')) + implementation(project(':lib-cryptoaes')) + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" +} diff --git a/src/en/multimovies/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/dooplay/multimovies/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from src/en/multimovies/res/mipmap-hdpi/ic_launcher.png rename to multisrc/overrides/dooplay/multimovies/res/mipmap-hdpi/ic_launcher.png diff --git a/src/en/multimovies/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/dooplay/multimovies/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from src/en/multimovies/res/mipmap-mdpi/ic_launcher.png rename to multisrc/overrides/dooplay/multimovies/res/mipmap-mdpi/ic_launcher.png diff --git a/src/en/multimovies/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/dooplay/multimovies/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from src/en/multimovies/res/mipmap-xhdpi/ic_launcher.png rename to multisrc/overrides/dooplay/multimovies/res/mipmap-xhdpi/ic_launcher.png diff --git a/src/en/multimovies/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/dooplay/multimovies/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from src/en/multimovies/res/mipmap-xxhdpi/ic_launcher.png rename to multisrc/overrides/dooplay/multimovies/res/mipmap-xxhdpi/ic_launcher.png diff --git a/src/en/multimovies/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/dooplay/multimovies/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from src/en/multimovies/res/mipmap-xxxhdpi/ic_launcher.png rename to multisrc/overrides/dooplay/multimovies/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/multisrc/overrides/dooplay/multimovies/src/Multimovies.kt b/multisrc/overrides/dooplay/multimovies/src/Multimovies.kt new file mode 100644 index 000000000..619e876e8 --- /dev/null +++ b/multisrc/overrides/dooplay/multimovies/src/Multimovies.kt @@ -0,0 +1,196 @@ +package eu.kanade.tachiyomi.animeextension.en.multimovies + +import androidx.preference.ListPreference +import androidx.preference.PreferenceScreen +import eu.kanade.tachiyomi.animeextension.en.multimovies.extractors.AutoEmbedExtractor +import eu.kanade.tachiyomi.animeextension.en.multimovies.extractors.MultimoviesCloudExtractor +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.FormBody +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Element + +class Multimovies : DooPlay( + "en", + "Multimovies", + "https://multimovies.tech", +) { + override val client = network.cloudflareClient + + // ============================== Popular =============================== + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/genre/anime-series/page/$page/") + + override fun popularAnimeSelector() = latestUpdatesSelector() + + override fun popularAnimeNextPageSelector() = latestUpdatesNextPageSelector() + + // ============================== Episodes ============================== + override val seasonListSelector = "div#seasons > div:not(:contains(no episodes this season))" + + override fun episodeListParse(response: Response): List { + val doc = response.use { getRealAnimeDoc(it.asJsoup()) } + val seasonList = doc.select(seasonListSelector) + return if ("/movies/" in doc.location()) { + SEpisode.create().apply { + setUrlWithoutDomain(doc.location()) + episode_number = 1F + name = episodeMovieText + }.let(::listOf) + } else if (seasonList.size < 1) { + throw Exception("The source provides ZERO episodes.") + } else { + seasonList.flatMap(::getSeasonEpisodes).reversed() + } + } + + // ============================ Video Links ============================= + override val prefQualityValues = arrayOf("1080p", "720p", "480p", "360p", "240p") + override val prefQualityEntries = arrayOf("1080", "720", "480", "360", "240") + + override fun videoListParse(response: Response): List