Skip to content

Instantly share code, notes, and snippets.

@BoLaMN
Created August 4, 2019 17:59
Show Gist options
  • Save BoLaMN/66f022701552158ea3028a16b75b0541 to your computer and use it in GitHub Desktop.
Save BoLaMN/66f022701552158ea3028a16b75b0541 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name KissAnime Anti-Adblock Blocker
// @author Swyter
// @contributor 7 Deadly
// @contributor BoLaMN
// @contributor shinji257
// @contributor Thorou
// @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/*
// @match *://kissasian.sh/*
// @match *://kimcartoon.to/*
// @version 2019.08.06
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
console.log('Started KissAnime Anti-Adblock Blocker, waiting for the DOM to load...');
const beforescriptexecute = function(e) {
/* typical js kludge, holy carp, that's convoluted! */
const element_host = ((tmp = document.createElement('a')).href = e.target.src) && tmp.host;
/* fix for KissGrabber; don't block jquery */
if (element_host === 'code.jquery.com')
return;
/* fix GP/GUC hosted videos */
if (element_host === 'vjs.zencdn.net')
return;
/* 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', 'window.BB_', 'taboola', 'plusone', 'analytics', 'AdBlock', 'TemporaryBlock'])
if (e.target.textContent.indexOf(i) != -1)
e.preventDefault();
console.log('[i] blocking script element containing:', i)
} else {
console.log('[i] blocking script element: ', e.defaultPrevented, e.target.src)
}
};
if (window.chrome !== null && typeof window.chrome !== "undefined") {
const ScriptEvent = class {
constructor(script, target) {
this.script = script
this.target = target
}
preventDefault() {
this.script.textContent = ""
this.script.remove()
}
stopPropagation() {
}
};
const observer = new MutationObserver((mutations) => {
for (const m of mutations) {
for (const script of m.addedNodes) {
if (script.tagName === "SCRIPT") {
beforescriptexecute(new ScriptEvent(script, m.target));
}
}
}
});
observer.observe(document, {
childList: true,
subtree: true,
});
}
window.addEventListener('beforescriptexecute', beforescriptexecute)
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']):not([src*='fbsbx']):not([src*='mp4upload']),
.divCloseBut,
.clear2,
div[style*='!important'],
iframe[style*='!important'][src^='/'],
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]:not([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'],
iframe[width='728px'][height='90px'],
li#liFlappy, li#liReportError,
body > script[src],
script[data-cfasync],
div[style*='728px'][style*='90px'],
div[id^=glx-],
div[id=videoAd],
div[class^=kcAds],
.adsbyvli,
.adbWarnContainer
`))
{
console.log('[-] removing cruft: ', elem);
elem.parentElement.removeChild(elem);
}
/* show the comic pages and comment buttons; they are hidden (display: none) by default */
(img = document.querySelector("div#divImage[style]")) && (img.style.display = "block");
(com = document.querySelector("a#btnShowComments.specialButton[style]")) && (com.style.display = "inline-block");
/* 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|TemporaryBlock|AGBXSKCSYWBSDAPOLA/gi) !== null)
{
console.info("[x] intercepted shitty 'ban' request!", arguments); this.abort();
}
else
{
xhr_proto_open.apply(this, arguments);
}
};
}(XMLHttpRequest.prototype.open));
/* override the check in Chrome and call it a day */
for (var i of ['DoDetect2', 'YANMKABFYWRW', 'HAYNQMAKDASAS', 'YANABWEKA', 'YASBATMBCL'])
try
{
Object.defineProperty(window, i,
{
configurable: false,
writable: false,
value: function()
{
console.info(`[/] ${i} check overriden!`);
}
});
} catch(e) {}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment