From 87b10660e68013576e5af17f8ae0f7f0bb7dac1d Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 16 Oct 2023 07:40:58 -0300 Subject: [PATCH] fix(pt/hinatasoul): Fix video extractor (#2386) --- src/pt/hinatasoul/build.gradle | 2 +- .../pt/hinatasoul/HinataSoul.kt | 146 +++++++++--------- .../extractors/HinataSoulExtractor.kt | 32 ++-- 3 files changed, 93 insertions(+), 87 deletions(-) diff --git a/src/pt/hinatasoul/build.gradle b/src/pt/hinatasoul/build.gradle index e894c7df7..17ef7af82 100644 --- a/src/pt/hinatasoul/build.gradle +++ b/src/pt/hinatasoul/build.gradle @@ -7,7 +7,7 @@ ext { extName = 'Hinata Soul' pkgNameSuffix = 'pt.hinatasoul' extClass = '.HinataSoul' - extVersionCode = 3 + extVersionCode = 4 libVersion = '13' } diff --git a/src/pt/hinatasoul/src/eu/kanade/tachiyomi/animeextension/pt/hinatasoul/HinataSoul.kt b/src/pt/hinatasoul/src/eu/kanade/tachiyomi/animeextension/pt/hinatasoul/HinataSoul.kt index e36a09f9b..aa2329927 100644 --- a/src/pt/hinatasoul/src/eu/kanade/tachiyomi/animeextension/pt/hinatasoul/HinataSoul.kt +++ b/src/pt/hinatasoul/src/eu/kanade/tachiyomi/animeextension/pt/hinatasoul/HinataSoul.kt @@ -15,7 +15,6 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.Request import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element @@ -45,73 +44,32 @@ class HinataSoul : ConfigurableAnimeSource, ParsedAnimeHttpSource() { // ============================== Popular =============================== override fun popularAnimeSelector() = "div.FsssItem:contains(Mais Vistos) > a" - override fun popularAnimeRequest(page: Int): Request = GET(baseUrl) + + override fun popularAnimeRequest(page: Int) = GET(baseUrl) + override fun popularAnimeFromElement(element: Element) = SAnime.create().apply { setUrlWithoutDomain(element.attr("href")) title = element.text() } - override fun popularAnimeNextPageSelector(): String? = null - // ============================== Episodes ============================== - override fun episodeListSelector() = "div.aniContainer a" - override fun episodeListParse(response: Response): List { - var doc = getRealDoc(response.asJsoup()) - val originalUrl = doc.location() - var pageNum = 1 - val totalEpisodes = buildList { - do { - if (pageNum > 1) { - doc = client.newCall(GET(originalUrl + "/page/$pageNum")) - .execute() - .asJsoup() - } - doc.select(episodeListSelector()).forEach { - add(episodeFromElement(it)) - } - pageNum++ - } while (hasNextPage(doc)) - } - return totalEpisodes.reversed() - } + override fun popularAnimeNextPageSelector() = null - override fun episodeFromElement(element: Element) = SEpisode.create().apply { - val title = element.attr("title") + // =============================== Latest =============================== + override fun latestUpdatesRequest(page: Int) = GET(baseUrl) + + override fun latestUpdatesSelector() = + "div.tituloContainer:contains(lançamento) + div.epiContainer a" + + override fun latestUpdatesFromElement(element: Element) = SAnime.create().apply { setUrlWithoutDomain(element.attr("href")) - name = title - episode_number = title.substringAfterLast(" ").toFloatOrNull() ?: 0F - date_upload = element.selectFirst("div.lancaster_episodio_info_data")!! - .text() - .toDate() + val img = element.selectFirst("img")!! + thumbnail_url = img.attr("src") + title = img.attr("alt") } - // ============================ Video Links ============================= - override fun videoListParse(response: Response): List