Add tampermonkey/cookie-acepter
This commit is contained in:
253
tampermonkey/cookie-acepter
Normal file
253
tampermonkey/cookie-acepter
Normal file
@@ -0,0 +1,253 @@
|
||||
// ==UserScript==
|
||||
// @name Anti-Cookies Consent
|
||||
// @name:es Anti-Consentimiento de Cookies
|
||||
// @namespace Anti-Cookies-Consent
|
||||
// @version 1.2.1
|
||||
// @description Remove Cookies Consent Modal Windows
|
||||
// @description:es Eliminar los mensajes de consentimiento de cookies de los sitios web
|
||||
// @author Elwyn
|
||||
// @license MIT
|
||||
// @homepage https://github.com/WakeupNeo33/Anti-Cookies-Consent-userscript
|
||||
// @supportURL https://github.com/WakeupNeo33/Anti-Cookies-Consent-userscript/issues
|
||||
// @iconURL https://github.com/WakeupNeo33/Anti-Cookies-Consent-userscript/raw/main/icon.png
|
||||
// @include *
|
||||
// @exclude https://*mega.nz/*
|
||||
// @noframes
|
||||
// @run-at document-start
|
||||
// @grant unsafeWindow
|
||||
// @downloadURL https://update.greasyfork.org/scripts/432050/Anti-Cookies%20Consent.user.js
|
||||
// @updateURL https://update.greasyfork.org/scripts/432050/Anti-Cookies%20Consent.meta.js
|
||||
// ==/UserScript==
|
||||
(function() {
|
||||
|
||||
var enable_debug = false;
|
||||
|
||||
// Pattern to Search
|
||||
var cookies_pattern = /cookies/i;
|
||||
|
||||
var tagNames_pattern = /div|p|section|iframe/i;
|
||||
|
||||
document.html = document.getElementsByTagName('html')[0];
|
||||
|
||||
// HELPER Functions
|
||||
//-----------------
|
||||
function debug( msg, val ) {
|
||||
if ( !enable_debug ) return;
|
||||
console.log( '%c ANTI-COOKIES CONSENT','color: white; background-color: blue', msg );
|
||||
if ( val !== undefined )
|
||||
{
|
||||
if ( val.nodeType === Node.ELEMENT_NODE ) {
|
||||
console.log ( 'TagName: ' + val.nodeName + ' | Id: ' + val.id + ' | Class: ' + val.classList );
|
||||
} else {
|
||||
console.log ( val );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addStyle(str) {
|
||||
var style = document.createElement('style');
|
||||
style.innerHTML = str;
|
||||
document.body.appendChild( style );
|
||||
}
|
||||
|
||||
/* Thanks to RuiGuilherme */
|
||||
const enableContextMenu = () => {
|
||||
window.addEventListener('contextmenu', (event) => {
|
||||
event.stopPropagation();
|
||||
event.stopImmediatePropagation();
|
||||
}, true);
|
||||
}
|
||||
|
||||
function isElementBlur( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
var filter = style.getPropertyValue( 'filter' );
|
||||
return ( (/blur/i).test( filter ) );
|
||||
}
|
||||
|
||||
function isElementFixed( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
return ( style.getPropertyValue( 'position' ) == 'fixed' );
|
||||
}
|
||||
|
||||
function isOverflowHidden( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
return ( style.getPropertyValue( 'overflow' ) == 'hidden' );
|
||||
}
|
||||
|
||||
function isNotHidden( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
return ( style.getPropertyValue( 'display' ) != 'none' );
|
||||
}
|
||||
|
||||
function isFullWindows( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
var top = parseInt( style.getPropertyValue( 'top' ) );
|
||||
var left = parseInt( style.getPropertyValue( 'left' ) );
|
||||
var right = parseInt( style.getPropertyValue( 'right' ) );
|
||||
var bottom = parseInt( style.getPropertyValue( 'bottom' ) );
|
||||
return ( el.offsetHeight > window.innerHeight - 50 && el.offsetWidth > window.innerWidth - 20 ) || (top == 0 && left == 0 && right == 0 && bottom == 0);
|
||||
}
|
||||
|
||||
function isBlackoutModal( el )
|
||||
{
|
||||
var style = window.getComputedStyle( el );
|
||||
var position = style.getPropertyValue( 'position' );
|
||||
var zindex = style.getPropertyValue( 'z-index' );
|
||||
if ( isNaN( zindex ) ) zindex = 0;
|
||||
return parseInt( zindex ) > 1 && position == 'fixed' && isFullWindows( el );
|
||||
}
|
||||
|
||||
function isChildrenFullWindows( el )
|
||||
{
|
||||
if ( el.hasChildNodes() == false ) return;
|
||||
var childFound = false;
|
||||
Array.prototype.forEach.call( el.childNodes, ( child ) => {
|
||||
// skip unusual html tag names
|
||||
if ( !tagNames_pattern.test ( child.nodeName ) ) return;
|
||||
// Check if some child element is full size window
|
||||
if(isFullWindows( child )){
|
||||
childFound = true;
|
||||
}
|
||||
});
|
||||
return childFound;
|
||||
}
|
||||
|
||||
function isModalWindows( el )
|
||||
{
|
||||
return (isElementFixed( el ) && ( cookies_pattern.test( el.textContent ) || el.nodeName == 'IFRAME' ) );
|
||||
}
|
||||
|
||||
function unblockScroll()
|
||||
{
|
||||
if ( isOverflowHidden( document.body ) )
|
||||
{
|
||||
document.body.setAttribute('style', (document.body.getAttribute('style')||'').replace('overflow: visible !important;','') + 'overflow: visible !important;');
|
||||
document.body.classList.add( 'scroll_on' );
|
||||
debug( 'Scroll Unblocked from BODY tag');
|
||||
}
|
||||
if ( isOverflowHidden( document.html ) )
|
||||
{
|
||||
document.html.setAttribute('style', (document.html.getAttribute('style')||'').replace('overflow: visible !important;','') + 'overflow: visible !important;');
|
||||
document.html.classList.add( 'scroll_on' );
|
||||
debug( 'Scroll Unblocked from HTML tag ');
|
||||
}
|
||||
}
|
||||
|
||||
// Main Functions
|
||||
function removeBackStuff()
|
||||
{
|
||||
document.querySelectorAll( 'div,section' ).forEach( ( el ) => {
|
||||
if ( tagNames_pattern.test( el.nodeName ) )
|
||||
{
|
||||
if ( isBlackoutModal( el ) )
|
||||
{
|
||||
debug( 'Blackout Modal Detected & Removed: ', el);
|
||||
el.setAttribute('style', (el.getAttribute('style')||'') + ';display: none !important;');
|
||||
el.classList.add( 'hide_modal' );
|
||||
}
|
||||
else if ( isElementBlur( el ) )
|
||||
{
|
||||
debug( 'Blur Element Detected & Deblurred: ', el);
|
||||
el.classList.add( 'un_blur' );
|
||||
}
|
||||
}
|
||||
});
|
||||
setTimeout( unblockScroll, 500);
|
||||
}
|
||||
|
||||
function checkModals()
|
||||
{
|
||||
debug( 'Checking Modals' );
|
||||
var modalFound = false;
|
||||
// Only check common used html tag names
|
||||
document.querySelectorAll( 'div,section,iframe' ).forEach( ( el ) => {
|
||||
if ( tagNames_pattern.test( el.nodeName ) )
|
||||
{
|
||||
if ( isModalWindows( el ) && isNotHidden( el ) )
|
||||
{
|
||||
modalFound = true;
|
||||
removeModal( el );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if ( modalFound )
|
||||
{
|
||||
setTimeout( removeBackStuff, 100);
|
||||
}
|
||||
}
|
||||
|
||||
function removeModal( el, isNew )
|
||||
{
|
||||
// Skip the already processed elements
|
||||
if ( /hide_modal/.test( el.classList ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Hide the element through a high priority incorporating the sentence in the style parameter
|
||||
el.setAttribute('style', (el.getAttribute('style')||'') + ';display: none !important;');
|
||||
|
||||
// Also, add a class name to the element
|
||||
// (in case there is a script that eliminates the previous statement)
|
||||
el.classList.add( 'hide_modal' );
|
||||
|
||||
debug( 'Modal Detected & Removed: ', el);
|
||||
|
||||
if ( isNew )
|
||||
{
|
||||
setTimeout( removeBackStuff, 100);
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('DOMContentLoaded', (event) => {
|
||||
|
||||
// Mutation Observer
|
||||
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
|
||||
|
||||
// Create an observer instance
|
||||
var observer = new MutationObserver( (mutations) => {
|
||||
mutations.forEach( (mutation) => {
|
||||
if ( mutation.addedNodes.length ) {
|
||||
Array.prototype.forEach.call( mutation.addedNodes, ( el ) => {
|
||||
// skip unusual html tag names
|
||||
if ( !tagNames_pattern.test ( el.nodeName ) ) return;
|
||||
|
||||
// Check if element is a Modal Windows
|
||||
if ( isModalWindows( el ) && isNotHidden( el ) )
|
||||
{
|
||||
debug( 'OnMutationObserver: ', el );
|
||||
removeModal( el, true );
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
// Observer
|
||||
observer.observe(document, {
|
||||
childList : true,
|
||||
subtree : true
|
||||
});
|
||||
|
||||
// enable context menu again
|
||||
enableContextMenu();
|
||||
|
||||
addStyle( 'body.scroll_on, html.scroll_on { overflow: visible !important; } .hide_modal { display: none !important; } .un_blur { -webkit-filter: blur(0px) !important; filter: blur(0px) !important; }' );
|
||||
|
||||
// First check
|
||||
checkModals();
|
||||
|
||||
});
|
||||
|
||||
window.addEventListener('load', (event) => {
|
||||
setTimeout( function() {
|
||||
checkModals();
|
||||
}, 100 );
|
||||
});
|
||||
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user