From fe3ad90f3983616cfe8a3505d259b03ff861ded6 Mon Sep 17 00:00:00 2001 From: Lawrence Allen <97511605+tora-o@users.noreply.github.com> Date: Fri, 11 Aug 2023 01:53:27 +0800 Subject: [PATCH] feat(en/dramacool): Add StreamWishExtractor (#2034) --- src/en/dramacool/build.gradle | 4 +++- .../animeextension/en/dramacool/DramaCool.kt | 6 +++++ .../extractors/StreamWishExtractor.kt | 24 +++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamWishExtractor.kt diff --git a/src/en/dramacool/build.gradle b/src/en/dramacool/build.gradle index a85d7b548..dcbb53950 100644 --- a/src/en/dramacool/build.gradle +++ b/src/en/dramacool/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'DramaCool' pkgNameSuffix = 'en.dramacool' extClass = '.DramaCool' - extVersionCode = 38 + extVersionCode = 39 libVersion = '13' } @@ -13,6 +13,8 @@ dependencies { implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) + implementation(project(':lib-playlist-utils')) + implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" } apply from: "$rootDir/common.gradle" diff --git a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt index 88b028733..f2ccdcbd5 100644 --- a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt +++ b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt @@ -7,6 +7,7 @@ import androidx.preference.EditTextPreference import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.AppInfo +import eu.kanade.tachiyomi.animeextension.en.dramacool.extractors.StreamWishExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage @@ -169,6 +170,11 @@ class DramaCool : ConfigurableAnimeSource, ParsedAnimeHttpSource() { } } + url.contains("dwish") -> { + val video = StreamWishExtractor(client, headers).videosFromUrl(url) + videoList.addAll(video) + } + url.contains("streamtape") -> { val video = StreamTapeExtractor(client).videoFromUrl(url) if (video != null) { diff --git a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamWishExtractor.kt b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamWishExtractor.kt new file mode 100644 index 000000000..2420a697c --- /dev/null +++ b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamWishExtractor.kt @@ -0,0 +1,24 @@ +package eu.kanade.tachiyomi.animeextension.en.dramacool.extractors + +import dev.datlag.jsunpacker.JsUnpacker +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Headers +import okhttp3.OkHttpClient + +class StreamWishExtractor(private val client: OkHttpClient, private val headers: Headers) { + fun videosFromUrl(url: String, videoNameGen: (String) -> String = { quality -> "StreamWish - $quality" }): List