From 6303b18d24720b1201a11760da953d4593166721 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:12:19 -0300 Subject: [PATCH] Fix subanimes search and video extractor (#1308) * Fix anime search without filters * Fix video extractor * Prevent timeouts * Bump version --- src/pt/subanimes/build.gradle | 2 +- .../animeextension/pt/subanimes/SubAnimes.kt | 22 +++++++++++++------ .../extractors/SubAnimesExtractor.kt | 13 ++++++----- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/pt/subanimes/build.gradle b/src/pt/subanimes/build.gradle index e89700e43..1e87b46a6 100644 --- a/src/pt/subanimes/build.gradle +++ b/src/pt/subanimes/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'SubAnimes' pkgNameSuffix = 'pt.subanimes' extClass = '.SubAnimes' - extVersionCode = 1 + extVersionCode = 2 libVersion = '13' } diff --git a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt index 9811858e6..96f80932e 100644 --- a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt +++ b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/SubAnimes.kt @@ -23,6 +23,7 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable import uy.kohesive.injekt.api.get +import java.util.concurrent.TimeUnit import kotlin.Exception class SubAnimes : ParsedAnimeHttpSource() { @@ -36,7 +37,12 @@ class SubAnimes : ParsedAnimeHttpSource() { override val supportsLatest = true - override val client: OkHttpClient = network.client + // Sometimes the site is slow. + override val client: OkHttpClient = network.client.newBuilder() + .connectTimeout(1, TimeUnit.MINUTES) + .readTimeout(1, TimeUnit.MINUTES) + .writeTimeout(1, TimeUnit.MINUTES) + .build() private val json = Json { ignoreUnknownKeys = true @@ -113,12 +119,10 @@ class SubAnimes : ParsedAnimeHttpSource() { override fun videoUrlParse(document: Document) = throw Exception("not used") // =============================== Search =============================== - // We'll be using serialization in the search system, - // so those functions won't be used. - override fun searchAnimeFromElement(element: Element) = throw Exception("not used") - override fun searchAnimeSelector() = throw Exception("not used") - override fun searchAnimeNextPageSelector() = throw Exception("not used") - override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request = throw Exception("not used") + override fun searchAnimeFromElement(element: Element) = latestUpdatesFromElement(element) + override fun searchAnimeSelector() = "div.aniItem > a" + override fun searchAnimeNextPageSelector() = latestUpdatesNextPageSelector() + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList) = GET("$baseUrl/page/$page/?s=$query") override fun getFilterList(): AnimeFilterList = SBFilters.filterList @@ -130,6 +134,10 @@ class SubAnimes : ParsedAnimeHttpSource() { .map { searchAnimeBySlugParse(it, slug) } } else { val params = SBFilters.getSearchParameters(filters) + + if (params == SBFilters.FilterSearchParams()) // no filters + return super.fetchSearchAnime(page, query, filters) + client.newCall(searchAnimeRequest(page, query, params)) .asObservableSuccess() .map { searchAnimeParse(it, page) } diff --git a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/extractors/SubAnimesExtractor.kt b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/extractors/SubAnimesExtractor.kt index c44affc8e..f89ee1f98 100644 --- a/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/extractors/SubAnimesExtractor.kt +++ b/src/pt/subanimes/src/eu/kanade/tachiyomi/animeextension/pt/subanimes/extractors/SubAnimesExtractor.kt @@ -9,25 +9,26 @@ import okhttp3.OkHttpClient class SubAnimesExtractor(private val client: OkHttpClient) { fun videoListFromUrl(url: String, player: String, headers: Headers): List