From 060f3c0ed39251f058f26dae1c992379033d7153 Mon Sep 17 00:00:00 2001 From: Nitin Dahale <43776393+ni3x@users.noreply.github.com> Date: Sat, 6 Apr 2024 00:57:06 +0530 Subject: [PATCH] fix(en/oppaistream): Fix url problem with some animes (#3131) --- src/en/oppaistream/build.gradle | 2 +- .../en/oppaistream/OppaiStream.kt | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/en/oppaistream/build.gradle b/src/en/oppaistream/build.gradle index e2a10f04f..066e08a46 100644 --- a/src/en/oppaistream/build.gradle +++ b/src/en/oppaistream/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Oppai Stream' extClass = '.OppaiStream' - extVersionCode = 3 + extVersionCode = 4 isNsfw = true } diff --git a/src/en/oppaistream/src/eu/kanade/tachiyomi/animeextension/en/oppaistream/OppaiStream.kt b/src/en/oppaistream/src/eu/kanade/tachiyomi/animeextension/en/oppaistream/OppaiStream.kt index fbbcb7257..e78dda2e1 100644 --- a/src/en/oppaistream/src/eu/kanade/tachiyomi/animeextension/en/oppaistream/OppaiStream.kt +++ b/src/en/oppaistream/src/eu/kanade/tachiyomi/animeextension/en/oppaistream/OppaiStream.kt @@ -124,7 +124,11 @@ class OppaiStream : ParsedAnimeHttpSource(), ConfigurableAnimeSource { override fun searchAnimeFromElement(element: Element) = SAnime.create().apply { thumbnail_url = element.selectFirst("img.cover-img-in")?.attr("abs:src") title = element.selectFirst(".title-ep")!!.text().replace(TITLE_CLEANUP_REGEX, "") - setUrlWithoutDomain(element.attr("href")) + setUrlWithoutDomain( + element.attr("href").replace(Regex("(?<=\\?e=)(.*?)(?=&f=)")) { + java.net.URLEncoder.encode(it.groupValues[1], "UTF-8") + }, + ) } // =========================== Anime Details ============================ @@ -162,7 +166,11 @@ class OppaiStream : ParsedAnimeHttpSource(), ConfigurableAnimeSource { add( SEpisode.create().apply { - setUrlWithoutDomain(doc.location()) + setUrlWithoutDomain( + doc.location().replace(Regex("(?<=\\?e=)(.*?)(?=&f=)")) { + java.net.URLEncoder.encode(it.groupValues[1], "UTF-8") + }, + ) val num = doc.selectFirst("div.episode-info > h1")!!.text().substringAfter(" Ep ") name = "Episode $num" episode_number = num.toFloatOrNull() ?: 1F @@ -175,7 +183,11 @@ class OppaiStream : ParsedAnimeHttpSource(), ConfigurableAnimeSource { override fun episodeListSelector() = "div.more-same-eps > div > div > a" override fun episodeFromElement(element: Element) = SEpisode.create().apply { - setUrlWithoutDomain(element.attr("href")) + setUrlWithoutDomain( + element.attr("href").replace(Regex("(?<=\\?e=)(.*?)(?=&f=)")) { + java.net.URLEncoder.encode(it.groupValues[1], "UTF-8") + }, + ) val num = element.selectFirst("font.ep")?.text() ?: "1" name = "Episode $num" episode_number = num.toFloatOrNull() ?: 1F