1
0
mirror of https://github.com/pixeltris/TwitchAdSolutions.git synced 2024-11-22 02:12:45 +01:00

Fix vaft / video-swap-new #220

This commit is contained in:
pixeltris 2024-02-23 11:23:33 +00:00
parent 0f7864cdc3
commit 9bd481a833
4 changed files with 68 additions and 20 deletions

View File

@ -720,10 +720,24 @@ twitch-videoad.js text/javascript
} }
return null; return null;
} }
var reactRootNode = null; function findReactRootNode() {
var rootNode = document.querySelector('#root'); var reactRootNode = null;
if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) { var rootNode = document.querySelector('#root');
reactRootNode = rootNode._reactRootContainer._internalRoot.current; if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) {
reactRootNode = rootNode._reactRootContainer._internalRoot.current;
}
if (reactRootNode == null) {
var containerName = Object.keys(rootNode).find(x => x.startsWith('__reactContainer'));
if (containerName != null) {
reactRootNode = rootNode[containerName];
}
}
return reactRootNode;
}
var reactRootNode = findReactRootNode();
if (!reactRootNode) {
console.log('Could not find react root');
return;
} }
videoPlayer = findReactNode(reactRootNode, node => node.setPlayerActive && node.props && node.props.mediaPlayerInstance); videoPlayer = findReactNode(reactRootNode, node => node.setPlayerActive && node.props && node.props.mediaPlayerInstance);
videoPlayer = videoPlayer && videoPlayer.props && videoPlayer.props.mediaPlayerInstance ? videoPlayer.props.mediaPlayerInstance : null; videoPlayer = videoPlayer && videoPlayer.props && videoPlayer.props.mediaPlayerInstance ? videoPlayer.props.mediaPlayerInstance : null;

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name TwitchAdSolutions (vaft) // @name TwitchAdSolutions (vaft)
// @namespace https://github.com/pixeltris/TwitchAdSolutions // @namespace https://github.com/pixeltris/TwitchAdSolutions
// @version 5.8.5 // @version 6.0.0
// @description Multiple solutions for blocking Twitch ads (vaft) // @description Multiple solutions for blocking Twitch ads (vaft)
// @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js
// @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/vaft/vaft.user.js
@ -732,10 +732,24 @@
} }
return null; return null;
} }
var reactRootNode = null; function findReactRootNode() {
var rootNode = document.querySelector('#root'); var reactRootNode = null;
if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) { var rootNode = document.querySelector('#root');
reactRootNode = rootNode._reactRootContainer._internalRoot.current; if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) {
reactRootNode = rootNode._reactRootContainer._internalRoot.current;
}
if (reactRootNode == null) {
var containerName = Object.keys(rootNode).find(x => x.startsWith('__reactContainer'));
if (containerName != null) {
reactRootNode = rootNode[containerName];
}
}
return reactRootNode;
}
var reactRootNode = findReactRootNode();
if (!reactRootNode) {
console.log('Could not find react root');
return;
} }
videoPlayer = findReactNode(reactRootNode, node => node.setPlayerActive && node.props && node.props.mediaPlayerInstance); videoPlayer = findReactNode(reactRootNode, node => node.setPlayerActive && node.props && node.props.mediaPlayerInstance);
videoPlayer = videoPlayer && videoPlayer.props && videoPlayer.props.mediaPlayerInstance ? videoPlayer.props.mediaPlayerInstance : null; videoPlayer = videoPlayer && videoPlayer.props && videoPlayer.props.mediaPlayerInstance ? videoPlayer.props.mediaPlayerInstance : null;

View File

@ -523,11 +523,21 @@ twitch-videoad.js text/javascript
} }
return null; return null;
} }
var reactRootNode = null; function findReactRootNode() {
var rootNode = document.querySelector('#root'); var reactRootNode = null;
if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) { var rootNode = document.querySelector('#root');
reactRootNode = rootNode._reactRootContainer._internalRoot.current; if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) {
reactRootNode = rootNode._reactRootContainer._internalRoot.current;
}
if (reactRootNode == null) {
var containerName = Object.keys(rootNode).find(x => x.startsWith('__reactContainer'));
if (containerName != null) {
reactRootNode = rootNode[containerName];
}
}
return reactRootNode;
} }
var reactRootNode = findReactRootNode();
if (!reactRootNode) { if (!reactRootNode) {
console.log('Could not find react root'); console.log('Could not find react root');
return; return;
@ -543,7 +553,7 @@ twitch-videoad.js text/javascript
console.log('Could not find player state'); console.log('Could not find player state');
return; return;
} }
if (player.paused) { if (player.paused || player.core?.paused) {
return; return;
} }
if (isSeek) { if (isSeek) {

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @name TwitchAdSolutions (video-swap-new) // @name TwitchAdSolutions (video-swap-new)
// @namespace https://github.com/pixeltris/TwitchAdSolutions // @namespace https://github.com/pixeltris/TwitchAdSolutions
// @version 1.22 // @version 1.23
// @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js // @updateURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js
// @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js // @downloadURL https://github.com/pixeltris/TwitchAdSolutions/raw/master/video-swap-new/video-swap-new.user.js
// @description Multiple solutions for blocking Twitch ads (video-swap-new) // @description Multiple solutions for blocking Twitch ads (video-swap-new)
@ -535,11 +535,21 @@
} }
return null; return null;
} }
var reactRootNode = null; function findReactRootNode() {
var rootNode = document.querySelector('#root'); var reactRootNode = null;
if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) { var rootNode = document.querySelector('#root');
reactRootNode = rootNode._reactRootContainer._internalRoot.current; if (rootNode && rootNode._reactRootContainer && rootNode._reactRootContainer._internalRoot && rootNode._reactRootContainer._internalRoot.current) {
reactRootNode = rootNode._reactRootContainer._internalRoot.current;
}
if (reactRootNode == null) {
var containerName = Object.keys(rootNode).find(x => x.startsWith('__reactContainer'));
if (containerName != null) {
reactRootNode = rootNode[containerName];
}
}
return reactRootNode;
} }
var reactRootNode = findReactRootNode();
if (!reactRootNode) { if (!reactRootNode) {
console.log('Could not find react root'); console.log('Could not find react root');
return; return;
@ -555,7 +565,7 @@
console.log('Could not find player state'); console.log('Could not find player state');
return; return;
} }
if (player.paused) { if (player.paused || player.core?.paused) {
return; return;
} }
if (isSeek) { if (isSeek) {