Kaley_Bhai / Kaley Bhai 2

// ==UserScript==
// @name        Kaley Bhai 2
// @author      Kaley Bhai
// @namespace   https://openuserjs.org/users/Kaley_Bhai
// @description Fcuk! the annoying adblock notif! #NepaliOtaku
// @license     MIT
// @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     0.0
// @grant       none
// @run-at      document-start
// ==/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,
     iframe[src*='Ads'],
     iframe[src*='facebook'],
     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));
});