diff --git a/mobile/src/changelog.ts b/mobile/src/changelog.ts index 0d81ae9..37d6a20 100644 --- a/mobile/src/changelog.ts +++ b/mobile/src/changelog.ts @@ -29,6 +29,14 @@ export type 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', date: 'August 2026', diff --git a/mobile/src/screens/PlayerScreen.tsx b/mobile/src/screens/PlayerScreen.tsx index 8477dc2..d9a60f3 100644 --- a/mobile/src/screens/PlayerScreen.tsx +++ b/mobile/src/screens/PlayerScreen.tsx @@ -1277,13 +1277,20 @@ const INJECTED_JS = ` return vkSend.apply(this, arguments); }; } - // Na hosterze z zabezpieczeniem Cloudflare KONCZYMY tutaj. Ponizej patchujemy - // prototypy HTMLMediaElement i usuwamy elementy uznane za reklamy, a Turnstile + // Na KAZDYM hosterze z brama Cloudflare KONCZYMY tutaj. Ponizej patchujemy prototypy + // HTMLMediaElement, klikamy w plakat 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"). + // + // 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, - // a bezposredni link i tak przechwytujemy podsluchem POST-a powyzej. - if (/vik[i1]ngfile\\./i.test(location.hostname)) return; + // a bezposredni link przechwytujemy podsluchem powyzej. + if (/vik[i1]ngfile\\.|playmogo\\.|dood|d0000d|dooood|do0od|do7go|ds2play|doply\\.|myvidplay\\./i.test(location.hostname)) return; } catch (e) {} // -- 0a. Mute autoplay until the FIRST user gesture (kills the unmuted-audio flash