您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Not even the people from Easylist seem to fight this site anymore, someone had to try as this looks popular enough. *sigh*
当前为
- // ==UserScript==
- // @name KissAnime Anti-Adblock Blocker
- // @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 http://kissanime.com/*
- // @version 3.3.1
- // @grant GM_addStyle
- // @run-at document-end
- // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=swyterzone%40gmail%2ecom&item_number=swydonations¤cy_code=EUR
- // ==/UserScript==
- /* run this just on the parent page, not in sub-frames */
- if (window.parent !== window)
- throw "stop execution";
- /* get rid of timeouts right away, they aren't used for anything useful */
- console.log("Started KissAnime Anti-Adblock Blocker, waiting for the DOM to load...");
- /* chromium-based browsers compatibility/fallback */
- unsafeWindow = (unsafeWindow ? unsafeWindow : window);
- setTimeout_fn = unsafeWindow.setTimeout;
- //unsafeWindow.setTimeout=undefined;
- // window.setTimeout=undefined;
- function when_external_loaded()
- {
- console.log("DOM loaded, processing stuff...");
- /* remove the anti-adblock script */
- if(thing=document.querySelector("#adCheck3 + script"))
- {
- thing.parentElement.removeChild(thing);
- }
- /* get rid of the cruft */
- for(elem in cruft=document.querySelectorAll("iframe[src*='ad'], .divCloseBut, .clear2, div[style*='!important']"))
- {
- if(typeof cruft[elem]==="object")
- {
- console.log("removing cruft: ", cruft[elem]);
- cruft[elem].parentElement.removeChild(cruft[elem]);
- }
- }
- /* custom timeout override */
- (function(timeout_func)
- {
- window.setTimeout = function(arg, time)
- {
- if(//arguments.callee &&
- //arguments.callee.caller &&
- //arguments.callee.caller.toString().match(/(ad)check/i) != null ||
- (typeof arguments[0] === "string" && arguments[0].match(/detect/i) != null))
- {
- console.info("No timeout for you, AdBlock blocker!", arguments.callee.caller.toString().match(/(ad)check/i),arguments[0].match(/detect/i), arguments);
- return 0;
- }
- else
- {
- timeout_func.apply(this,arguments);
- }
- }
- }(window.setTimeout))
- /* 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)
- {
- XMLHttpRequest.prototype.open = function(method,url)
- {
- if(url.match(/ban|Banned|GotBanned/) != null)
- {
- console.info("Intercepted shitty 'ban' request!", arguments);
- this.abort();
- }
- else
- {
- xhr_proto_open.apply(this,arguments);
- }
- }
- }(XMLHttpRequest.prototype.open))
- }
- /* inject this cleaning function right in the page */
- window.document.head.appendChild(
- inject_fn = document.createElement("script")
- );
- inject_fn.innerHTML = when_external_loaded.toString() + ";when_external_loaded()";
- /* fix upper links positioning after removing the cruft and
- add styling rules for my custom lightsoff lampshade */
- GM_addStyle("a#qualityChoose \
- { \
- display: block; \
- } \
- \
- div.swylightsoff \
- { \
- right: 0; \
- width: 100%; \
- height: 100%; \
- top: 0; \
- left: 0; \
- position: fixed; \
- background: rgba(0,0,0,0.96); \
- } \
- \
- #divContentVideo \
- { \
- z-index: 999; \
- } \
- \
- #switch \
- { \
- z-index: auto; \
- }");
- /* make the *lights off* button work */
- document.getElementById("switch").addEventListener("click",function(e)
- {
- lights_off = document.querySelector('.swylightsoff');
- if(!lights_off)
- {
- console.log("Lights off");
- window.document.getElementById("switch").appendChild(
- inject_lo = document.createElement("div")
- );
- inject_lo.classList.add("swylightsoff");
- }
- else
- {
- console.log("Lights on");
- lights_off.parentElement.removeChild(lights_off);
- }
- })