From fdaa92e3338b517019e8df1852ecca3966ac2cbf Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 21 Nov 2022 12:38:56 -0300 Subject: [PATCH] PurayMoe: Fix video extractor (#1033) --- src/pt/puraymoe/build.gradle | 2 +- .../animeextension/pt/puraymoe/PurayMoe.kt | 63 +++++++++++++++---- .../pt/puraymoe/dto/PurayMoeDto.kt | 7 +++ 3 files changed, 60 insertions(+), 12 deletions(-) diff --git a/src/pt/puraymoe/build.gradle b/src/pt/puraymoe/build.gradle index 89aa34293..298750596 100644 --- a/src/pt/puraymoe/build.gradle +++ b/src/pt/puraymoe/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Puray.moe' pkgNameSuffix = 'pt.puraymoe' extClass = '.PurayMoe' - extVersionCode = 4 + extVersionCode = 5 libVersion = '13' } diff --git a/src/pt/puraymoe/src/eu/kanade/tachiyomi/animeextension/pt/puraymoe/PurayMoe.kt b/src/pt/puraymoe/src/eu/kanade/tachiyomi/animeextension/pt/puraymoe/PurayMoe.kt index 1b6129b80..964b975ad 100644 --- a/src/pt/puraymoe/src/eu/kanade/tachiyomi/animeextension/pt/puraymoe/PurayMoe.kt +++ b/src/pt/puraymoe/src/eu/kanade/tachiyomi/animeextension/pt/puraymoe/PurayMoe.kt @@ -7,21 +7,29 @@ import androidx.preference.PreferenceScreen import androidx.preference.SwitchPreferenceCompat import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.AnimeDto import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.EpisodeDataDto +import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.EpisodeVideoDto import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.MinimalEpisodeDto import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.SearchDto import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.SeasonInfoDto import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.SeasonListDto +import eu.kanade.tachiyomi.animeextension.pt.puraymoe.dto.VideoDto import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage 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.AnimeHttpSource import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.util.asJsoup import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.decodeFromJsonElement +import kotlinx.serialization.json.jsonObject +import kotlinx.serialization.serializer import okhttp3.Headers import okhttp3.OkHttpClient import okhttp3.Request @@ -43,7 +51,7 @@ class PurayMoe : ConfigurableAnimeSource, AnimeHttpSource() { override val supportsLatest = true - override val client: OkHttpClient = network.cloudflareClient + override val client: OkHttpClient = network.client private val json = Json { ignoreUnknownKeys = true @@ -129,25 +137,50 @@ class PurayMoe : ConfigurableAnimeSource, AnimeHttpSource() { // ============================ Video Links ============================= - override fun videoListRequest(episode: SEpisode): Request { - val url = "$API_URL/episodios/${episode.url}/m3u8" - val usePlaylist = preferences.getBoolean(PREF_USE_PLAYLIST_KEY, true) - return if (usePlaylist) GET(url) else GET("$url/mp4/") - } + override fun videoListRequest(episode: SEpisode) = + GET("$baseUrl/watch/${episode.url}") override fun videoListParse(response: Response): List