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:
parent
2071b36311
commit
646f03d7be
2 changed files with 23 additions and 10 deletions
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue