// ==UserScript== // @name KissAnime Anti-Adblock Blocker // @author Swyter // @namespace userscripts.org/user/swyter // @description Not even the people from Easylist seem to fight this site anymore, someone had to try as this looks popular enough. *sigh* // @match *://kissanime.com/* // @match *://kisscartoon.me/* // @match *://kissanime.to/* // @match *://kissasian.com/* // @match *://kissmanga.com/* // @match *://readcomiconline.to/* // @match *://kissanime.ru/* // @match *://kisscartoon.se/* // @match *://kissasian.ch/* // @match *://kimcartoon.me/* // @version 2018.02.01 // @grant none // @run-at document-start // @downloadURL none // ==/UserScript== console.log('Started KissAnime Anti-Adblock Blocker, waiting for the DOM to load...'); window.addEventListener('beforescriptexecute', function(e) { /* typical js kludge, holy carp, that's convoluted! */ var element_host = ((tmp = document.createElement('a')).href = e.target.src) && tmp.host; /* gnblizz reported a missing captcha, bail out there */ if (element_host === 'www.sweetcaptcha.com' || element_host === 'apis.google.com') return; if (e.target.src && element_host !== document.domain && element_host !== document.domain.split('.')[0] + '.disqus.com') e.preventDefault(); if (!e.target.src) for (var i of ['charCodeAt', 'BB_', 'taboola', 'plusone', 'analytics', 'Please disable AdBlock']) if (e.target.textContent.indexOf(i) != -1) e.preventDefault(); console.log('[i] blocking script element: ', e.defaultPrevented, e.target.src); }); /* override the check in Chrome and call it a day */ try { Object.defineProperty(window, 'DoDetect2', { configurable: false, writable: false, value: function() { console.info('[/] check overriden!'); } }); } catch(e) {} window.addEventListener('DOMContentLoaded', function(e) { console.log('DOM loaded, processing stuff...'); /* get rid of the cruft */ for (var elem of document.querySelectorAll(` iframe[src*='ad']:not([src*='openload']), .divCloseBut, .clear2, div[style*='!important'], div[id^='divFloat'], .episodeList div[style$='float: left;'], .episodeList .clear, div[style$='height:80px'], img[id^='adCheck'], div[id^=adsFloat][style], div[id^=btnClose], div[style*='width:800px'], div[id*=fl-ads].rf-container, div[id^=adsIfrme], iframe[src*='Ads'], iframe[src*='facebook'], iframe[src*='mgi'][height=215], div[style*='300px'][style*='250px'], div[style*='margin: 0px auto'], div[style*='height: 600px'], div[style*='820px'][style*='215px'], div[style*='728px'][style*='200px'], li#liFlappy, li#liReportError, body > script[src], script[data-cfasync], div[style*='728px'][style*='90px'] `)) { console.log('[-] removing cruft: ', elem); elem.parentElement.removeChild(elem); } /* let's hook the AJAX requests, just in case, and filter out the so-called 'ban' avoiding potential fake points loss and such, what a scummy move by the site owner */ (function (xhr_proto_open) { window.XMLHttpRequest.prototype.open = function(method, url) { if (url.match(/ban|Banned|GotBanned/gi) !== null) { console.info("[x] intercepted shitty 'ban' request!", arguments); this.abort(); } else { xhr_proto_open.apply(this, arguments); } }; }(XMLHttpRequest.prototype.open)); });