From 874aaf4e933919bf7a8c65d21b75f3e499e67365 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Wed, 28 Dec 2022 17:14:12 +0330 Subject: [PATCH] fix when playwright fails on providing a UA --- .../interceptor/CloudflareInterceptor.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt index 3993ee7d..73e00de1 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt @@ -4,6 +4,7 @@ import com.microsoft.playwright.Browser import com.microsoft.playwright.BrowserType.LaunchOptions import com.microsoft.playwright.Page import com.microsoft.playwright.Playwright +import com.microsoft.playwright.PlaywrightException import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.network.interceptor.CFClearance.resolveWithWebView import mu.KotlinLogging @@ -135,17 +136,22 @@ object CFClearance { } fun getWebViewUserAgent(): String { - Playwright.create().use { playwright -> - playwright.chromium().launch( - LaunchOptions() - .setHeadless(true) - ).use { browser -> - browser.newPage().use { page -> - val userAgent = page.evaluate("() => {return navigator.userAgent}") as String - logger.debug { "WebView User-Agent is $userAgent" } - return userAgent + return try { + Playwright.create().use { playwright -> + playwright.chromium().launch( + LaunchOptions() + .setHeadless(true) + ).use { browser -> + browser.newPage().use { page -> + val userAgent = page.evaluate("() => {return navigator.userAgent}") as String + logger.debug { "WebView User-Agent is $userAgent" } + return userAgent + } } } + } catch (e: PlaywrightException) { + // Playwright might fail on headless environments like docker + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" } }