From 26dfbcfcba1b6318bbabe20f85abadd004e947f6 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Mon, 27 Jul 2026 13:49:06 +0300 Subject: [PATCH] fallback to reading leagues from the webview after captcha completion #1840 --- renderer/src/web/background/Leagues.ts | 28 ++++++++++++++++--- .../src/web/price-check/BackgroundInfo.vue | 14 +++++++--- .../src/web/price-check/PriceCheckWindow.vue | 5 ++-- .../web/price-check/settings-price-check.vue | 4 +-- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/renderer/src/web/background/Leagues.ts b/renderer/src/web/background/Leagues.ts index 61c17d14..3224f986 100644 --- a/renderer/src/web/background/Leagues.ts +++ b/renderer/src/web/background/Leagues.ts @@ -45,14 +45,34 @@ export const useLeagues = createGlobalState(() => { } }) - async function load () { + async function load ( + builtinBrowser?: { webview: Element, close: () => void } + ) { isLoading.value = true error.value = null try { - const response = await Host.proxy(`${poeWebApi()}/api/leagues?type=main&realm=pc`) - if (!response.ok) throw new Error(JSON.stringify(Object.fromEntries(response.headers))) - const leagues: ApiLeague[] = await response.json() + let leagues: ApiLeague[] | undefined + try { + const response = await Host.proxy(`${poeWebApi()}/api/leagues?type=main&realm=pc`) + leagues = await response.json() as ApiLeague[] + } catch (e) { + // when you click the "Retry" and has the built-in browser open + interface WebviewTag extends Element { + executeJavaScript (code: string): Promise + } + if (builtinBrowser) { + const webview = builtinBrowser.webview as WebviewTag + try { + const bodyText = await webview.executeJavaScript('document.body.innerText') + leagues = JSON.parse(bodyText as string) + builtinBrowser.close() + } catch {} + } + + if (!leagues) throw e + } + tradeLeagues.value = leagues .filter(league => !PERMANENT_HC.includes(league.id) && diff --git a/renderer/src/web/price-check/BackgroundInfo.vue b/renderer/src/web/price-check/BackgroundInfo.vue index 6fd6296e..5dfbdd43 100644 --- a/renderer/src/web/price-check/BackgroundInfo.vue +++ b/renderer/src/web/price-check/BackgroundInfo.vue @@ -9,14 +9,14 @@

{{ t('app.leagues_failed_help') }}

diff --git a/renderer/src/web/price-check/PriceCheckWindow.vue b/renderer/src/web/price-check/PriceCheckWindow.vue index d70045a3..f3bc68ab 100644 --- a/renderer/src/web/price-check/PriceCheckWindow.vue +++ b/renderer/src/web/price-check/PriceCheckWindow.vue @@ -28,7 +28,7 @@
- +