fix(player): rodzina DoodStream, warstwy reklamowe nad playerem nie lapia juz stukniec
- DOOD_OVERLAY_JS (injectedJavaScript po zaladowaniu): fixed + z-index > 100000 bez Cloudflare -> pointer-events none, iframe sandbox/srcdoc usuwany; co 700 ms - diagnoza devtools: pelnoekranowy div opacity 0.01 z z 2147463647, iframe reklamowy i pusty kwadrat 80x80 dokladnie na przycisku play; popunder u nas zablokowany, wiec warstwa nigdy nie znikala (zgloszenia e9fc12e8, 1278eb49) - changelog 2026-09-14c, OTA 69b27e52 na 1.3 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
656604e868
commit
f28acf8f0d
2 changed files with 57 additions and 0 deletions
|
|
@ -29,6 +29,13 @@ export type ChangelogEntry = {
|
|||
};
|
||||
|
||||
export const CHANGELOG: ChangelogEntry[] = [
|
||||
{
|
||||
id: '2026-09-14c',
|
||||
date: 'September 2026',
|
||||
items: [
|
||||
'Movies on playmogo, myvidplay and doply: taps reach the play button again. The host lays an almost invisible ad layer over the player that swallows every tap; the app now disables it once the page has loaded. The human check, when it appears, is untouched.',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: '2026-09-14b',
|
||||
date: 'September 2026',
|
||||
|
|
|
|||
|
|
@ -109,6 +109,55 @@ function isGoneError(msg: string | undefined | null): boolean {
|
|||
return /\b(404|410)\b|response code:\s*4(0[14])|not found|gone/i.test(msg);
|
||||
}
|
||||
|
||||
// Rodzina DoodStreama (playmogo, dood*, myvidplay, doply): INJECTED_JS ich omija, zeby nie
|
||||
// ruszac Turnstile. Ale po przejsciu wyzwania nad playerem zostaja warstwy sieci
|
||||
// reklamowej: pelnoekranowy div fixed z z-index 2147463647 i opacity 0.01 (#d2bkrbp) plus
|
||||
// iframe sandbox srcdoc z reklama. Kazde stukniecie trafia w nie, a nie w przycisk play.
|
||||
// W zwyklej przegladarce pierwszy klik otwiera popunder i warstwa znika; u nas okna sa
|
||||
// zablokowane (setSupportMultipleWindows=false), wiec warstwa zostawala na zawsze i film
|
||||
// „nie gral" (zgloszenia e9fc12e8 i 1278eb49, diagnoza devtools 2026-09-14: video mialo
|
||||
// juz src z cloudatacdn, readyState 0, trzy stukniecia bez efektu).
|
||||
//
|
||||
// Zdejmujemy tylko warstwy, ktore NIE sa Cloudflare (iframe challenges.cloudflare zostaje):
|
||||
// fixed + z-index > 100000 i (prawie niewidoczne, albo iframe reklamowy, albo duze).
|
||||
// Uruchamiane PO zaladowaniu strony (injectedJavaScript), co 700 ms, bo warstwy sa
|
||||
// dokladane pozniej przez skrypty reklam.
|
||||
const DOOD_OVERLAY_JS = `
|
||||
(function () {
|
||||
try {
|
||||
if (!/vik[i1]ngfile\\.|playmogo\\.|dood|d0000d|dooood|do0od|do7go|ds2play|doply\\.|myvidplay\\./i.test(location.hostname)) return;
|
||||
var isCf = function (el) {
|
||||
try {
|
||||
if ((el.src || '').indexOf('challenges.cloudflare') >= 0) return true;
|
||||
if (el.querySelector && el.querySelector('iframe[src*="challenges.cloudflare"]')) return true;
|
||||
} catch (e) {}
|
||||
return false;
|
||||
};
|
||||
var sweep = function () {
|
||||
var els = document.querySelectorAll('div,iframe,a,span');
|
||||
for (var i = 0; i < els.length; i++) {
|
||||
var el = els[i];
|
||||
var s = getComputedStyle(el);
|
||||
if (s.position !== 'fixed') continue;
|
||||
var z = parseInt(s.zIndex || '0', 10);
|
||||
if (!(z > 100000)) continue;
|
||||
if (isCf(el)) continue;
|
||||
// Kazda warstwa fixed z takim z-indexem, ktora nie jest Cloudflare, to lapacz
|
||||
// klikniec sieci reklamowej: pelnoekranowy div opacity 0.01, iframe sandbox z
|
||||
// reklama albo pusty przezroczysty kwadrat 80x80 polozony DOKLADNIE na przycisku
|
||||
// play (diagnoza devtools 2026-09-14). Player hostera (video.js) nie uzywa fixed.
|
||||
var adFrame = el.tagName === 'IFRAME' && (el.hasAttribute('srcdoc') || el.hasAttribute('sandbox'));
|
||||
el.style.setProperty('pointer-events', 'none', 'important');
|
||||
if (adFrame) { try { el.remove(); } catch (e) {} }
|
||||
}
|
||||
};
|
||||
sweep();
|
||||
setInterval(sweep, 700);
|
||||
} catch (e) {}
|
||||
})();
|
||||
true;
|
||||
`;
|
||||
|
||||
const DEFAULT_UA =
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36';
|
||||
|
||||
|
|
@ -2090,6 +2139,7 @@ function EmbedWebViewPlayer({ params }: { params: RouteParams }) {
|
|||
style={styles.video}
|
||||
userAgent={webViewUa}
|
||||
injectedJavaScriptBeforeContentLoaded={INJECTED_JS}
|
||||
injectedJavaScript={DOOD_OVERLAY_JS}
|
||||
onMessage={onMessage}
|
||||
onShouldStartLoadWithRequest={onShouldStartLoad}
|
||||
onLoadEnd={() => {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue