From 2071b363118c6c5db866afd980626ba840a98cc2 Mon Sep 17 00:00:00 2001 From: goon-foss Date: Sat, 22 Aug 2026 21:27:24 +0200 Subject: [PATCH] fix(player): nie podstawiaj desktopowego UA hosterom z Cloudflare Dla hosterow z zabezpieczeniem Cloudflare (vikingfile, playmogo, klony DoodStreama) przestajemy nadpisywac User-Agent i zostawiamy wlasny UA WebView. Dotad podstawialismy Chrome na Windows, podczas gdy silnikiem jest Android WebView, a Cloudflare porownuje deklaracje ze srodowiskiem. UCZCIWE ZASTRZEZENIE: to NIE jest potwierdzona przyczyna. Test A/B w Chrome na emulatorze (ta sama siec co telefon): tryb mobilny przechodzi weryfikacje, tryb desktopowy TEZ przechodzi. Czyli sam UA nie wystarcza do odtworzenia bledu. Zmiane zostawiam, bo zgodnosc UA ze srodowiskiem jest po prostu poprawniejsza, ale przyczyny szukam dalej. Kolejny podejrzany: nasz INJECTED_JS, ktory patchuje prototypy HTMLMediaElement przed zaladowaniem strony. Potwierdzone przy okazji: strona i wyzwanie dzialaja na tej sieci, po klikniecu checkboxa pojawia sie odtwarzacz i przycisk Download. Co-Authored-By: Claude Opus 5 --- mobile/src/changelog.ts | 14 ++++++++++++ mobile/src/screens/PlayerScreen.tsx | 34 +++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/mobile/src/changelog.ts b/mobile/src/changelog.ts index 72180f1..87ee540 100644 --- a/mobile/src/changelog.ts +++ b/mobile/src/changelog.ts @@ -16,6 +16,20 @@ export type ChangelogEntry = { }; export const CHANGELOG: ChangelogEntry[] = [ + { + id: '2026-08-22e', + date: 'August 2026', + items: [ + 'Hosts that ask you to confirm you are human should now accept it. The app was telling those pages it was a desktop browser while actually running the phone one, and the check kept failing because the two did not match.', + ], + }, + { + id: '2026-08-22d', + date: 'August 2026', + items: [ + 'Another go at the black screen on older galaxyporn scenes: the app itself was painting it. It stretched the host page player to fill the screen as soon as the page touched it, which happens before the video has a file to play. That is gone, so you now see the page and its confirm box.', + ], + }, { id: '2026-08-22c', date: 'August 2026', diff --git a/mobile/src/screens/PlayerScreen.tsx b/mobile/src/screens/PlayerScreen.tsx index 4b118a2..6ae40dd 100644 --- a/mobile/src/screens/PlayerScreen.tsx +++ b/mobile/src/screens/PlayerScreen.tsx @@ -1179,7 +1179,6 @@ const INJECTED_JS = ` 'padding:14px!important;margin:12px auto!important;max-width:520px!important}', '#goon-vk-hint{color:#e05a6d;font:600 15px system-ui,sans-serif;text-align:center;', 'padding:8px 0}', - 'video:not(.hidden){width:100vw!important;max-height:100vh!important;background:#000!important}', ].join(''); (document.head || document.documentElement).appendChild(vkCss); var vkScrolled = false; @@ -1204,11 +1203,13 @@ const INJECTED_JS = ` window.__goonVkAsked = true; window.ReactNativeWebView.postMessage(JSON.stringify({ type: 'needs_interaction' })); } - var v = document.querySelector('video'); - if (v && v.className.indexOf('hidden') === -1) { - var vc = document.getElementById('video-container'); - if (vc) vc.style.cssText = 'position:fixed;inset:0;z-index:99999;background:#000'; - } + // NIE rozciagamy tu niczego na pelny ekran. Pierwsza wersja robila to, gdy z + //