From 6923d87839bfc6fda26576d4f97dc13704121d7e Mon Sep 17 00:00:00 2001 From: e-shl <35057681+e-shl@users.noreply.github.com> Date: Thu, 24 Mar 2022 21:19:28 +0500 Subject: [PATCH] [RU]ComX fix selector (#11232) * [RU]ComX fix selector * Antibot --- src/ru/comx/build.gradle | 2 +- .../kanade/tachiyomi/extension/ru/comx/ComX.kt | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/ru/comx/build.gradle b/src/ru/comx/build.gradle index 5a0e93b40..db2bd43ad 100644 --- a/src/ru/comx/build.gradle +++ b/src/ru/comx/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'ComX' pkgNameSuffix = 'ru.comx' extClass = '.ComX' - extVersionCode = 15 + extVersionCode = 16 } dependencies { diff --git a/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt b/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt index fe604e7c8..9b5158715 100644 --- a/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt +++ b/src/ru/comx/src/eu/kanade/tachiyomi/extension/ru/comx/ComX.kt @@ -49,6 +49,13 @@ class ComX : ParsedHttpSource() { .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS) .addNetworkInterceptor(RateLimitInterceptor(3)) + .addNetworkInterceptor { chain -> + val originalRequest = chain.request() + val response = chain.proceed(originalRequest) + if (originalRequest.url.toString().contains(baseUrl) and (response.code == 404)) + throw Exception("HTTP error ${response.code}. Возможно Antibot, попробуйте пройти капчу в WebView") + response + } .cookieJar(object : CookieJar { override fun saveFromResponse(url: HttpUrl, cookies: List) = cookies.filter { it.matches(url) }.forEach { @@ -79,8 +86,6 @@ class ComX : ParsedHttpSource() { val mangas = document.select(popularMangaSelector()).map { element -> popularMangaFromElement(element) } - if (document.html().contains("Sorry, your request has been denied.")) throw UnsupportedOperationException("Error: Open in WebView and solve the Antirobot!") - return MangasPage(mangas, document.select(".pagination__pages span").first().text().toInt() <= document.select(".pagination__pages a:last-child").first().text().toInt()) } @@ -99,8 +104,6 @@ class ComX : ParsedHttpSource() { val mangas = document.select(latestUpdatesSelector()).map { element -> latestUpdatesFromElement(element) } - if (document.html().contains("Sorry, your request has been denied.")) throw UnsupportedOperationException("Error: Open in WebView and solve the Antirobot!") - return MangasPage(mangas, false) } @@ -160,14 +163,13 @@ class ComX : ParsedHttpSource() { override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element) override fun mangaDetailsParse(document: Document): SManga { - if (document.html().contains("Sorry, your request has been denied.")) throw UnsupportedOperationException("Error: Open in WebView and solve the Antirobot!") val infoElement = document.select("div.page__grid").first() val manga = SManga.create() manga.title = infoElement.select(".page__title-original").text().split(" | ").first() - manga.author = infoElement.select(".page__list li:eq(1)").text() + manga.author = infoElement.select(".page__list li:contains(Издатель)").text() manga.genre = infoElement.select(".page__tags a").joinToString { it.text() } - manga.status = parseStatus(infoElement.select(".page__list li:eq(2)").text()) + manga.status = parseStatus(infoElement.select(".page__list li:contains(Статус)").text()) manga.description = infoElement.select(".page__text ").text() @@ -196,7 +198,6 @@ class ComX : ParsedHttpSource() { override fun chapterListParse(response: Response): List { val document = response.asJsoup() - if (document.html().contains("Sorry, your request has been denied.")) throw UnsupportedOperationException("Error: Open in WebView and solve the Antirobot!") val dataStr = document .toString() .substringAfter("window.__DATA__ = ")