diff --git a/AncientLibrary/NanoResources.txt b/AncientLibrary/NanoResources.txt new file mode 100644 index 000000000..5d180f9ac --- /dev/null +++ b/AncientLibrary/NanoResources.txt @@ -0,0 +1,394 @@ +# This list is a copy of a list that was taken over by very questionable new owners, frozen in time at the 5th of October 2020, a couple of weeks-ish before the handover was completed. +# Original source for this list: https://raw.githubusercontent.com/NanoAdblocker/NanoFilters/master/NanoFilters/NanoResources.txt +# Licence: GPL-3.0 +! ————————————————————————————————————————————— +# 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; +})();