# Expires: 3 days # License: See source for license and credits # Source: https://github.com/NanoAdblocker/NanoFilters/tree/master/NanoFiltersSource/NanoResources.txt # This file is a compiled binary, do not modify # All modifications will be overwritten on the next build nano-tiny-noopvast-2.0 text/xml nano-tiny-noopvast-3.0 text/xml nano-assign-variable-onready.js application/javascript (function() { var chain = '{{1}}'; var value = '{{2}}'; if ( chain === '' || chain === '{{1}}' ) { return; } if ( value === 'null' ) { value = null; } else if ( value === 'true' ) { value = true; } else if ( value === 'false' ) { value = false; } else { return; } var assign = function() { var parent = window; chain = chain.split('.'); for ( var i = 0; i < chain.length - 1; i++ ) { parent = parent[chain[i]]; } parent[chain[chain.length - 1]] = value; }; if ( document.readyState === 'interactive' || document.readyState === 'complete' ) { assign(); } else { addEventListener('DOMContentLoaded', assign); } })(); nano-vvvvid-it.js application/javascript (function() { // Based on KAADIVVVV // License: https://github.com/Robotex/KAADIVVVV/blob/master/LICENSE function defuse() { var checkAdv = function() { this.hasAdv = false; }; vvvvid.models.PlayerObj.prototype.checkAdv = checkAdv; window[wnbshgd] = vvvvid.models.PlayerObj.prototype.checkAdv; } if ( typeof vvvvid === 'object' ) { defuse(); } else { addEventListener('DOMContentLoaded', defuse); } })(); nano-colombiaonline-com.js application/javascript (function() { var magic = 'a' + Math.random().toString(36).substring(2); var testScript = "typeof otab == 'function'"; var testComment = /\d{5,} \d{1,2}/; // var getter = function() { var script, temp; // temp = Array.from(document.querySelectorAll( 'script:not([src]):not([' + magic + '])' )); if ( document.currentScript && !document.currentScript.hasAttribute(magic) ) { temp.unshift(document.currentScript); } if ( temp.length === 0 ) { return true; } for ( var e of temp ) { e.setAttribute(magic, ''); if ( e.textContent && e.textContent.includes(testScript) ) { script = e; break; } } // if ( script === undefined ) { return true; } var prev = script.previousSibling; temp = prev; while ( temp = temp.previousSibling ) { if ( temp.nodeType === Node.COMMENT_NODE && testComment.test(temp.data) ) { prev.style.setProperty('display', 'none', 'important'); return false; } } }; // Object.defineProperty(window, "trev", { set: function() { }, get: function() { var r; var i = 0; do { try { r = getter(); } catch ( err ) { } } while ( i++, !r && i < 100 ); return null; } }); addEventListener('load', function() { void trev; }); // var isInBackground = false; var reStart = /^\/[a-z_]+\.cms/; var reEnd = /^ \d{5,} \d{1,2} $/; var adsHidder = function() { if ( isInBackground || !document.body ) { return; } var iterator = document.createTreeWalker( document.body, NodeFilter.SHOW_COMMENT ); var comment; while ( comment = iterator.nextNode() ) { if ( reStart.test(comment.data) ) { var toHide = []; var prev = comment; while ( prev = prev.previousSibling ) { if ( prev.nodeType === Node.COMMENT_NODE && reEnd.test(prev.data) ) { if ( toHide.length < 15 ) { for ( var e of toHide ) { try { e.style.setProperty( 'display', 'none', 'important' ); } catch ( err ) { } } } break; } toHide.push(prev); } } } }; addEventListener('focus', function() { isInBackground = false; }); addEventListener('blur', function() { isInBackground = true; }); setInterval(adsHidder, 1000); })(); nano-hijack-script-create.js application/javascript (function() { var _createElement = document.createElement; var needle = '{{1}}'; if ( needle === '' || needle === '{{1}}' ) { needle = '.?'; } else if ( needle.length > 2 && needle.startsWith('/') && needle.endsWith('/') ) { needle = needle.slice(1,-1); } else { needle = needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } needle = new RegExp(needle); document.createElement = function(name) { var elem = _createElement.apply(this, arguments); if ( name === 'script' ) { elem.addEventListener('error', function(e) { if ( needle.test(elem.src) ) { e.preventDefault(); e.stopPropagation(); var ev = new Event('load'); elem.dispatchEvent(ev); } }); } return elem; }; })(); nano-remove-elements-onready.js application/javascript (function() { var selector = '{{1}}'; if ( selector === '' || selector === '{{1}}' ) { return; } var remove = function() { var elements = document.querySelectorAll(selector); for ( var element of elements ) { element.remove(); } }; if ( document.readyState === 'interactive' || document.readyState === 'complete' ) { remove(); } else { addEventListener('DOMContentLoaded', remove); } })(); nano-make-bait-element.js application/javascript (function() { var identifier = '{{1}}'; var element = document.createElement('div'); if ( identifier.charAt(0) === '#' ) { element.id = identifier.substring(1); } else if ( identifier.charAt(0) === '.' ) { element.className = identifier.substring(1); } else { return; } element.style.display = 'none'; document.documentElement.appendChild(element); })(); nano-grant-fake-notification.js application/javascript (function() { Notification = function() { }; Notification.permission = 'default'; Notification.requestPermission = function(callback) { Notification.permission = 'granted'; if ( callback ) { setTimeout(callback, 0, 'granted'); } return Promise.resolve('granted'); }; })(); nano-abort-inline-scripts-by-id.js application/javascript (() => { let needle = '{{1}}'; if (needle === '' || needle === '{{1}}') { return; } else if (needle.startsWith('/') && needle.endsWith('/')) { needle = needle.slice(1, -1); } else { needle = '^' + needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '$'; } needle = new RegExp(needle); // const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.tagName === 'SCRIPT' && needle.test(node.id)) { node.textContent = ''; node.remove(); } } } }); if (document.readyState === 'interactive' || document.readyState === 'complete') { return; // Too late } else { observer.observe(document, { childList: true, subtree: true, }); addEventListener('DOMContentLoaded', () => { observer.disconnect(); }); } })(); nanop-click-elements-onready.js application/javascript (function() { var guard = '{{nano}}'; if ( guard === '{{nano}}' ) { return; } var selector = '{{1}}'; if ( selector === '' || selector === '{{1}}' ) { return; } var click = function() { var elements = document.querySelectorAll(selector); for ( var element of elements ) { element.click(); } }; if ( document.readyState === 'interactive' || document.readyState === 'complete' ) { click(); } else { addEventListener('DOMContentLoaded', click); } })(); nanop-click-elements-onload.js application/javascript (function() { var guard = '{{nano}}'; if ( guard === '{{nano}}' ) { return; } var selector = '{{1}}'; if ( selector === '' || selector === '{{1}}' ) { return; } var click = function() { var elements = document.querySelectorAll(selector); for ( var element of elements ) { element.click(); } }; if ( document.readyState === 'complete' ) { click(); } else { addEventListener('load', click); } })(); nanop-easy-set-cookie.js application/javascript (function() { var guard = '{{nano}}'; if ( guard === '{{nano}}' ) { return; } var data = '{{1}}'; var path = '{{2}}'; var domain = '{{3}}'; var secure = '{{4}}'; var del = '{{5}}'; if ( data.indexOf('=') === -1 ) { return; } if ( del === 'true' ) { data += ';max-age=-100'; } else { data += ';max-age=2592000'; // 30 days } if ( path !== '' && path !== '{{2}}' ) { data += ';path=' + path; } if ( domain !== '' && domain !== '{{3}}' ) { data += ';domain=' + domain; } if ( secure === 'true' ) { data += ';secure'; } document.cookie = data; })(); nanop-set-cookie.js application/javascript (function() { var guard = '{{nano}}'; if ( guard === '{{nano}}' ) { return; } var data = '{{1}}'; if ( data.indexOf('=') === -1 ) { return; } document.cookie = data; })(); nanop-get-redirect.js application/javascript (() => { var guard = '{{nano}}'; if ( guard === '{{nano}}' ) { return; } var data = '{{1}}'; if ( data === '' || data === '{{1}}' ) { return; } var url = new URL(location.href); var param = url.searchParams.get(data); if ( typeof param !== 'string' || !/^https?:\/\//.test(param) ) { return; } location.href = param; })();