From 26a6f43dce87994c75860cfc5d47f9019b60374c Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Tue, 30 May 2023 09:48:06 +0000 Subject: [PATCH] fix(de/Cinemathek): Fix popular & latest updates page, add more extractors (#1651) --- .../dooplay/cinemathek/additional.gradle | 2 + .../dooplay/cinemathek/src/Cinemathek.kt | 49 ++-- .../src/extractors/FilemoonExtractor.kt | 32 +-- .../cinemathek/src/extractors/JsUnpacker.kt | 214 ------------------ .../src/extractors/StreamHideExtractor.kt | 45 ++++ .../src/extractors/StreamlareExtractor.kt | 43 ++-- .../multisrc/dooplay/DooPlayGenerator.kt | 2 +- .../animeextension/all/jellyfin/Jellyfin.kt | 2 +- 8 files changed, 121 insertions(+), 268 deletions(-) delete mode 100644 multisrc/overrides/dooplay/cinemathek/src/extractors/JsUnpacker.kt create mode 100644 multisrc/overrides/dooplay/cinemathek/src/extractors/StreamHideExtractor.kt diff --git a/multisrc/overrides/dooplay/cinemathek/additional.gradle b/multisrc/overrides/dooplay/cinemathek/additional.gradle index 2916d9ff7..99bb3fb33 100644 --- a/multisrc/overrides/dooplay/cinemathek/additional.gradle +++ b/multisrc/overrides/dooplay/cinemathek/additional.gradle @@ -1,3 +1,5 @@ dependencies { + implementation(project(':lib-dood-extractor')) implementation(project(':lib-streamsb-extractor')) + implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1") } diff --git a/multisrc/overrides/dooplay/cinemathek/src/Cinemathek.kt b/multisrc/overrides/dooplay/cinemathek/src/Cinemathek.kt index 438a941d6..9b2af2d4a 100644 --- a/multisrc/overrides/dooplay/cinemathek/src/Cinemathek.kt +++ b/multisrc/overrides/dooplay/cinemathek/src/Cinemathek.kt @@ -4,14 +4,14 @@ import androidx.preference.ListPreference import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.de.cinemathek.extractors.FilemoonExtractor +import eu.kanade.tachiyomi.animeextension.de.cinemathek.extractors.StreamHideExtractor import eu.kanade.tachiyomi.animeextension.de.cinemathek.extractors.StreamlareExtractor import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor 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.Document @@ -26,12 +26,13 @@ class Cinemathek : DooPlay( // ============================== Popular =============================== override fun popularAnimeSelector(): String = "article.movies div.poster" - override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/movies/page/$page/") + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/filme/page/$page/") override fun popularAnimeNextPageSelector() = latestUpdatesNextPageSelector() // =============================== Latest =============================== override fun latestUpdatesNextPageSelector(): String = "#nextpagination" + override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/episoden/page/$page") // =========================== Anime Details ============================ override val additionalInfoItems = listOf("Original", "Start", "Staffeln", "letzte", "Episoden") @@ -48,27 +49,23 @@ class Cinemathek : DooPlay( val hosterSelection = preferences.getStringSet(PREF_HOSTER_SELECTION_KEY, PREF_HOSTER_SELECTION_DEFAULT)!! return players.mapNotNull { player -> runCatching { - val url = getPlayerUrl(player) + val url = getPlayerUrl(player).ifEmpty { return@mapNotNull null } getPlayerVideos(url, hosterSelection) - }.getOrDefault(emptyList