test(player): nie wstrzykuj naszego skryptu na stronach z Turnstile

Kolejny podejrzany o negatywna weryfikacje Cloudflare: nasz wlasny INJECTED_JS.
Wstrzykujemy go PRZED zaladowaniem strony, a on podmienia gettery i settery na
prototypie HTMLMediaElement (wyciszanie autoplay) oraz usuwa elementy uznane za
reklamy. Turnstile potrafi uznac tak zmodyfikowane srodowisko za podejrzane.

Na hostach vikingfile konczymy teraz wykonanie zaraz po naszym bloku: zostaje tylko
podswietlenie ramki z zabezpieczeniem, meldunek needs_interaction i podsluch POST-a
z bezposrednim linkiem. Reszta patchy sie nie wykonuje. Na stronie pliku i tak nie
potrzebujemy ani wyciszania autoplay, ani ad-blocka.

To jest TEST HIPOTEZY, nie potwierdzona naprawa. Nie udalo mi sie odtworzyc bledu u
siebie: w Chrome na emulatorze, na tej samej sieci, weryfikacja przechodzi zarowno w
trybie mobilnym, jak i desktopowym. Do apki na emulatorze nie dojde ta scena, bo ma
duration NULL i w glownym feedzie jest ukryta progiem 60 s, a przez strone aktorki
trzeba by przewinac 701 pozycji.

Przy okazji: naprawiony pojedynczy backslash w regexie hosta (szablon go zjadal) i
zaktualizowany komentarz naglowkowy, ktory dalej opisywal chowanie strony, usuniete
dwie zmiany wczesniej.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
goon-foss 2026-08-22 21:35:42 +02:00
parent 2071b36311
commit 646f03d7be
2 changed files with 23 additions and 10 deletions

View file

@ -16,6 +16,13 @@ export type ChangelogEntry = {
}; };
export const CHANGELOG: ChangelogEntry[] = [ export const CHANGELOG: ChangelogEntry[] = [
{
id: '2026-08-22f',
date: 'August 2026',
items: [
'Another attempt at hosts that ask you to confirm you are human: the app no longer runs its own ad-blocking and autoplay tweaks on those pages, in case the check was rejecting the modified page. If the confirm box still refuses you, long-press the source on the scene and open it in your browser, which does work.',
],
},
{ {
id: '2026-08-22e', id: '2026-08-22e',
date: 'August 2026', date: 'August 2026',

View file

@ -1156,16 +1156,15 @@ const INJECTED_JS = `
if (window.__goonPatched) return; if (window.__goonPatched) return;
window.__goonPatched = true; window.__goonPatched = true;
// -- 0. vikingfile: to STRONA PLIKU, nie goly odtwarzacz. UWAGA: serwis rotuje // -- 0. vikingfile: STRONA PLIKU, nie goly odtwarzacz. Galaxyporn przeniosl tam swoj
// domena, vikingfile.com oddaje 302 na vik1ngfile.site, stad luzniejszy wzorzec. Galaxyporn przeniosl tam // katalog. Serwis rotuje domena (vikingfile.com oddaje 302 na vik1ngfile.site),
// swoj katalog, a my podajemy ja do WebView, bo wideo odslania sie dopiero po // stad luzniejszy wzorzec hosta.
// recznym przejsciu zabezpieczenia Cloudflare. Bez tego bloku user widzi //
// naglowek serwisu, nazwe pliku i stopke, a wlasciwy widget bywa pod zgieciem, // Robimy tu TYLKO trzy rzeczy: podswietlamy i przewijamy do ramki z
// wiec zglaszal to jako "loading, a potem pusta strona" (zgloszenie 21d6f5af). // zabezpieczeniem, meldujemy aplikacji, ze strona czeka na klikniecie, oraz
// Zostawiamy wiec na ekranie WYLACZNIE widget i odtwarzacz, reszte chowamy. // podsluchujemy POST zwracajacy bezposredni link. NICZEGO nie chowamy: pierwsza
// Gdy strona zdejmie z <video> klase hidden, chowamy tez widget i oddajemy // wersja chowala oprawe strony i przy nierenderujacym sie widgecie zostawal
// obraz w calosci; dalej dziala zwykly scrape <source>, wiec i tak przeskoczymy // czarny ekran, gorzej niz przed zmiana.
// na natywny odtwarzacz, gdy tylko pojawi sie adres pliku.
try { try {
if (/vik[i1]ngfile\\./i.test(location.hostname)) { if (/vik[i1]ngfile\\./i.test(location.hostname)) {
// UWAGA: NIE chowamy tu reszty strony. Pierwsza wersja robila dokladnie to i user // UWAGA: NIE chowamy tu reszty strony. Pierwsza wersja robila dokladnie to i user
@ -1243,6 +1242,13 @@ const INJECTED_JS = `
return vkSend.apply(this, arguments); return vkSend.apply(this, arguments);
}; };
} }
// Na hosterze z zabezpieczeniem Cloudflare KONCZYMY tutaj. Ponizej patchujemy
// prototypy HTMLMediaElement i usuwamy elementy uznane za reklamy, a Turnstile
// potrafi uznac tak zmodyfikowane srodowisko za podejrzane i odrzucic weryfikacje
// (zgloszenie: "wywolanie cloudflare dziala, ale weryfikacja jest negatywna").
// Na stronie pliku i tak nie potrzebujemy ani wyciszania autoplay, ani ad-blocka,
// a bezposredni link i tak przechwytujemy podsluchem POST-a powyzej.
if (/vik[i1]ngfile\\./i.test(location.hostname)) return;
} catch (e) {} } catch (e) {}
// -- 0a. Mute autoplay until the FIRST user gesture (kills the unmuted-audio flash // -- 0a. Mute autoplay until the FIRST user gesture (kills the unmuted-audio flash