// ==UserScript== // @name Assassinate Ad Block Blockers [BETA] // @namespace http://tampermonkey.net/ // @version 1.10 // @description You know those annoying content blockers that popup demanding you remove your AdBlock so you can read the content? This script removes them by force. Please note, this is not UNIVERSAL like AdBlock Plus. It operates at a per-site basis. // @author Kxmode // @run-at document-idle // @match *://www.vg247.com/* // @match *://www.eurogamer.net/* // @match *://www.makeuseof.com/* // @match *://www.gamesradar.com/* // @match *://www.usatoday.com/* // @match *://www.cnn.com/* // @match *://www.businessinsider.com/* // @match *://www.thedailybeast.com/* // @downloadURL none // ==/UserScript== // Loads jQuery and triggers a callback function when jQuery has finished loading function addJQuery(callback) { var script = document.createElement("script"); script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"); script.addEventListener('load', function() { callback(); }, false); document.body.appendChild(script); } // The main script function main() { const $ = (unsafeWindow || window).$; // For domains that follow the standard way of blocking AdBlockers typically with a full-page block and overlay. var arrayStandardBlockerDomains = [ "www.vg247.com", "www.eurogamer.net", "www.gamesradar.com", "www.usatoday.com", "www.cnn.com"].map(String); // For domains that follow a nonstandard way of blocking AdBlockers by typically blocking the content area only, or some other unique way. var arrayAbnormalBlockerDomains = [ "www.makeuseof.com", "www.businessinsider.com", "www.thedailybeast.com"].map(String); // For domains that typically launch third-party modals for random stuff like sign-ups. var arrayAuxiliaryBlockerDomains = [ "www.gamesradar.com"].map(String); function DomainCheck() { var i, domain = window.location.hostname; for (i = 0; i < arrayStandardBlockerDomains.length; i++) { if (domain == arrayStandardBlockerDomains[i]) { return arrayStandardBlockerDomains[i]; break; } } for (i = 0; i < arrayAbnormalBlockerDomains.length; i++) { if (domain == arrayAbnormalBlockerDomains[i]) { return arrayAbnormalBlockerDomains[i]; break; } } for (i = 0; i < arrayAuxiliaryBlockerDomains.length; i++) { if (domain == arrayAuxiliaryBlockerDomains[i]) { return arrayAuxiliaryBlockerDomains[i]; break; } } } var domain = DomainCheck(); function DOMStatusCheck() { if (arrayStandardBlockerDomains.indexOf(domain) > -1) { var isHTMLBlocked = $("html").attr("style"); var isBodyBlocked = $("body").attr("style"); if (isHTMLBlocked !== undefined || isBodyBlocked !== undefined) { clearInterval(currentStatus1); // We're on a page that is blocked $("html").removeAttr("style"); $("body").removeAttr("style"); switch(domain) { case arrayStandardBlockerDomains[0]: // vg247 case arrayStandardBlockerDomains[1]: // eurogamer case arrayStandardBlockerDomains[2]: // gamesradar case arrayStandardBlockerDomains[3]: // usatoday case arrayStandardBlockerDomains[4]: // cnn $("[class*='sp_veil']").remove(); $("[id*='sp_message_id']").remove(); break; } } console.clear(); } if (arrayAuxiliaryBlockerDomains.indexOf(domain) > -1) { switch(domain) { case arrayAuxiliaryBlockerDomains[0]: // gamesradar if ($(".raleigh-optin-visible").is(":visible")) { clearInterval(currentStatus2); $("[class*='raleigh-optin-']").remove(); } break; } } } if (arrayAbnormalBlockerDomains.indexOf(domain) > -1) { switch(domain) { case arrayAbnormalBlockerDomains[0]: // makeuseof $("[class*='unblockplease-overlay']").remove(); $(".unblockplease").removeAttr("style"); break; case arrayAbnormalBlockerDomains[1]: // businessinsider $(".tp-modal").remove(); $(".tp-backdrop").remove(); $("body").removeClass("tp-modal-open"); break; } } function SledgehammerRemoval() { if (arrayAbnormalBlockerDomains.indexOf(domain) == arrayAbnormalBlockerDomains[2]) // dailybeast { $(".tp-modal").remove(); $(".tp-backdrop").remove(); $("body").removeClass("tp-modal-open"); $("[id*='offer-0-']").remove(); $("[displayname*='PianoTag']").remove(); $("[src*='tinypass.min.js']").remove(); $("#piano_bottom_ribbon_wrapper").remove(); console.clear(); console.log("blocker code removed"); } } SledgehammerRemoval(); function ClearAllIntervals() { console.clear(); if (arrayAbnormalBlockerDomains.indexOf(domain) != arrayAbnormalBlockerDomains[2]) // dailybeast { clearInterval("SledgehammerRemoval"); console.log("Sledgehammer interval cleared"); } for (var i = 1; i <= 6; i++) { var intervalName = "currentStatus" + i; clearInterval(intervalName); } clearInterval(ci); console.log("all intervals cleared"); } // Sets up listeners to supercede any blocker shenanigans if (arrayStandardBlockerDomains.indexOf(domain) > -1) { var currentStatus1 = setInterval(DOMStatusCheck, 50); } if (arrayAuxiliaryBlockerDomains.indexOf(domain) > -1) { var currentStatus2 = setInterval(DOMStatusCheck, 50); } // Second pass after 1.5 seconds if (arrayStandardBlockerDomains.indexOf(domain) > -1) { var currentStatus3 = setTimeout(DOMStatusCheck, 1500); } if (arrayAbnormalBlockerDomains.indexOf(domain) > -1) { var currentStatus4 = setTimeout(DOMStatusCheck, 1500); } // Third pass after 2.5 seconds if (arrayStandardBlockerDomains.indexOf(domain) > -1) { var currentStatus5 = setTimeout(DOMStatusCheck, 2500); } if (arrayAbnormalBlockerDomains.indexOf(domain) > -1) { var currentStatus6 = setTimeout(DOMStatusCheck, 2500); } // Last-pass guarantee after 7 seconds var ci = setTimeout(ClearAllIntervals, 7000); // Perpetual check and removal every 2.5 seconds - The Peter Gabriel Sledgehammer Special if (arrayAbnormalBlockerDomains.indexOf(domain) > -1) { var ABStatus = setInterval(SledgehammerRemoval, 2500); } console.clear(); } // Load jQuery and then execute the main function addJQuery(main);