fix(player): nie wstrzykuj naszego skryptu na stronach rodziny DoodStream
Zgloszenie Jana: myvidplay i easyvidplayer na filmach dalej nie dzialaly, mimo wczorajszych poprawek backendu. Backend byl OK, sprawdzone na zywo: myvidplay resolwuje sie teraz na playmogo.com, a easyvidplayer oddaje 410 i znika z listy. Problem byl PO STRONIE APLIKACJI. Playmogo (tam laduja myvidplay i doply) zmienil zabezpieczenie. Nasza notatka mowila, ze to niewidzialny Turnstile przechodzacy automatycznie. To juz NIEPRAWDA: ich strona wola turnstile.render z size flexible, czyli WIDOCZNY widget, i to dopiero po kliknieciu w przycisk play, a po weryfikacji przeladowuje strone i dopiero wtedy pojawia sie pass_md5. Nasz wstrzykiwany skrypt psul dokladnie ten przeplyw. Widget siedzi w kontenerze o klasie captcha-player z z-index 100000, czyli w tym, co nasz usuwacz nakladek traktuje jak reklame, a nasze auto-klikniecie w plakat odpalalo brame, zanim widget zdazyl sie wyrenderowac. Do tego patchujemy prototypy HTMLMediaElement, co Turnstile potrafi uznac za podejrzane srodowisko (dokladnie ten sam objaw mielismy na vikingfile). Straz, ktora dotad obejmowala tylko vikingfile, obejmuje teraz cala rodzine bramkowana Cloudflare. Na stronie pliku i tak nie potrzebujemy ani wyciszania autoplay, ani ad-blocka. Pulapka po drodze, warta zapamietania: komentarz z backtickami wewnatrz literalu szablonowego INJECTED_JS przerywa ten literal i wywala parsowanie calego pliku. Zweryfikowane: regex po rozwinieciu szablonu pomija playmogo/myvidplay/doply/vikingfile/ d0000d/ds2play, a zostawia dzialajacy skrypt na galaxyporn, sxyprn i eporner; podobnie brzmiacy goodplay.com sie nie lapie. Typecheck wrocil do bazowych 11 bledow. NIE mam na to dowodu z urzadzenia: przejscie Turnstile trzeba potwierdzic na telefonie.
This commit is contained in:
parent
365c97a1de
commit
38eee03902
2 changed files with 19 additions and 4 deletions
|
|
@ -29,6 +29,14 @@ export type ChangelogEntry = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CHANGELOG: ChangelogEntry[] = [
|
export const CHANGELOG: ChangelogEntry[] = [
|
||||||
|
{
|
||||||
|
id: '2026-08-26c',
|
||||||
|
date: 'August 2026',
|
||||||
|
items: [
|
||||||
|
'Movie hosts that ask you to confirm you are human (myvidplay, doply and the DoodStream family) should work again. The app was running its own ad-blocking and autoplay tweaks on those pages, and the confirm box lives in exactly the kind of overlay that ad-blocking removes, so it either vanished or was rejected. Those pages are now left untouched.',
|
||||||
|
'Scenes whose file the host has quietly deleted no longer open to a black screen. The address still looked valid but the file was gone, so the app now checks it actually responds and moves on to another source instead.',
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: '2026-08-26b',
|
id: '2026-08-26b',
|
||||||
date: 'August 2026',
|
date: 'August 2026',
|
||||||
|
|
|
||||||
|
|
@ -1277,13 +1277,20 @@ const INJECTED_JS = `
|
||||||
return vkSend.apply(this, arguments);
|
return vkSend.apply(this, arguments);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// Na hosterze z zabezpieczeniem Cloudflare KONCZYMY tutaj. Ponizej patchujemy
|
// Na KAZDYM hosterze z brama Cloudflare KONCZYMY tutaj. Ponizej patchujemy prototypy
|
||||||
// prototypy HTMLMediaElement i usuwamy elementy uznane za reklamy, a Turnstile
|
// HTMLMediaElement, klikamy w plakat i usuwamy elementy uznane za reklamy, a Turnstile
|
||||||
// potrafi uznac tak zmodyfikowane srodowisko za podejrzane i odrzucic weryfikacje
|
// potrafi uznac tak zmodyfikowane srodowisko za podejrzane i odrzucic weryfikacje
|
||||||
// (zgloszenie: "wywolanie cloudflare dziala, ale weryfikacja jest negatywna").
|
// (zgloszenie: "wywolanie cloudflare dziala, ale weryfikacja jest negatywna").
|
||||||
|
//
|
||||||
|
// Rodzina dooda doszla 2026-08-26. Playmogo (tam laduje myvidplay i doply) renderuje
|
||||||
|
// widget przez turnstile.render z size flexible, DOPIERO po kliknieciu w play,
|
||||||
|
// i trzyma go w kontenerze o klasie captcha-player z z-index 100000, czyli w tym,
|
||||||
|
// co nasz usuwacz nakladek traktuje jak reklame. Do tego nasze auto-klikniecie w plakat
|
||||||
|
// odpalalo ta brame, zanim widget zdazyl sie wyrenderowac.
|
||||||
|
//
|
||||||
// Na stronie pliku i tak nie potrzebujemy ani wyciszania autoplay, ani ad-blocka,
|
// Na stronie pliku i tak nie potrzebujemy ani wyciszania autoplay, ani ad-blocka,
|
||||||
// a bezposredni link i tak przechwytujemy podsluchem POST-a powyzej.
|
// a bezposredni link przechwytujemy podsluchem powyzej.
|
||||||
if (/vik[i1]ngfile\\./i.test(location.hostname)) return;
|
if (/vik[i1]ngfile\\.|playmogo\\.|dood|d0000d|dooood|do0od|do7go|ds2play|doply\\.|myvidplay\\./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