From 3344fd0755130faa48d310524aff89d6453cc6ed Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 27 Feb 2026 13:49:26 -0500 Subject: [PATCH] Fix blank page on cloudflare guard (cherry picked from commit 07599ade3aeb127f643b45e84a6b9ccdb1d0ba6d) Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com> --- .../main/java/exh/ui/login/EhLoginActivity.kt | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/exh/ui/login/EhLoginActivity.kt b/app/src/main/java/exh/ui/login/EhLoginActivity.kt index d1568e8d5..10c5191fc 100644 --- a/app/src/main/java/exh/ui/login/EhLoginActivity.kt +++ b/app/src/main/java/exh/ui/login/EhLoginActivity.kt @@ -93,14 +93,30 @@ class EhLoginActivity : BaseActivity() { xLogD(url) val parsedUrl = url.toUri() if (parsedUrl.host.equals("forums.e-hentai.org", ignoreCase = true)) { - // Hide distracting content - if (!parsedUrl.queryParameterNames.contains(PARAM_SKIP_INJECT)) { - view.evaluateJavascript(HIDE_JS, null) - } - // Check login result + view.evaluateJavascript( + """ + (function() { + let html = document.documentElement.innerHTML; + return html.includes("/cdn-cgi/"); + })(); + """.trimIndent(), + ) { result -> + val isCloudflareBlock = result == "true" - if (parsedUrl.getQueryParameter("code")?.toInt() != 0) { - if (checkLoginCookies(url)) view.loadUrl("https://exhentai.org/") + if (isCloudflareBlock) { + xLogD("Cloudflare block detected — skipping logic") + return@evaluateJavascript + } + + // Hide distracting content + if (!parsedUrl.queryParameterNames.contains(PARAM_SKIP_INJECT)) { + view.evaluateJavascript(HIDE_JS, null) + } + // Check login result + + if (parsedUrl.getQueryParameter("code")?.toIntOrNull() != 0) { + if (checkLoginCookies(url)) view.loadUrl("https://exhentai.org/") + } } } else if (parsedUrl.host.equals("exhentai.org", ignoreCase = true)) { // At ExHentai, check that everything worked out...