From f230ceae3293d14a071ccf1c4b59bf6be694753d Mon Sep 17 00:00:00 2001 From: reek Date: Fri, 7 Aug 2015 22:19:31 +0200 Subject: [PATCH] add v8.3 --- oldest/8.3.user.js | 3727 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3727 insertions(+) create mode 100644 oldest/8.3.user.js diff --git a/oldest/8.3.user.js b/oldest/8.3.user.js new file mode 100644 index 000000000..9eb11f485 --- /dev/null +++ b/oldest/8.3.user.js @@ -0,0 +1,3727 @@ +// ==UserScript== +// @name Anti-Adblock Killer | Reek +// @namespace https://userscripts.org/scripts/show/155840 +// @description Anti-Adblock Killer is a userscript aiming to circumvent many protections used on some websites that force the user to disable AdBlockers. +// @author Reek | reeksite.com +// @version 8.3 +// @encoding utf-8 +// @license https://creativecommons.org/licenses/by-nc-sa/4.0/ +// @icon https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png +// @homepage https://github.com/reek/anti-adblock-killer#anti-adblock-killer--reek +// @twitterURL https://twitter.com/antiadbkiller +// @supportURL https://github.com/reek/anti-adblock-killer/issues +// @contributionURL https://github.com/reek/anti-adblock-killer#donate +// @updateURL https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js +// @downloadURL https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js +// @include http*://* +// @grant unsafeWindow +// @grant GM_addStyle +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_xmlhttpRequest +// @grant GM_registerMenuCommand +// @grant GM_deleteValue +// @grant GM_listValues +// @grant GM_getResourceText +// @grant GM_getResourceURL +// @grant GM_log +// @grant GM_openInTab +// @grant GM_setClipboard +// @grant GM_info +// @grant GM_getMetadata +// @run-at document-start +// ==/UserScript== +/*===================================================== +Thanks +======================================================= + +Donors: M. Howard, Shunjou, Charmine, Kierek93, G. Barnard, H. Young, Seinhor9, ImGlodar, Ivanosevitch, HomeDipo, R. Martin, DrFiZ, Tippy, B. Rohner, P. Kozica, M. Patel, W4rell, Tscheckoff, AdBlock Polska, AVENIR INTERNET, coolNAO, Ben, J. Park, C. Young, J. Bou, M. Cano, J. Jung, A. Sonino, J. Litten, M. Schrumpf, G. Pepe, A. Trufanov, R. Palmer, J. Rautiainen + +Collaborators: InfinityCoding, Couchy, Dindog, Floxflob, U Bless, Watilin, @prdonahue, Hoshie, 3lf3nLi3d, Alexo, Crits, Noname120, Crt32, JixunMoe, Athorcis, Killerbadger, SMed79, Alexander255, Anonsubmitter, RaporLoLpro, Maynak00, Robotex, Vinctux, Blahx, MajkiIT, F4z, Angelsl, Mikhaelk, Marek, Hamsterbacke + +Users: Thank you to all those who use Anti Adblock Killer, who report problems, who write the review, which add to their favorites, making donations, which support the project and help in its development or promote. + +======================================================= +Mirrors +======================================================= + +Github: http://tinyurl.com/mcra3dn +Greasyfork: http://tinyurl.com/puyxrn4 +Openuserjs: http://tinyurl.com/nnqje32 +MonkeyGuts: http://tinyurl.com/ka5fcqm +Userscripts: http://tinyurl.com/q8xcejl + +======================================================= +Documentation +======================================================= + +Greasemonkey: http://tinyurl.com/yeefnj5 +Scriptish: http://tinyurl.com/cnd9nkd +Tampermonkey: http://tinyurl.com/pdytfde +Violentmonkey: http://tinyurl.com/n34wn6j +NinjaKit: http://tinyurl.com/pkkm9ug + +======================================================= +Script +======================================================*/ + +Aak = { + name : 'Anti-Adblock Killer', + version : '8.3', + scriptid : 'gJWEp0vB', + homeURL : 'https://github.com/reek/anti-adblock-killer#anti-adblock-killer--reek', + changelogURL : 'https://github.com/reek/anti-adblock-killer#changelog', + donateURL : 'https://github.com/reek/anti-adblock-killer#donate', + featuresURL : 'https://github.com/reek/anti-adblock-killer#features', + reportURL : 'https://github.com/reek/anti-adblock-killer/wiki/Report-Guide', + twitterURL : 'https://twitter.com/antiadbkiller', + downloadURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js', + subscribeURL : 'abp:subscribe?location=https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt&title=Anti-Adblock%20Killer%20|%20Filters%20for%20Adblockers', + listURL : "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt", + iconURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png', + excludes : ["360.cn", "amazon.", "apple.com", "ask.com", "baidu.com", "bing.com", "bufferapp.com", "chatango.com", "chromeactions.com", "easyinplay.net", "ebay.com", "facebook.com", "flattr.com", "flickr.com", "ghacks.net", "google.", "imdb.com", "imgbox.com", "imgur.com", "instagram.com", "jsbin.com", "jsfiddle.net", "linkedin.com", "live.com", "mail.ru", "microsoft.com", "msn.com", "paypal.com", "pinterest.com", "preloaders.net", "qq.com", "reddit.com", "reeksite.com", "stackoverflow.com", "tampermonkey.net", "tumblr.com", "twitter.com", "vimeo.com", "wikipedia.org", "w3schools.com", "yahoo.", "yandex.ru", "youtu.be", "youtube.com", "seansik.tv", "xemvtv.net", "vod.pl", "agar.io", "sportsplays.com"], + debug : { + log : true, + exclude : false, + dump : false, + inserted : false, + removed : false + }, + initialize : function () { + // Debug + if (Aak.debug.dump) { + Aak.log(Aak); + Aak.log(Aak.apiSupported()); + Aak.log(Aak.getScriptManager()); + Aak.log(Aak.getBrowser()); + } + // Script Manager + if (Aak.getScriptManager()) { + Aak.registerCommands(); + Aak.update.automatic(); + Aak.listDetect(); + Aak.blockDetect(); + } else { // Native + throw "Sorry! No Native support.."; + } + }, + uw : unsafeWindow || window, + $ : unsafeWindow.$ || unsafeWindow.jQuery || null, + isTopWindow : !(window.top != window.self), + ready : function (callback) { + window.addEventListener('load', callback); + }, + contains : function (string, search) { + return string.indexOf(search) != -1; + }, + log : function (data, method) { + if (Aak.debug.log) { + console = console || unsafeWindow.console; + console[method || 'info']('Aak' + Aak.getVersion(), data); + } + }, + dumpDOM : function (delay) { + setTimeout(function () { + var array = []; + var win = Aak.uw; + for (var k in win) { + var curr = win[k]; + if (typeof curr === 'object') { + try { + array.push(k + ': ' + JSON.stringify(curr)); + } catch (e) { + console.log(k, typeof curr, curr); + } + } + } + document.body.innerHTML = ''; + }, delay || 0); + }, + apiSupported : function () { + if (Aak.isTopWindow) { + // GM API - http://tinyurl.com/yeefnj5 + return { + GM_xmlhttpRequest : typeof GM_xmlhttpRequest != 'undefined', + GM_setValue : typeof GM_setValue != 'undefined', + GM_getValue : typeof GM_getValue != 'undefined', + GM_addStyle : typeof GM_addStyle != 'undefined', + GM_registerMenuCommand : typeof GM_registerMenuCommand != 'undefined', + GM_info : typeof GM_info != 'undefined', + GM_getMetadata : typeof GM_getMetadata != 'undefined', + GM_deleteValue : typeof GM_deleteValue != 'undefined', + GM_listValues : typeof GM_listValues != 'undefined', + GM_getResourceText : typeof GM_getResourceText != 'undefined', + GM_getResourceURL : typeof GM_getResourceURL != 'undefined', + GM_log : typeof GM_log != 'undefined', + GM_openInTab : typeof GM_openInTab != 'undefined', + GM_setClipboard : typeof GM_setClipboard != 'undefined' + } + } + }, + getBrowser : function () { + var ua = navigator.userAgent; + if (Aak.contains(ua, 'Firefox')) { + return "Firefox"; + } else if (Aak.contains(ua, 'MSIE')) { + return "IE"; + } else if (Aak.contains(ua, 'Opera')) { + return "Opera"; + } else if (Aak.contains(ua, 'Chrome')) { + return "Chrome"; + } else if (Aak.contains(ua, 'Safari')) { + return "Safari"; + } else if (Aak.contains(ua, 'Konqueror')) { + return "Konqueror"; + } else if (Aak.contains(ua, 'PaleMoon')) { + return "PaleMoon"; // fork firefox + } else if (Aak.contains(ua, 'Cyberfox')) { + return "Cyberfox"; // fork firefox + } else if (Aak.contains(ua, 'SeaMonkey')) { + return "SeaMonkey"; // fork firefox + } else if (Aak.contains(ua, 'Iceweasel')) { + return "Iceweasel"; // fork firefox + } else { + return ua; + } + }, + getVersion : function () { + return Number(Aak.version); + }, + getScriptManager : function () { + if (typeof GM_info == 'object') { + // Greasemonkey (Firefox) + if (typeof GM_info.uuid != 'undefined') { + return 'Greasemonkey'; + } // Tampermonkey (Chrome/Opera) + else if (typeof GM_info.scriptHandler != 'undefined') { + return 'Tampermonkey'; + } + } else { + // Scriptish (Firefox) + if (typeof GM_getMetadata == 'function') { + return 'Scriptish'; + } // NinjaKit (Safari/Chrome) + else if (typeof GM_setValue != 'undefined' && + typeof GM_getResourceText == 'undefined' && + typeof GM_getResourceURL == 'undefined' && + typeof GM_openInTab == 'undefined' && + typeof GM_setClipboard == 'undefined') { + return 'NinjaKit'; + } else { // Native + return false; + } + } + }, + generateID : function (len) { + var str = ''; + var len = len || 10; + var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + for (var i = 0; i < len; ++i) { + str += charset.charAt(Math.floor(Math.random() * charset.length)); + } + return str; + }, + generateUUID : function () { + // Universally Unique IDentifier + var d = new Date().getTime(); + var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16); + }); + return uuid; + }, + getUUID : function () { + var name = 'aak-uuid'; + if (Aak.getValue(name) == 'undefined') { + Aak.setValue(name, Aak.generateUUID()); + } + return Aak.getValue(name); + }, + once : function (day, name, callback) { + setTimeout(function () { + var later = isNaN(Aak.getValue(name)) ? 1 : Number(Aak.getValue(name)); + var now = new Date().getTime(); + if (later < now) { + Aak.setValue(name, (now + (day * 24 * 60 * 60 * 1000)).toString()); + callback(); + } + }, 1e3); + }, + go : function (url) { + location.href = url; + }, + refresh : function () { + location.href = location.href; + }, + reload : function () { + location.reload(true); + }, + registerCommands : function () { + Aak.ready(function () { + // Scriptish + // note: No menu command is created when the user script is run in a iframe window. + // doc: http://tinyurl.com/kvvv7yt + if (Aak.isTopWindow && typeof GM_registerMenuCommand != 'undefined') { + GM_registerMenuCommand(Aak.name + ' ' + Aak.getVersion() + ' Homepage', function () { + location.href = Aak.homeURL; + }); + GM_registerMenuCommand(Aak.name + ' ' + Aak.getVersion() + ' Update', Aak.update.manual); + } + }); + }, + notification : function (message, delay) { + if (Aak.isTopWindow) { + // css + // tool: http://csscompressor.com/ + // animate: http://daneden.github.io/animate.css/ + // crimson: #DC143C + Aak.addStyle('#aak-notice{font-family:arial;color:#000;font-variant:small-caps;font-size:14px;border:1px solid #999;border-radius:3px;box-shadow:1px 1px 12px #555;width:400px;max-width:400px;min-height:100px;top:0;left:0;line-height:1.2;z-index:999999;position:fixed;display:block;background-color:#fff;background-image:url(https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png);background-repeat:no-repeat;background-position:10px center;background-size:80px;margin:10px}#aak-notice-content{background-color:#fff;width:260px;min-height:70px;margin:20px 10px 10px 100px;text-align:left}.aak-notice-ok{float:right;bottom:10px;right:10px;position:absolute;font-size:12px;border:2px solid #DC143C;background-color:#DC143C;color:#FFF;padding:5px 10px;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.aak-notice-ok:hover{background-color:#FFF;color:#DC143C;text-decoration:none}#aak-notice-close{float:right;top:10px;right:10px;cursor:pointer;width:16px;height:16px;position:absolute}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);transition-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{animation-name:bounceInLeft;animation-duration:1s;-webkit-animation-name:bounceInLeft;-webkit-animation-duration:1s}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{animation-name:bounceOutLeft;animation-duration:1s;-webkit-animation-name:bounceOutLeft;-webkit-animation-duration:1s}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;-webkit-animation-duration:3s;animation-name:fadeIn;animation-duration:3s}'); + // remove + Aak.removeElement('#aak-notice'); + setTimeout(function () { + Aak.createElement({ + tag : 'div', + id : 'aak-notice', + class : 'bounceInLeft', + html : '
' + message + '
', + to : 'body' + }); + var close = function () { + Aak.getElement('#aak-notice').className = 'bounceOutLeft'; + setTimeout(function () { + Aak.removeElement('#aak-notice'); + }, 1e3); + }; + // close (manually) + Aak.getElement('#aak-notice-close').onclick = function () { + close(); + }; + // close (automatically) + setTimeout(function () { + close(); + }, delay); + }, 50); + } + }, + listDetect : function () { + if (Aak.isTopWindow) { + Aak.ready(function () { + Aak.once(30, 'aak-checklist', function () { + var elem = document.createElement("div"); + elem.id = "k2Uw7isHrMm5JXP1Vwdxc567ZKc1aZ4I"; + elem.innerHTML = "
"; + document.body.appendChild(elem); + setTimeout(function () { + if (elem.clientHeight) { + Aak.notification('

It seems that you have not subscribed to AakList (Anti-Adblock Killer ). Subscribe

', 3e4); + Aak.log("AakList not detected !" + elem.clientHeight, 'warn'); + } else { + Aak.log("AakList detected !"); + } + }, 5e3); + }); + }); + } + }, + openInTab : function (url) { + if (typeof GM_openInTab != 'undefined') { + GM_openInTab(url); + } else { + var newWindow = window.open(url, "_blank"); + newWindow.focus(); + } + }, + request : function (settings) { + // doc: http://tinyurl.com/2t7wbr + settings.url = settings.url || ''; + settings.method = settings.method || 'GET'; + settings.headers = settings.headers || {}; + settings.timeout = settings.timeout || 2e4; // 20s + + if (typeof GM_xmlhttpRequest != 'undefined') { + if (settings.data || settings.method == 'POST') { + settings.method = 'POST'; + settings.data = Aak.serialize(settings.data || {}); + settings.headers = Aak.setProperty(settings.headers, { + 'X-Requested-With' : 'XMLHttpRequest', + 'Content-Type' : 'application/x-www-form-urlencoded' + }); + } + GM_xmlhttpRequest(settings); + } else { + throw "Sorry! No GM XMLHttpRequest support.."; + } + }, + update : { + manual : function () { + if (Aak.isTopWindow) { + Aak.notification('

Checking...

', 6e4); + Aak.update.getRemote(); + } + }, + automatic : function () { + if (Aak.isTopWindow) { + Aak.ready(function () { + Aak.once(5, 'aak-checkupdate', function () { + Aak.request({ + url : 'http://reeksite.com/php/get.php?checkupdate', + data : { + scriptid : Aak.scriptid, + uuid : Aak.getUUID(), + version : Aak.getVersion(), + browser : Aak.getBrowser(), + scriptmanager : Aak.getScriptManager() + }, + onload : function (response) { + try { + var res = response.responseText; + var json = JSON && JSON.parse(res); + if (json.update) { + Aak.downloadURL = json.url; + Aak.update.manual(); + } + } catch (e) { + Aak.log(response, 'error'); + } + } + }); + }); + }); + } + }, + getRemote : function () { + Aak.request({ + url : Aak.downloadURL, + onload : function (response) { + var html = '

Failed...

'; + var res = response.responseText; + var status = response.status; + if (status == 200) { + var local = Aak.getVersion(); + var remote = Number(res.match(/@version\s+(\d+\.\d+)/)[1]); + if (local < remote) { + var html = '

Anti-Adblock Killer v' + remote + ' is available.

Install

'; + } else { + var html = '

Anti-Adblock Killer is up to date.

'; + } + } + Aak.getElement('#aak-notice-content').innerHTML = html; + } + }); + } + }, + autoReport : function (system, host, target) { + var host = host || location.host; + var target = target || ''; + if (Aak.getLocal(system) == "undefined") { + Aak.setLocal(system, host); // save + Aak.request({ + url : 'http://reeksite.com/php/get.php?autoreport', + data : { + system : system, + host : host, + target : target + }, + onload : function (response) { + var res = response.responseText; + //Aak.log(res); + } + }); + } + Aak.log(system); + }, + setValue : function (name, value) { + if (typeof GM_setValue !== "undefined") { + GM_setValue(name, value); + } else { + throw "Sorry! No GM Storage support.."; + } + }, + getValue : function (name) { + if (typeof GM_getValue !== "undefined") { + return GM_getValue(name) || 'undefined'; + } else { + throw "Sorry! No GM Storage support.."; + } + }, + setLocal : function (name, value) { + // doc: http://tinyurl.com/8peqwvd + if (typeof localStorage !== "undefined") { + localStorage[name] = value; + } else { + throw "Sorry! No Web Storage support.."; + } + }, + getLocal : function (name) { + if (typeof localStorage !== "undefined") { + return localStorage[name] || 'undefined'; + } else { + throw "Sorry! No Web Storage support.."; + } + }, + setSession : function (name, value) { + // Doc: http://tinyurl.com/8peqwvd + if (typeof sessionStorage !== "undefined") { + sessionStorage[name] = value; + } else { + throw "Sorry! No Web Storage support.."; + } + }, + getSession : function (name) { + if (typeof sessionStorage !== "undefined") { + return sessionStorage[name] || 'undefined'; + } else { + throw "Sorry! No Web Storage support.."; + } + }, + setCookie : function (name, value, time) { + var time = (time) ? time : 365 * 24 * 60 * 60 * 1000; // 1 year + var expires = new Date(); + expires.setTime(new Date().getTime() + time); + document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + expires.toGMTString() + ";path=/"; + }, + getCookie : function (name) { + var oRegex = new RegExp("(?:; )?" + name + "=([^;]*);?"); + if (oRegex.test(document.cookie)) { + return decodeURIComponent(RegExp["$1"]); + } + }, + stopRedirect : function () { + if ('watch' in window) { + Aak.uw.watch("location", function () {}); + Aak.uw.location.watch("href", function () {}); + } else { + Aak.uw.location = "#"; + throw 'Stop Redirect'; + } + }, + confirmLeave : function () { + window.onbeforeunload = function () { + return ''; + }; + }, + confirmReport : function (elem) { + elem.innerHTML = 'Report'; + elem.title = 'Report issue or anti-adblock'; + elem.onclick = function (e) { + e.preventDefault(); + if (confirm("Do you want to report issue or anti-adblock ?")) { // Clic on OK + location.href = Aak.reportURL; + } else { + location.href = elem.href; + } + } + }, + stopScript : function (e) { + e.preventDefault(); + e.stopPropagation(); + }, + innerScript : function (e) { + return e.target.innerHTML; + }, + addScript : function (code) { + var script = document.createElement('script'); + script.innerHTML = (typeof code === 'function') ? Aak.getFunctionCode(code) : code.toString(); + document.head.appendChild(script); + document.head.removeChild(script); + }, + addExternalScript : function (src) { + var script = document.createElement('script'); + script.src = src; + document.head.appendChild(script); + document.head.removeChild(script); + }, + getFunctionCode : function (fn) { + var str = fn.toString(); + var first = str.indexOf("{") + 1; + var last = str.lastIndexOf("}"); + return str.substr(first, last - first).trim(); + }, + onElement : function (element, callback, repeat) { + var repeat = repeat || 10; + var loop = setInterval(function () { + var elem = Aak.getElement(element); + if (elem) { + callback(); + clearInterval(loop); + } + repeat = (repeat) ? repeat - 1 : clearInterval(loop); + }, 1e3); + }, + addElement : function (str) { // ex: div.ads or span#ads + var split = str.replace('.', ':className:').replace('#', ':id:').split(':'); + Aak.addScript('document.documentElement.appendChild(document.createElement("' + split[0] + '")).' + split[1] + ' = "' + split[2] + '"; document.querySelector("' + str + '").innerHTML = "
";'); + }, + removeElement : function (elem) { + if (elem instanceof HTMLElement) { + return elem.parentNode.removeChild(elem); + } else if (typeof elem === "string") { + var elem = document.querySelectorAll(elem); + for (var i = 0; i < elem.length; i++) { + elem[i].parentNode.removeChild(elem[i]); + } + } else { + Aak.log('Error ' + elem + ' not removed !'); + } + }, + getElement : function (elem) { + if (typeof elem == 'string') { + return document.querySelector(elem) || false; + } else if (elem instanceof HTMLElement) { + return elem; + } else { + return false; + //throw 'Not object or invalid selector'; + } + }, + createElement : function (props) { + var node = {}; + for (var name in props) { + switch (name) { + case "tag": + var node = document.createElement(props[name]); + break; + case "text": + var text = ('innerText' in document) ? 'innerText' : 'textContent'; + node[text] = props[name]; + break; + case "html": + node.innerHTML = props[name]; + break; + case "class": + node.className = props[name]; + break; + case "to": + var elem = Aak.getElement(props[name]); + elem.appendChild(node); + break; + case "before": + var elem = Aak.getElement(props[name]); + elem.parentNode.insertBefore(node, elem); + break; + case "after": + var elem = Aak.getElement(props[name]); + elem.parentNode.insertBefore(node, elem.nextSibling); + break; + case "replace": + var elem = Aak.getElement(props[name]); + elem.parentNode.replaceChild(node, elem); + break; + default: + node[name] = props[name]; + } + } + }, + replaceElement : function (oldNode, newNode) { + oldNode.parentNode.replaceChild(newNode, oldNode); + }, + setElement : function (selector, props) { + var node = Aak.getElement(selector); + if (node) { + for (var name in props) { + switch (name) { + case "text": + var text = ('innerText' in document) ? 'innerText' : 'textContent'; + node[text] = props[name]; + break; + case "html": + node.innerHTML = props[name]; + break; + case "class": + node.className = props[name]; + break; + default: + node[name] = props[name]; + } + } + } + }, + addStyle : function (css) { + var css = css.replace(/;/g, ' !important;'); + if (typeof GM_addStyle != 'undefined') { + GM_addStyle(css); + } else { + document.head.appendChild(document.createElement('style')).innerHTML = css; + } + }, + getStyle : function (selector, prop) { + var elem = Aak.getElement(selector); + if (elem.currentStyle) { + return elem.currentStyle[prop]; + } else if (window.getComputedStyle) { + return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop); + } + }, + decodeURI : function (str) { + return decodeURIComponent(str); + }, + encodeURI : function (str) { + return encodeURIComponent(str); + }, + encodeHTML : function (str) { + return String(str).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }, + decodeHTML : function (str) { + return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); + }, + serialize : function (data) { + if (typeof data == 'object') { + var arr = []; + for (var name in data) { + arr.push(name + '=' + Aak.encodeURI(data[name])); + } + return arr.join('&'); + } + return data; + }, + unserialize : function (str) { + var str = Aak.decodeHTML(str); + var arr = str.split('&'); + var obj = {}; + arr.forEach(function (entry) { + if (entry != '' && entry.split('=')) { + var splits = entry.split('='); + obj[splits[0]] = Aak.decodeURI(splits[1]); + } + }); + return obj; + }, + delProperty : function (obj, props) { + var props = (typeof props == 'string') ? props.split(',') : props; + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + if (obj.hasOwnProperty(prop)) { + delete obj[prop]; + } + } + return obj; + }, + setProperty : function (obj1, obj2) { + for (var prop in obj2) { + obj1[prop] = obj2[prop]; + } + return obj1; + }, + editSWF : function (so, opts) { + Aak.onElement(so, function () { + var original = Aak.getElement(so); + var clone = original.cloneNode(true); + + if (opts.setAttributes) { + var obj = opts.setAttributes; + for (var p in obj) { + if (clone.querySelector('param[name="' + p + '"]')) { + clone.querySelector('param[name="' + p + '"]').value = obj[p]; + } else if (clone.getAttribute(p)) { + clone.setAttribute(p, obj[p]); + } + } + } + if (opts.delAttributes) { + var obj = opts.delAttributes; + for (var p in obj) { + if (clone.querySelector('param[name="' + p + '"]')) { + Aak.removeElement(clone.querySelector('param[name="' + p + '"]')); + } else if (clone.getAttribute(p)) { + delete obj[p]; + } + } + } + + if (opts.setFlashvars || opts.delFlashvars) { + if (clone.querySelector('param[name="flashvars"]')) { + var param = clone.querySelector('param[name="flashvars"]'); + var sFlashvars = param.value; + } else if (clone.getAttribute('flashvars')) { + var sFlashvars = clone.getAttribute('flashvars'); + } else if (clone.getAttribute('data') && clone.getAttribute('data').indexOf('?') >= 0) { + var splits = clone.getAttribute('data').split('?', 2); + var swf = splits[0]; + var sFlashvars = splits[1]; + } + + var oFlashvars = Aak.unserialize(sFlashvars); + Aak.log(oFlashvars); + if (opts.setFlashvars) { + oFlashvars = Aak.setProperty(oFlashvars, opts.setFlashvars); + } + if (opts.delFlashvars) { + oFlashvars = Aak.delProperty(oFlashvars, opts.delFlashvars); + } + var sFlashvars = Aak.serialize(oFlashvars); + + if (param) { + param.value = sFlashvars; + } else if (swf) { + clone.setAttribute('data', swf + '?' + sFlashvars); + } else { + clone.setAttribute('flashvars', sFlashvars); + } + } + // replace + Aak.replaceElement(original, clone); + }); + }, + player : { // http://tinyurl.com/pb6fthj + in : { + node : null, + html : null, + tag : null, + parent : null + }, + out : { + node : null, + html : null, + tag : null, + parent : null + }, + nameplayer : 'custom', + swfvars : null, + options : { + method : 'replace', + output : 'embed' + }, + flashvars : { + str : null, + obj : {} + }, + attributes : { + wmode : 'opaque', + quality : 'high', + bgcolor : '#000000', + type : 'application/x-shockwave-flash', + pluginspage : 'http://www.adobe.com/go/getflash', + allowscriptaccess : 'always', // never / always + allowfullscreen : true + }, + get : function (element) { + + if (Aak.getElement(element)) { + this.in.node = Aak.getElement(element); + } else { + throw 'Not object or embed player or invalid selector'; + } + + this.in.html = this.getHtml(this.in.node); + this.in.parent = this.in.node.parentNode; + this.in.tag = this.in.node.tagName; + + this.attributes.id = this.attributes.name = Aak.generateID(); + this.attributes.height = this.in.node.height || this.in.node.clientHeight || '100%'; + this.attributes.width = this.in.node.width || this.in.node.clientWidth || '100%'; + + if (/^(object|embed)$/i.test(this.in.tag)) { + this.attributes.src = this.in.node.src || this.in.node.data || false; + this.flashvars.str = this.in.node.flashvars || this.in.node.querySelector('param[name="flashvars"]') && this.in.node.querySelector('param[name="flashvars"]').value || false; + var swfvars = !this.flashvars.str && this.in.node.data && this.in.node.data.split('?', 2) || false; + if (swfvars) { + this.attributes.src = swfvars[0]; + this.flashvars.str = swfvars[1]; + } + this.splitVars(); + this.joinVars(); + } + //Aak.log(this); + }, + log : function (a) { + Aak.log('Aak.player ' + a || '' + ''); + Aak.log(this); + }, + mergeObj : function (obj1, obj2) { + for (var prop in obj2) { + obj1[prop] = obj2[prop]; + } + }, + setVars : function (flashvars) { + if (typeof flashvars == 'string') { + this.flashvars.str = flashvars; + this.splitVars(); + this.joinVars(); + } else if (typeof flashvars == 'object') { + this.mergeObj(this.flashvars.obj, flashvars); + this.joinVars(); + this.splitVars(); + } + }, + removeVars : function (str) { + var obj = this.flashvars.obj; + var splits = str.split(','); + for (var i = 0; i < splits.length; i++) { + var k = splits[i]; + if (k in obj) + delete obj[k]; + } + this.flashvars.obj = obj; + this.joinVars(); + }, + splitVars : function () { + var str = Aak.decodeHTML(this.flashvars.str); + var arr = str.split('&'); + var obj = {}; + for (var i = 0; i < arr.length; i++) { + var k = arr[i]; + if (k != '' && k.split('=')) { + var s = k.split('='); + obj[s[0]] = Aak.decodeURI(s[1]); + } + } + this.flashvars.obj = obj; + }, + joinVars : function () { + var obj = this.flashvars.obj; + var arr = []; + for (var k in obj) { + arr.push(k + '=' + Aak.encodeURI(obj[k])); // encodeURIComponent + } + this.flashvars.str = arr.join('&'); // & + }, + insert : function () { + // + this.swfvars = [this.attributes.src, this.flashvars.str].join('?'); + switch (this.options.output) { + case 'iframe': + this.out.node = document.createElement('iframe'); + this.out.node.setAttribute('src', this.swfvars); + this.out.node.setAttribute('width', this.attributes.width + 10); + this.out.node.setAttribute('height', this.attributes.height + 10); + this.out.node.setAttribute('frameborder', 0); + this.out.node.setAttribute('scrolling', 'no'); + this.out.node.setAttribute('allowfullscreen', true); // http://tinyurl.com/oyyehab + // allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen + break; + case 'tab': + return Aak.openInTab(this.swfvars); + break; + case 'html5': + this.out.node = document.createElement('video'); + this.out.node.innerHTML = 'Video not playing ? Download file instead.'; + for (var name in this.attributes) { + this.out.node.setAttribute(name, this.attributes[name]); + } + /* + if (this.attributes.autoplay) { // fix bug duplicate playing on firefox/chrome + this.out.node.onloadstart = function () { + this.play(); + }; + }*/ + this.out.node.onerror = function () { // switch to plugin player + setTimeout(function () { + Aak.player.plugin(this, { + file : Aak.player.attributes.src + }, 3e3); + }); + }; + break; + default: + this.out.node = document.createElement('embed'); + for (var name in this.attributes) { + this.out.node.setAttribute(name, this.attributes[name]); + } + if (this.flashvars.str) { + this.out.node.setAttribute('flashvars', this.flashvars.str); + } + } + + this.out.html = this.getHtml(this.out.node); + this.out.tag = this.out.node.tagName; + + if (this.options.output == 'inner') { + this.in.node.innerHTML = this.out.html; + } else { // replace + this.in.parent.replaceChild(this.out.node, this.in.node); + } + this.log('done'); + }, + getHtml : function (node) { + var tmp = document.createElement('div'); + tmp.appendChild(node.cloneNode(true)) + return tmp.innerHTML; + }, + getMime : function (file) { + var mime = file.match(/\.(flv|mp4|webm|ogv|ogg|mp3|mpeg|mpg|mkv|avi|mov)$/); + if (mime && mime.length == 2) { + return 'video/' + mime[1]; + } else { + return 'video/mp4'; + } + }, + jwplayer5 : function (id, setup) { + // Jwplayer 5 (flash) + // support: http://tinyurl.com/mjavxdr + // mp4, m4v, f4v, mov, flv, webm, aac, mp3, vorbis, hls, rtmp, youtube, aac, m4a, f4a, mp3, ogg, oga + + this.get(id); + this.nameplayer = 'jwplayer5'; + this.attributes.src = "http://player.longtailvideo.com/player5.9.swf"; // v5.9 + this.attributes.src = "http://player.longtailvideo.com/player.swf"; // v5.10 + this.attributes.height = setup.height || this.in.node.clientHeight || "100%"; + this.attributes.width = setup.width || this.in.node.clientWidth || "100%"; + + setup.abouttext = 'Anti-Adblock Killer'; + setup.aboutlink = 'https://github.com/reek/anti-adblock-killer'; + this.mergeObj(this.flashvars.obj, setup); + this.flashvars.obj.controlbar = 'over'; + if (setup.skin) { + this.flashvars.obj.skin = 'http://www.longtailvideo.com/files/skins/' + setup.skin + '/5/' + setup.skin + '.zip'; + } + this.joinVars(); + this.options.output = 'embed'; + this.insert(); + }, + flowplayer : function (id, setup) { + // Flowplayer (flash) + // support: mp4, flv, f4v, m4v, mov + // Config: http://tinyurl.com/na7vy7b + + this.get(id); + this.nameplayer = 'flowplayer'; + this.attributes.src = "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf"; + this.attributes.height = setup.clip && setup.clip.height || this.in.node.clientHeight || "100%"; + this.attributes.width = setup.clip && setup.clip.width || this.in.node.clientWidth || "100%"; + + setup.autoPlay = setup.clip && setup.clip.autostart; + setup.url = setup.clip && setup.clip.file; + + this.flashvars.obj = { + config : JSON.stringify(setup) + }; + this.flashvars.str = 'config=' + JSON.stringify(setup); + this.options.output = 'embed'; + this.insert(); + }, + videojs : function (id, setup) { + //http://tinyurl.com/pcgx2ob + //http://tinyurl.com/nscztmm + //http://jsfiddle.net/N8Zs5/18/ + + this.get(id); + this.nameplayer = 'videoJs'; + + setup.autostart = setup.autostart || false; + setup.height = setup.height || this.attributes.height; + setup.width = setup.width || this.attributes.width; + setup.type = this.getMime(setup.file || setup.src); + setup.id = setup.id || Aak.generateID(); + + var html = ''; + this.attributes.src = "data:text/html;charset=utf-8," + escape(html); + this.options.output = 'iframe'; + this.insert(); + }, + jwplayer6 : function (id, setup) { + // Jwplayer 6 (flash) + // Config: http://tinyurl.com/lcygyu9 + // Iframe: http://tinyurl.com/86agg68 + + this.get(id); + this.nameplayer = 'jwplayer6'; + + setup.primary = 'flash'; + setup.height = setup.height || this.attributes.height; + setup.width = setup.width || this.attributes.width; + + var html = '
'; + this.attributes.src = "data:text/html;charset=utf-8," + escape(html); + this.options.output = 'iframe'; + this.insert(); + }, + external : function (nameplayer, id, setup) { + + this.get(id); + this.nameplayer = 'external'; + + setup.height = setup.height || this.attributes.height; + setup.width = setup.width || this.attributes.width; + + var encoded = btoa(JSON.stringify(setup)); + this.attributes.src = 'http://reeksite.com/player/player.php?' + nameplayer + '=' + encoded; + this.options.output = 'iframe'; + this.insert(); + }, + plugin : function (id, setup) { + // Web Player (plugin) + // VLC : http://tinyurl.com/omlzp39 + // WMP : + // QT : + + this.get(id); + this.nameplayer = 'plugin'; + this.attributes.autoplay = setup.autostart || setup.autoplay || false; + this.attributes.src = setup.file || setup.src; + this.attributes.height = setup.height || this.in.node.clientHeight || "100%"; + this.attributes.width = setup.width || this.in.node.clientWidth || "100%"; + + // Plugins + var plugins = []; + if (navigator.plugins && (navigator.plugins.length > 0)) { + for (var i = 0; i < navigator.plugins.length; i++) { + plugins.push(navigator.plugins[i].name); + } + var plugins = plugins.join('|'); + if (Aak.contains(plugins, 'Windows Media Player')) { + this.attributes.type = "application/x-mplayer2"; + this.attributes.pluginspage = 'http://www.microsoft.com/Windows/MediaPlayer/'; + } else if (Aak.contains(plugins, 'VLC Web Plugin')) { + this.attributes.type = "application/x-vlc-plugin"; + this.attributes.pluginspage = "http://www.videolan.org"; + } else if (Aak.contains(plugins, 'QuickTime Plug-in')) { + this.attributes.type = "video/quicktime"; + this.attributes.pluginspage = "http://www.apple.com/quicktime/download/"; + } else { + Aak.notification('

You need install VLC Web Plugin ! Install

', 30000); + return false; + } + } + this.options.output = 'embed'; + this.insert(); + }, + html5 : function (id, setup) { + /* Video Tag (html5) + note: + https://html5rocks.com/en/tutorials/video/basics/ + http://www.w3schools.com/tags/tag_video.asp + test: + https://www.joomlacontenteditor.net/images/big_buck_bunny.flv + http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4 + http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm + http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv + */ + + this.get(id); + this.attributes = {}; + this.attributes.src = setup.file || setup.src; + this.attributes.id = this.attributes.name = Aak.generateID(); + this.attributes.height = setup.height || this.in.node.clientHeight || "100%"; + this.attributes.width = setup.width || this.in.node.clientWidth || "100%"; + this.attributes.type = this.getMime(this.attributes.src); + this.attributes.controls = 'controls'; + //this.attributes.preload = 'none'; + if (setup.autostart || setup.autoplay) { + //this.attributes.autoplay = 'autoplay'; bug duplicated playing + } + this.options.output = 'html5'; + this.insert(); + } + }, + rules : { + // -------------------------------------------------------------------------------------------- + // Specific + // -------------------------------------------------------------------------------------------- + blogspot : { // No Country Redirect (NCR) + // doc: http://tinyurl.com/odncet7 + // issue: https://github.com/reek/anti-adblock-killer/issues/490 + host : ['.blogspot.'], + onStart : function () { + var blog = location.host.replace('www.', '').split("."); + if (blog[blog.length - 1] != "com") { + Aak.go("http://" + blog[0] + ".blogspot.com/ncr" + location.pathname); + } + } + }, + blogspot_knowlet3389 : { + host : ['knowlet3389.blogspot.'], + onStart : function () { + // + abp rule solution + Aak.addStyle("#gAds { height: 1px; width: 1px; }"); + } + }, + uptobox_uptostream : { + host : ['uptobox.com', 'uptostream.com'], + onStart : function () { + // Old solution [deprecated] + var id = location.pathname.match(/[0-9a-z]{12}/); + if (id != null) { + Aak.addStyle("#" + id[0] + " { height: 12px; }"); + } + // New 12.05.2014 + // + abp rule (alternative solution) + Aak.addStyle("#adblocktrap { height: 12px; }"); + }, + onIdle : function () { + // remove ads + Aak.removeElement('*[src^="http://ads.uptobox.com/"],*[href^="http://ads.uptobox.com/"]'); + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'window.location = "http://uptobox.com/?op=adblock";')) { + Aak.stopScript(e); + } + } + }, + notre_planete_info : { + host : ['notre-planete.info'], + onStart : function () { + Aak.addStyle("#testpub { height: 51px; }"); + Aak.addStyle("#pub_meh { height: 51px; }"); + }, + onIdle : function () { + /* + abp rule + var pub --> pagead2.googlesyndication.com + */ + //Aak.log(Aak.uw.pub, document.getElementById("pub_meh").clientHeight, Aak.uw.largeur) + } + }, + anisubsia_com : { + host : ['anisubsia.com'], + onStart : function () { + // + abp rule #@#.adsantilok + Aak.addStyle(".adsantilok { height: 5px; }"); + }, + onIdle : function () { + Aak.uw.jAntiBlock = function () {}; + Aak.uw.CekBlok = function () {}; + } + }, + elahmad_com : { + host : ['elahmad.com'], + onStart : function () { + Aak.addStyle("#adblock { height: 1px; }"); + } + }, + multiup_org : { + host : ['multiup.org', 'streamupload.org'], + onStart : function () { + Aak.addStyle("#crazy { height: 3px; }"); + } + }, + mrtzcmp3_net : { + host : ['mrtzcmp3.net'], + onStart : function () { + Aak.addStyle(".rtm_ad { height: 1px; }"); + } + }, + go4up_com : { + host : ['go4up.com'], + onStart : function () { + Aak.addStyle(".myTestAd { height: 1px; }"); + } + }, + bknime_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/291 + host : ['bknime.com'], + onStart : function () { + Aak.addStyle("#myTestAd { height: 1px; }"); + } + }, + bg_gledai_tv : { + host : ['bg-gledai.tv'], + onStart : function () { + Aak.addStyle(".myAd { height: 1px; }"); + } + }, + thepcspy_com : { // http://thepcspy.com/read/how_to_block_adblock/ + host : ['thepcspy.com'], + onStart : function () { + Aak.addStyle(".myTestAd { height: 1px; }"); + Aak.addStyle(".blocked { display: none; }"); + }, + onIdle : function () { + Aak.removeElement('.blocked'); + } + }, + automobile_sportive_com : { + host : ['automobile-sportive.com'], + onStart : function () { + Aak.addStyle(".myTestAd { height: 51px; display: none; }"); + } + }, + snsw_us : { + host : ['snsw.us'], + onStart : function () { + Aak.addStyle("#ad_1 { height: 1px; }"); + } + }, + urlchecker_net : { + host : ['urlchecker.net'], + onStart : function () { + Aak.addStyle("#adchecker { height: 20px; }"); + } + }, + skiplimite_tv : { + host : ['skiplimite.tv'], + onStart : function () { + Aak.addStyle("div.addthis_native_toolbox + div[id] { height: 12px; }"); + } + }, + filecore_co_nz : { + host : ['filecore.co.nz'], + onStart : function () { + Aak.addStyle(".adsense { height: 5px; }"); + } + }, + interfans_org : { + // test: http://www.interfans.org/forum/ + host : ['interfans.org'], + onStart : function () { + Aak.addStyle(".ad_global_header { height: 1px; display: none; }"); + } + }, + maxdebrideur_com : { + host : ['maxdebrideur.com'], + onStart : function () { + Aak.addStyle(".clear + div[id] { height: 12px; }"); + } + }, + topzone_it : { + host : ['topzone.lt'], + onStart : function () { + Aak.addStyle(".forumAd { height: 1px; display: none; }"); + } + }, + nana10_co_il : { + host : ['.nana10.'], + onStart : function () { + Aak.addStyle("#advert-tracker { height: 1px; }"); + } + }, + plej_tv : { + host : ['plej.tv'], + onStart : function () { + Aak.addStyle(".advert_box { height: 1px; }"); + } + }, + eveskunk_com : { + host : ['eveskunk.com'], + onStart : function () { + // Disable Antiblock 1 + //Aak.addElement('div.adsbygoogle'); // dont work + // + abp rule eveskunk.com#@#.adsbygoogle + Aak.addStyle(".adsbygoogle { height: 5px; }"); + // Disable Antiblock 2 + Aak.addStyle(".container .row .col-lg-12 div[id] { height: 35px; }"); + }, + onIdle : function () { + // Disable Antiblock 1 + document.querySelector('.adsbygoogle').innerHTML = '
'; + // Disable Antiblock 2 + Aak.uw.trackAdBlocking = function () {}; + } + }, + tweaktown_com : { + host : ['tweaktown.com'], + onStart : function () { + Aak.addStyle("#div-gpt-ad-1378071706813-0, #div-gpt-ad-1378150878492-1 { height: 3px; display: none; }"); + } + }, + debrideurstream_fr : { + host : ['debrideurstream.fr'], + onStart : function () { + Aak.addStyle("#content div[id][align=center] { height: 12px; }"); + } + }, + preemlinks_com : { + host : ['preemlinks.com'], + onStart : function () { + Aak.addStyle("#divads { height: 1px; }"); + } + }, + hentai_to : { + host : ['hentai.to'], + onStart : function () { + Aak.addStyle("#hentaito123 { height: 11px; }"); + } + }, + prototurk_com : { + host : ['prototurk.com'], + onStart : function () { + Aak.addStyle("#reklam { height: 1px; }"); + } + }, + mufa_de : { + host : ['mufa.de'], + onStart : function () { + Aak.addStyle("#leaderboard { height: 5px; }"); + Aak.addStyle("#large-rectangle { height: 5px; }"); + Aak.addStyle("#ad-header-468x60 { height: 5px; }"); + } + }, + watcharab_com : { + host : ['watcharab.com'], + onStart : function () { + // + adp rule watcharab.com#@##adblock + Aak.addStyle("#adblock { height: 5px; }"); + } + }, + freedomip_com : { + host : ['freedom-ip.com'], + onStart : function () { + Aak.addStyle(".pub_vertical ins, .pub_vertical div { height: 11px; }"); + } + }, + wakanim_tv : { + host : ['wakanim.tv'], + onStart : function () { + Aak.addStyle("#detector { display: none; }"); + Aak.addStyle("#nopub { display: block; }"); + } + }, + tzetze_it : { + host : ['tzetze.it'], + onStart : function () { + // + abp rule + Aak.addStyle('#TzeTze_728x90 { height: 5px;}'); + } + }, + simply_debrid_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/332 + host : ['simply-debrid.com'], + onStart : function () { + // + abp rule + Aak.addStyle('#adsense { height: 5px;}'); + } + }, + manga9_com : { + host : ['manga9.com', 'mangabee.co'], + onStart : function () { + Aak.addStyle(".adblock { height: 31px; }"); + } + }, + onemanga2_com : { + host : ['onemanga2.com'], + onStart : function () { + Aak.addStyle(".afs_ads { height: 5px; }"); + } + }, + mangabird_com : { + host : ['mangabird.com'], + onStart : function () { + Aak.addStyle(".afs_ads { height: 5px; }"); + } + }, + bait_tester : { + host : ['osoarcade.com', 'd3brid4y0u.info', 'fileice.net', 'nosteam.ro', 'openrunner.com', 'easybillets.com', 'spox.fr', 'yovoyages.com', 'tv3.co.nz', 'freeallmusic.info', 'putlocker.com', 'sockshare.com', 'dramapassion.com', 'yooclick.com', 'online.ua'], + onStart : function () { + Aak.addElement('div#tester'); + } + }, + bait_add : { + host : ['filecom.net', 'upshare.org', 'skippyfile.com', 'mwfiles.net', 'up-flow.org'], + onStart : function () { + Aak.addElement('div#add'); + } + }, + bait_adpbtest : { + host : ['leaguesecretary.com', 'teknogods.com', 'hellsmedia.com'], + onStart : function () { + Aak.addElement('div#adpbtest'); + } + }, + bait_adtester : { + host : ['freesportsbet.com', 'sportsplays.com'], + onStart : function () { + Aak.addElement('div#ad-tester'); + } + }, + tgo_tv_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/303 + host : ['tgo-tv.com'], + onStart : function () { + Aak.addStyle("#adb, #bannerad1, .load_stream { display: none; }"); + Aak.addElement('div#tester'); + }, + onEnd : function () { + Aak.uw.threshold = 1000; + Aak.removeElement('.chat_frame'); // bug reload iframe + } + }, + freegamehosting_nl : { + host : ['freegamehosting.nl'], + onStart : function () { + Aak.addElement('div#adtest'); + } + }, + theweatherspace_com : { + host : ['theweatherspace.com'], + onStart : function () { + Aak.addElement('div#ab-bl-advertisement'); + } + }, + stream4free_eu : { + host : ['stream4free.eu'], + onStart : function () { + // +abp alt solution + Aak.addElement('div#jpayday'); + Aak.uw.jpayday_alert = 1; + } + }, + rmprepusb_com : { + host : ['rmprepusb.com'], + onStart : function () { + Aak.setCookie('jot_viewer', 3); + } + }, + primeshare_tv : { + host : ['primeshare.tv'], + onStart : function () { + Aak.addElement('div#adblock'); + } + }, + jkanime_net : { + host : ['jkanime.net'], + // @@||jkanime.net/assets/js/advertisement2.js + onStart : function () { + Aak.addElement('div#reco'); + } + }, + _720pmkv_com : { + host : ['720pmkv.com'], + onStart : function () { + Aak.addElement('div#advert'); + } + }, + paidverts_com : { + host : ['paidverts.com'], + onStart : function () { + Aak.addElement('div.afs_ads'); + } + }, + totaldebrid_org : { + host : ['totaldebrid.org', 'referencemega.com'], + onStart : function () { + Aak.addElement('div.afs_ads'); + }, + onEnd : function () { + Aak.removeElement('#dialog'); + } + }, + chrissmoove_com : { + host : ['chrissmoove.com'], + onStart : function () { + //Aak.addElement('div#adserver'); + } + }, + eventhubs_com : { + host : ['eventhubs.com'], + onStart : function () { + Aak.addElement('div#blahyblaci1'); + } + }, + forum_pac_rom_com : { + host : ['forum.pac-rom.com'], + onStart : function () { + Aak.addElement('div.banner_ads'); + } + }, + antennesport_com : { + host : ['antennesport.com', 'serverhd.eu'], + onIdle : function () { // for antennesport + // Remove Pub + Aak.removeElement("#pub .pubclose"); + // Redirect to Player + Aak.setElement('#pub .embed iframe', { + src : '/embed/embed.php' + }); + }, + onBeforeScript : function (e) { // for serverhd + if (Aak.contains(Aak.innerScript(e), 'http://xaxa.juanantoniogonza.netdna-cdn.com/noadsblock.html')) { + Aak.stopScript(e); + } + } + }, + disableAlertbox : { + host : ['drivearabia.com', 'putlocker.com', 'doatoolsita.altervista.org', 'sockshare.com', 'free-movie-home.com', 'pc.online143.com', 'kooora.com', 'str3amtv.co.nr', 'str3amtv.altervista.org', 'str3am.altervista.org', 'filecom.net', 'pipocas.tv', 'generatupremium.biz', 'mega-debrid.eu', 'premiumst0re.blogspot.com', 'dl-protect.com'], + onAlways : function () { + Aak.uw.alert = function () {}; + } + }, + generatupremium_biz : { + host : ['generatupremium.biz'], + onStart : function () { + // Disable Confirm Box + //Aak.uw.confirm = function (){}; + Aak.setCookie('genera', false); + } + }, + tek_domains : { + // by: Alexander255 + // issue: https://github.com/reek/anti-adblock-killer/issues/512 + host : ['tek.no', 'gamer.no', 'teknofil.no', 'insidetelecom.no', 'prisguide.no', 'diskusjon.no', 'teknojobb.no', 'akam.no', 'hardware.no', 'amobil.no'], + onIdle : function () { + var ad_frame = document.createElement("iframe"); + ad_frame.name = "_frame"; + document.body.appendChild(ad_frame); + ad_frame.addEventListener("load", function () { + ad_frame.contentWindow.wrappedJSObject.inFIF = true; + }); + } + }, + planetatvonlinehd_blogspot : { + host : ['planetatvonlinehd.blogspot.'], + onAlways : function () { + Aak.uw.jQAntiAdsBlock = function () { + return false + }; + } + }, + cwtv_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/340 + // code: http://pastebin.com/J7e73MpJ + host : ['cwtv.com'], + onAlways : function () { + Aak.uw.CLAPI = undefined; + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'CLAPI.IsAdBlocking(function(isAdBlocking, hasAdBlocked)')) { + Aak.stopScript(e); + } + } + }, + pregen_net : { + host : ['pregen.net'], + onStart : function () { + // skip page info + Aak.setCookie('pgn', 1); + } + }, + onvasortir_com : { + host : ['onvasortir.com'], + onAlways : function () { + // +abp rule alt solution + Aak.uw.sas = {}; + } + }, + ville_ideale_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/258 + // code: http://pastebin.com/16mnmeMc + host : ['ville-ideale.com'], + onAlways : function () { + // +abp rule alt solution + Aak.uw.exec_sp = function () {}; + } + }, + notre_planete_info : { + // issue: + // code: http://pastebin.com/qrS6QGGE + host : ['notre-planete.info'], + onAlways : function () { + // +abp rule alt solution + Aak.uw.pubpop = function () {}; + } + }, + apkmirror_com : { + host : ['apkmirror.com'], + onAlways : function () { + Aak.uw.doCheck = function () {}; + } + }, + anizm_com : { + host : ['anizm.com'], + onAlways : function () { + Aak.uw.stopAdBlock = {}; + } + }, + mangasproject_com : { + // issue: http://tinyurl.com/ncezaan + host : ['mangasproject.com'], + onAlways : function () { + Aak.uw.jLoader.Leitor.data.adBlock = false; + } + }, + pipocas_tv : { + host : ['pipocas.tv'], + onStart : function () { + // Also added in disableAlertbox + // No popup + Aak.setCookie('popup_user_login', 'yes'); + } + }, + linkbucks_com : { + host : ['referencemega.com', 'fpabd.com', 'crackacc.com'], + onStart : function () { + // Skip visitScript when site use CloudFlare Rocket Script + Aak.setCookie('_lbGatePassed', true); + } + }, + _15min_lt : { + // issue: https://github.com/reek/anti-adblock-killer/issues/432 + // code: http://pastebin.com/0cqV8LTY + host : ['15min.lt'], + onAlways : function () { + Aak.uw.ado = {}; + } + }, + vgunetwork_com : { + host : ['vgunetwork.com'], + onIdle : function () { + Aak.setCookie('stopIt', 1); + var close = Aak.getElement('#some_ad_block_key_close'); + if (close) { + close.click(); + } + } + }, + seekingalpha_com : { + host : ['seekingalpha.com'], + onAlways : function () { + Aak.uw.SA.Pages.Article.is_gnikcolbda = function () { + return false; + } + } + }, + anisearch_com : { // solved with abp rule + host : ['anisearch.com'], + onIdle : function () { + //Aak.uw.is_loaded = true; + //Aak.removeElement('.box-error'); + } + }, + linkcrypt_ws : { + host : ['linkcrypt.ws'], + onIdle : function () { + Aak.setElement('#ad_cont', { + id : '', + style : 'display:block;' + }); + Aak.setElement('#container_check', { + style : 'display:none;' + }); + } + }, + eventosppv_me : { + host : ['eventosppv.me'], + onIdle : function () { + Aak.removeElement('#nf37'); + } + }, + vivo_sx : { + // issue: https://github.com/reek/anti-adblock-killer/issues/280 + host : ['vivo.sx'], + onEnd : function () { + var alert = Aak.getElement('#alert-throttle'); + if (alert) { + Aak.removeElement(alert); + } + var button = Aak.getElement('button#access'); + if (button) { + button.removeAttribute('id'); + button.removeAttribute('disabled'); + button.innerHTML = 'Continue to video'; + } + setTimeout(function () { + var input = Aak.getElement('input[name="throttle"]'); + if (input) { + Aak.removeElement(input); + } + }, 1000); + } + }, + vvvvid_it : { + // issue: https://github.com/reek/anti-adblock-killer/issues/205 + // issue: https://github.com/reek/anti-adblock-killer/issues/205 + host : ['vvvvid.it'], + onEnd : function () { + Aak.uw.vvvvid.onAdBlock = function () {}; + } + }, + luxyad_com : { // skip redirect myanimes.li + host : ['luxyad.com'], + onIdle : function () { + if ('/Information.php' == location.pathname) { + var href = location.href; + location.href = href.substr(href.indexOf('url=') + 4, href.length); + } + } + }, + userscripts_domains : { // Redirect to Github + host : ['userscripts.org', 'userscripts.org:8080', 'userscripts-mirror.org'], + onStart : function () { + if (/155840$/.test(location.pathname)) { + location.href = Aak.homeURL; + } + } + }, + openuserjs_org : { + host : ['openuserjs.org'], + onIdle : function () { + var element = Aak.getElement('a[href$="/issues"]'); + if (/Anti-Adblock_Killer_Reek/.test(location.pathname) && element) { + Aak.confirmReport(element); + } + } + }, + greasyfork_org : { + host : ['greasyfork.org'], + onIdle : function () { + var element = Aak.getElement('a[href$="/feedback"]'); + if (/-anti-adblock-killer-reek/.test(location.pathname) && element) { + Aak.confirmReport(element); + } + } + }, + monkeyguts_com : { + host : ['monkeyguts.com'], + onIdle : function () { + var element = Aak.getElement('a[href*="code.php?nav=forum"]'); + if (/monkeyguts.com\/code.php\?id=351/.test(location.href) && element) { + Aak.confirmReport(element); + } + } + }, + aidemu_fr : { + host : ['aidemu.fr'], + onStart : function () { + Aak.setCookie('adblockPopup', true); + } + }, + eami_in : { + host : ['eami.in'], + onStart : function () { + Aak.setCookie('ad_locked', 1); + }, + onIdle : function () { + Aak.setCookie('ad_locked', 1); + } + }, + bigdownloader_com : { + host : ['bigdownloader.com'], + onIdle : function () { + Aak.removeElement('#anti_adblock'); + } + }, + gametrailers_com : { + host : ['gametrailers.com'], + onIdle : function () { + Aak.removeElement('#ad_blocking'); + } + }, + ad_block_test : { + // issue: https://github.com/reek/anti-adblock-killer/issues/279 + host : ['scan-mx.com', 'onepiece-mx.net'], + onAlways : function () { + Aak.uw.ad_block_test = function () {}; + }, + onIdle : function () { + Aak.setElement('#yop', { + id : '' + }); + } + }, + // Bitcoins + bitcoinker_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/230 + host : ['bitcoinker.com'], + onIdle : function () { + Aak.removeElement('#AdBlocked'); + } + }, + moondoge_co_in : { + // issue: https://github.com/reek/anti-adblock-killer/issues/384 + // issue: https://github.com/reek/anti-adblock-killer/issues/232 + // issue: https://github.com/reek/anti-adblock-killer/issues/233 + // issue: https://github.com/reek/anti-adblock-killer/issues/236 + host : ['moondoge.co.in', 'moonliteco.in', 'moonbit.co.in', 'bitcoinzebra.com'], + onIdle : function () { + Aak.removeElement('#AB, #E442Dv, #eCC5h'); + } + }, + bitcoiner_net : { + // issue: + host : ['bitcoiner.net', 'litecoiner.net'], + onStart : function () { + Aak.addElement('div#tester'); + Aak.addElement('div#ad-top'); + } + }, + bitcoins_nx_tc : { + host : ['freebitcoins.nx.tc', 'getbitcoins.nx.tc'], + onAlways : function () { + Aak.uw.ad_block_test = function () { + return false + }; + } + }, + freecoins4_me : { + host : ['freecoins4.me'], + onAlways : function () { + Aak.uw.check = function () { + return false + }; + } + }, + adultmult_tv : { // antiblock.org + // issue: https://github.com/reek/anti-adblock-killer/issues/366 + host : ['adultmult.tv'], + onAlways : function () { + Aak.uw.ee4e = {}; + } + }, + turkanime_tv : { + // issue: http://tinyurl.com/n6mzdxs + host : ['turkanime.tv'], + onAlways : function () { + Aak.uw.BlokKontrol = {}; + } + }, + turkanime_tv : { + // issue: http://tinyurl.com/n6mzdxs + host : ['turkanime.tv'], + onAlways : function () { + Aak.uw.adblockblock = function () {}; + } + }, + hackintosh_zone : { + // issue: + // issue: https://greasyfork.org/fr/forum/discussion/3786/ + host : ['hackintosh.zone'], + onStart : function () { + Aak.addStyle("#impactradious, #topframead { height: 5px; }"); + Aak.addElement('div#impactradious'); + Aak.addElement('div#topframead'); + }, + onAlways : function () { + Aak.uw.writeHTMLasJS = function () {}; + } + }, + wtfbit_ch : { + // issue: + host : ['wtfbit.ch'], + onAlways : function () { + Aak.uw.writeHTMLasJS = function () {}; + } + }, + bitvisits_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/266 + host : ['bitvisits.com'], + onAlways : function () { + Aak.uw.blockAdblockUser = function () {}; + } + }, + vipleague_domains : { + // issue: https://github.com/reek/anti-adblock-killer/issues/290 + // issue: https://github.com/reek/anti-adblock-killer/issues/297 + // issue: https://github.com/reek/anti-adblock-killer/issues/301 + // issue: https://github.com/reek/anti-adblock-killer/issues/273 + // issue: https://github.com/reek/anti-adblock-killer/issues/271 + // issue: https://github.com/reek/anti-adblock-killer/issues/322 + // issue: https://github.com/reek/anti-adblock-killer/issues/326 + // +abp rule alt solution + host : ['vipleague.ws', 'vipleague.tv', 'vipleague.se', 'vipleague.me', 'vipleague.co', 'vipleague.sx', 'vipleague.ch', 'vipbox.tv', 'vipbox.co', 'vipbox.sx', 'vipboxsa.co', 'strikeout.co', 'homerun.re'], + onStart : function () { + // Solution 1 + Aak.uw.iExist = true; + Aak.addStyle(".vip_052x003 { height: 250px; }"); + Aak.addStyle(".vip_09x827 { height: 26px; }"); + }, + onAlways : function () { + // Solution 2 + Aak.uw.showmsgblock = function () {}; + } + }, + vg_no : { + // issue: https://github.com/reek/anti-adblock-killer/issues/292 + // +abp rule + host : ['vg.no', 'e24.no'], + onAlways : function () { + Aak.uw.__AB__ = function () {}; + } + }, + canalplus_fr : { + // issue: + host : ['canalplus.fr'], + onEnd : function () {} + }, + dailybitcoins_org : { + host : ['dailybitcoins.org'], + onIdle : function () { + Aak.removeElement('.ad-img'); + } + }, + kozaczek_zeberka : { + // issue: https://github.com/reek/anti-adblock-killer/issues/414 + host : ['kozaczek.pl', 'zeberka.pl'], + onStart : function () { + Aak.setCookie('ablc', 1); + Aak.setCookie('cookie_policy', 1); + } + }, + psarips_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/153 + host : ['psarips.com'], + onStart : function () { + Aak.addElement('div#advert'); + } + }, + extratorrent_domains : { + host : ['extratorrent.cc', 'extratorrent.com'], + onStart : function () { + // prevent popup + // code are obfuscated in external js + Aak.setCookie('ppu_delay', 1); + Aak.setCookie('ppu_main', 1); + Aak.setCookie('ppu_sub', 1); + Aak.setCookie('ppu_show_on', 1); + } + }, + tny_cz : { + host : ['tny.cz', 'pasted.co'], + onStart : function () { + // prevent popup + Aak.setCookie('__.popunderCap', 1); + Aak.setCookie('__.popunder', 1); + } + }, + clubedohardware_com_br : { // two antiadblock + host : ['clubedohardware.com.br'], + onStart : function () { + if (Aak.contains(location.host, 'forum')) { + // Solution 1 + Aak.addStyle("#banner, script { height: 51px; }"); + Aak.addElement('div#banner'); + } else { // Website + // Solution 1 + Aak.addElement('div.banner_topo'); + } + }, + onIdle : function () { + if (Aak.contains(location.host, 'forum')) { + // Solution 2 + Aak.uw.addBlocking.hide(); + Aak.uw.addBlocking.kill(); + } else { // Website + // Solution 2 + document.body.id = ''; + Aak.removeElement('.adblock'); + } + } + }, + debrastagi_com : { + host : ['debrastagi.com'], + onIdle : function () { + Aak.removeElement('#stp-main'); + Aak.removeElement('#stp-bg'); + } + }, + ddlfrench_org : { + host : ['ddlfrench.org'], + onIdle : function () { + // Fix bug display content + Aak.setElement('#dle-content .d-content', { + 'class' : '' + }); + Aak.setElement('#content', { + 'id' : '' + }); + } + }, + rapidebrideur_com : { + host : ['rapidebrideur.com'], + onStart : function () { + Aak.addStyle("html body div.container-fluid div.row-fluid div.span9 div div[id] { height: 12px; display: block ; }"); + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'window.location = "../pages/adblock.html";')) { + Aak.stopScript(e); + } + } + }, + blockblockA : { // Solved by aaklist + // http://sport-show.fr/js/advertisement-AdBlock.js + // http://www.2site.me/advertisement-AdBlock.js + host : ['sport-show.fr', 'vipflash.net', '2site.me'], + onStart : function () { + Aak.addStyle("#blockblockA {visibility:invisible!important;display:none!important;}#blockblockA td {visibility:invisible!important;display:none!important;}#blockblockA td p {visibility:invisible!important;display:none!important;}#blockblockB {visibility:visible!important;display:block!important;}"); + } + }, + megadebrid_eu : { + host : ['mega-debrid.eu'], + onEnd : function () { + // Activate button debrid + Aak.setElement('.realbutton', { + 'onclick' : '', + 'type' : 'submit' + }); + } + }, + slideplayer_com : { + // by: Alexander255 + // issue: https://github.com/reek/anti-adblock-killer/issues/515 + // issue: https://github.com/reek/anti-adblock-killer/issues/296 + host : ['slideplayer.fr', 'slideplayer.com', 'slideplayer.org'], + onEnd : function () { + // Disable anti-adblocker + unsafeWindow.force_remove_ads = true; + + // Circumvent "share to download" rule + var page_callback = function () { + var slide_id = get_current_slide_id(); + var slide_srv = document.getElementById("player_frame").src.split("/")[3]; + var time = 86400 + Math.floor(Date.now() / 1000); + var secret = encodeURIComponent(strtr(MD5.base64("secret_preved slideplayer never solved " + time + slide_id + ".ppt"), "+/", "- ")); + + var url = "http://player.slideplayer.org/download/" + slide_srv + "/" + slide_id + "/" + secret + "/" + time + "/" + slide_id + ".ppt"; + var links = document.querySelectorAll("a.download_link"); + for (var i = 0; i < links.length; i++) { + /* Remove original "share to download" popup event listener */ + var events = $._data(links[i]).events.click; + events.splice(0, events.length); + + /* Set normal link href instead */ + links[i].href = url; + }; + } + window.location.href = "javascript:(" + page_callback.toString() + ")()"; + } + }, + bokepspot_com : { + host : ['bokepspot.com'], + onStart : function () { + // Hide Disclaimer + Aak.setCookie('hideDialog', 'hide'); + }, + onIdle : function () { + // Remove Disable AdBlock + Aak.removeElement('#tupiklan'); + } + }, + ad_defend_general : { + // by: hamsterbacke + // pull: https://github.com/reek/anti-adblock-killer/pull/467 + host : ['focus.de', 'stern.de', 'sat1.de', 'prosieben.de', 'kabeleins.de', 'sat1gold.de', 'sixx.de', 'prosiebenmaxx.de', 'fem.com', 'the-voice-of-germany.de', 'wetteronline.de', 'wetter.com', 'finanzen.net', 'tvspielfilm.de', 'gamestar.de', 'pcwelt.de', 'boerse-online.de', 'sportauto.de', 'auto-motor-und-sport.de', 'motor-klassik.de', '4wheelfun.de', 'autostrassenverkehr.de', 'lustich.de', 'itectale.de'], + onBeforeScript : function (e) { + // check all scripts before they are executed + // addefend uses IIFE so the usual function killing isn't working + var target = e.target || e.srcElement; + if (/uab.*/i.test(target.innerHTML)) { + // stop it + e.stopPropagation(); + e.preventDefault(); + } + } + }, + gamestar_de : { + // by: hamsterbacke + // pull: https://github.com/reek/anti-adblock-killer/pull/467 + host : ['gamestar.de'], + onIdle : function () { + setTimeout(function () { + Aak.removeElement('body > div.centeredDiv > div[style="display: inline-block;"]'); + window.stop(); + }, 2500); + } + }, + picload_com : { + host : ['picload.org'], + onStart : function () { + Aak.setCookie('pl_adblocker', false); + }, + onIdle : function () { + Aak.uw.ads_loaded = true; + Aak.uw.imageAds = false; + Aak.removeElement('div[oncontextmenu="return false;"]'); + } + }, + freezedownload_com : { + host : ['freezedownload.com'], + onIdle : function () { + if (/freezedownload.com\/download\//.test(location.href)) { + Aak.removeElement('body > div[id]'); + } + } + }, + rapid8_com : { + host : ['rapid8.com'], + onIdle : function () { + Aak.removeElement('div.backk + #blcokMzg'); + Aak.removeElement('div.backk'); + } + }, + turkdown_com : { + host : ['turkdown.com'], + onIdle : function () { + // remove facebook box + Aak.removeElement('#duyuru'); + } + }, + tvdez_domains : { + // (document.getElementById('pubfooter').clientHeight < 20) + host : ['tvdez.com', 'casadossegredos.tv', 'estadiofutebol.com', 'televisaofutebol.com'], + onStart : function () { + Aak.addStyle("#pubfooter, #pub2 { height: 30px; display: block; }"); + Aak.setCookie("adblock", null, 0); + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), "location.href = 'adblock.php';")) { + Aak.stopScript(e); + } + } + }, + wowhq_domains : { + host : ['livesoccerhq.com', 'lvshd.altervista.org', 'wowhq.ws', 'futeonline.altervista.org'], + onIdle : function () { + if ("http://wowhq.ws/" == location.href) { + //location.href = 'http://futeonline.altervista.org/programacao2.php'; + } else { + var matches = location.href.match(/link=([\w]+)/i); + if (matches != null) { + Aak.log(atob(matches[1])); + location.href = atob(matches[1]); + } + } + } + }, + privateinsta_com : { + host : ['privateinsta.com'], + onIdle : function () { + // + abp rule + Aak.uw.dont_scroll = false; + Aak.removeElement("#overlay_div"); + Aak.removeElement("#overlay_main_div"); + } + }, + risikogesundheit_de : { + host : ['risiko-gesundheit.de'], + onIdle : function () { + setTimeout(function () { + window.stop(); + }, 5000); + } + }, + oneplaylist_eu_pn : { + host : ['oneplaylist.eu.pn'], + onIdle : function () { + // kill popunder + Aak.uw.makePopunder = false; + } + }, + turbodebrideur_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/526 + host : ['turbodebrideur.com'], + onIdle : function () { + var div = document.createElement("div"); + div.id = 'pubdirecte'; + div.innerHTML = ''; + document.body.appendChild(div); + } + }, + _4shared_com : { + host : ['4shared.com'], + onIdle : function () { + // Hide "Disable AdBlodk" messages + document.querySelector('body').classList.remove("jsBlockDetect"); + } + }, + pro_domains : { + host : ['pro-zik.ws', 'pro-tect.ws', 'pro-ddl.ws', 'pro-sport.ws'], + onStart : function () { + Aak.setCookie('visitedf', true); + Aak.setCookie('visitedh', true); + } + }, + comptoirhardware_com : { + host : ['comptoir-hardware.com'], + onAlways : function () { + Aak.uw.adblock = 'non'; + } + }, + lachainemeteo_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/245 + host : ['lachainemeteo.com'], + onAlways : function () { + // Solution 1 + // + abp rule + //Aak.uw.showscript = function (){}; + + // Solution 2 + Aak.uw.js_loaded = true; + } + }, + adscendmedia : { + host : ['adscendmedia.com'], + onStart : function () { + // adscendmedia - https://www.adscendmedia.com/ + var ref = document.createElement('a'); + ref.href = document.referrer; + var host = location.host; + var path = location.pathname; + if (Aak.contains(path, '/widget_adblock.php') && !Aak.contains(ref.host, host)) { + // Auto report + Aak.autoReport('Adscendmedia', ref.host, host); + // Notification + Aak.notification('

You must subscribe to AakList (Anti-Adblock Killer ).Subscribe

', 2e4); + } + } + }, + adworkmedia : { + host : ['adworkmedia.com', 'loxtk.com', 'contentlockingnetworks.com'], + onStart : function () { + // AdWorkMedia - https://www.adworkmedia.com/ + var ref = document.createElement('a'); + ref.href = document.referrer; + var host = location.host; + var path = location.pathname; + if (Aak.contains(path, '/help/removeAB.php') && !Aak.contains(ref.host, host)) { + // Auto report + Aak.autoReport('Adworkmedia', ref.host, host); + // Notification + Aak.notification('

You must subscribe to AakList (Anti-Adblock Killer ).Subscribe

', 2e4); + } + } + }, + adworkmediasurvey : { // experimental + host : ['phone-track.net', 'netflixaccount.org', 'watchmovies.just4umedia.com', 'mol.cheatsplanet.net', 'vinestown.com', 'xtreme-downloads.com', 'freevps-hosting.com', 'oneplusoneinvite.blogspot.com', 'fullmovieshd.org', 'timepasss.com', 'miningbeast.com', 'broadcastpuma.co', 'thehyphy.com', 'download-site.org', 'mymobileappz.com', 'garena.cheatsplanet.net', 'full-software-downloads.info', 'amazing-web-host.com', 'watchtvserieonlinehd.blogspot.com', 'watch-latest-movies-online-daily.blogspot.com', 'thecompletewebs.info', 'xpango.com-cheat.in', 'yourepeat.net', 'fullsoftwaredownload.info', 'mypcgamesfreedownload.blogspot.com', 'b-books.info', 'freeudidregistration.com'], + onIdle : function () { + /* + Dont work: + debrideurgratuit.org, ndsroms.altervista.org, pickcrackpasswords.blogspot.com, codespsngratuits.com + + http://www.rushinformation.com/how-to-bypass-surveys-online/ + + They allow survey bypass for all the major hosts like Sharecash,Fileice,Cleanfiles,cash-file,Adwork media,File fire,File flare,Dengee and uploadable + */ + + // Survey + var iframes = document.querySelectorAll('iframe[src*="/gTemplate.php"]'); + //Aak.log(iframes.length,iframes); + + if (iframes.length) { + + // Neutralize Survey functions + for (var i in Aak.uw) { + var fn = Aak.uw[i]; + // Parse all no native functions + if (typeof fn == 'function' && + !/native/.test(fn.toString())) { + + // Disable dynamic functions + if (/_\d+$/.test(i)) { + //Aak.log(i); + Aak.uw[i] = function () {}; + } + // Disable the functions that prevents the removal of the iframe + else if (/location.reload/.test(fn.toString())) { + //Aak.log(i); + Aak.uw[i] = function () {}; + } // Disable static functions + else if (/^(mscrollToTop|scrollToTop|gLoad_split_|gLoad|LockPage|noScrollIE|noScrollNS)$/.test(i)) { + //Aak.log(i); + Aak.uw[i] = function () {}; + } + } + } + + // Unlock page + Aak.uw.onbeforeunload = ""; + document.body.scroll = "yes"; + document.body.style.overflow = 'scroll' + + // Remove Survey Elements + for (var i = 0; i < iframes.length; i++) { + var iframe = iframes[i]; + var container = iframe.parentNode; + var overlay = container.previousSibling; + //Aak.log(i, iframe, container, overlay); + + Aak.removeElement(overlay); + Aak.removeElement(container); + } + } + } + }, + // -------------------------------------------------------------------------------------------- + // Players + // -------------------------------------------------------------------------------------------- + kissanime_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/451 + // issue: https://github.com/reek/anti-adblock-killer/issues/381 + // issue: https://github.com/reek/anti-adblock-killer/issues/302 + // issue: https://github.com/reek/anti-adblock-killer/issues/257 + // issue: https://github.com/reek/anti-adblock-killer/issues/178 + // issue: https://github.com/reek/anti-adblock-killer/issues/196 + // issue: https://github.com/reek/anti-adblock-killer/issues/56 + host : ['kissanime.com'], + onStart : function () { + // Masking ads + Aak.addStyle('iframe[id^="adsIfrme"], .divCloseBut { display:none; }'); + // Solution 1 + Aak.uw.DoDetect2 = null; + }, + onIdle : function () { + + // Solution 1 abp rule + // @@||kissanime.com^$elemhide + + var divContentVideo = document.querySelector('#divContentVideo'); + + // Solution 2 + if (Aak.uw.DoDetect2) { + Aak.uw.DoDetect2 = null; + Aak.uw.CheckAdImage = null; + Aak.log('Solution 2'); + } //Solution 3 + else if (divContentVideo) { + + var divDownload = document.querySelector('#divDownload').cloneNode(true); + //Aak.log(divDownload,divContentVideo); + + setTimeout(function () { + divContentVideo.innerHTML = ''; + Aak.uw.DoHideFake(); + divContentVideo.appendChild(divDownload); + Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut'); + Aak.log('Solution 3'); + }, 5500); + } + } + }, + Kisscartoon_me : { + // issue: https://github.com/reek/anti-adblock-killer/issues/488 + host : ['kisscartoon.me'], + onAlways : function () { + Aak.uw.xaZlE = function () {}; + }, + onIdle : function () { + Aak.removeElement('iframe[id^="adsIfrme"]'); + } + }, + exashare_com : { + // by: Watilin + // pull: https://github.com/reek/anti-adblock-killer/pull/519 + // issue: https://github.com/reek/anti-adblock-killer/issues/486 + // issue: https://github.com/reek/anti-adblock-killer/issues/506 + host : ['exashare.com'], + onEnd : function () { + var jwplayer = Aak.uw.jwplayer; + if (jwplayer) { + var setupScript = Array.prototype.filter.call( + document.scripts, + function ($script) { + var source = $script.innerHTML; + return source && Aak.contains(source, "setup"); + })[0]; + + var match = setupScript.innerHTML.match( + /\bjwplayer\s*\(\s*(["'])(.+?)\1\s*\)\s*\.\s*setup\s*\(\s*(\{(?:.|\s)+?\})\s*\)\s*;/); + + var id = match[2]; + var setupStr = match[3]; + + /* We have to “eval” setupStr because JSON.parse doesn't work, + and we have to do it from inside a content function to + avoid exposing elevated API. */ + + var contentFunction = (function () { + // “passing” variables from elevated context (see calls to replace below) + var setupObj = _setupStr_; + var id = "_id_"; + + // Delays execution to let the content script set its timer + setTimeout(function () { + // violently kills all timers + var i = setTimeout(function () {}, 0); + for (; i--; ) { + clearTimeout(i); + clearInterval(i); + } + + // rearms the player + var playerInstance = jwplayer(id).setup(setupObj); + }, 500); + } + .toString() + .replace("_setupStr_", setupStr) + .replace("_id_", id)); + + Aak.addScript("(" + contentFunction + "());"); + } + } + }, + an1me_se : { + // issue: https://github.com/reek/anti-adblock-killer/issues/190 + host : ['an1me.se'], + onIdle : function () { + setTimeout(function () { + Aak.uw.isBlockAds2 = false; + }, 10000); + } + }, + channel4_com : { // research solution + // issue: + host : ['channel4.com'], + onIdle : function () {} + }, + cbs_com : { // research solution + // issue: + host : ['cbs.com'], + onStart : function () { + // + abp rule + //Aak.setCookie('ad-block-counter', 0); + }, + onIdle : function () { + /* + setTimeout(function () { + var player = document.querySelector("#rcpHolder"); + }, 3000); + */ + } + }, + tvcatchup_com : { // research solution + // issue: + host : ['tvcatchup.com'], + onStart : function () { + // + abp rule + //Aak.setCookie('ad-block-counter', 0); + }, + onIdle : function () { + //Aak.setCookie('ad-block-counter', 0); + /* + var ch = { + '1':'bbcone', + '2':'bbctwo', + '3':'itvone', + '4':'chan4', + '5':'five' + } + + var number = location.pathname.split('/')[2]; + + var setup = { // jwv6 rtmp + file : "http://tvcatchup-live.hls.adaptive.level3.net/tvcatchup-201/smil:"+ch[number]+"_desk_wifi.smil/playlist.m3u8", + autostart : true, + live: true, + primary : 'flash' + }; + */ + + } + }, + hqq_tv : { // putlocker.is + host : ['hqq.tv'], + onIdle : function () { + // + abp rule + // http://hqq.tv/player/embed_player.php?vid=R3DGHG3GKXX7&autoplay=no + if ('/player/embed_player.php' == location.pathname) { + document.querySelector('form[id^="form-"]').submit(); + } + } + }, + // Poland + wp_domains : { + // https://github.com/reek/anti-adblock-killer/issues/300 + host : ['biztok.pl', 'wp.tv', 'wp.pl', 'sportowefakty.pl', 'kafeteria.tv', '.wrzuta.pl', 'pudelek.tv', 'komediowo.pl', 'sfora.pl', 'autokrata.pl', 'sportfan.pl', 'wawalove.pl', 'hotmoney.pl', 'aleseriale.pl', 'babol.pl', 'snobka.pl', 'nocoty.pl', 'money.pl'], + onIdle : function () { + //Aak.dumpDOM(3000); + setTimeout(function () { + + var replacePlayerWP = function (mid, player) { + /* Request + http://get.wp.tv/?mid=1661056 + http://wp.tv/player/mid,1661056,embed.json + http://get.wp.tv/?f=2896462.1426329056904.l.webm&rnd=1 + */ + Aak.request({ + url : 'http://wp.tv/player/mid,' + mid + ',embed.json', + onload : function (result) { + try { + var res = result.responseText; + var obj = JSON.parse(res); + Aak.player.html5(player, { + autostart : true, + file : obj.clip.url[0].url + }); + } catch (e) { + console.log('error', result, player); + } + } + }); + } + + var replacePlayerWrzuta = function (key, channel, elem, autostart) { + Aak.request({ + // http://www.wrzuta.pl/npp/embed/wolnapolska2/0I0HQ2mutJc + url : 'http://www.wrzuta.pl/npp/embed/' + channel + '/' + key, + onload : function (result) { + try { + var res = result.responseText; + var obj = JSON.parse(res); + Aak.player.html5(elem, { + autostart : autostart, + file : obj.url[0].url + }); + } catch (e) { + console.log('error', result, player); + } + } + }); + } + + var replacePlayerlivestream = function (lid, elem, autostart) { + Aak.request({ + // http://wp.tv/player/lid,1354,ts,1432569945076,livestream.json + url : 'http://wp.tv/player/lid,' + lid + ',ts,' + Date.now() + ',livestream.json', + onload : function (result) { + try { + var res = result.responseText; + var obj = JSON.parse(res); + Aak.player.html5(elem, { + autostart : autostart, + file : obj.clip.url[0].url[0] + }); + } catch (e) { + console.log(result, 'error', player); + } + } + }); + } + + // Using an external flash player is impossible because protected by crossdomain.xml + var players = document.querySelectorAll('.wp-player'); // #Player0, #Player1, #mainPlayer + if (players.length) { + // fixbug gm_xhr loop request - http://tinyurl.com/pqa9htq + for (var i = 0; i < players.length; i++) { + var player = players[i]; + var parent = player.parentNode; + var script = player.previousSibling; + var titles = document.querySelectorAll('.wp-player .titleCont a.title'); + var embedvideos = document.querySelectorAll('script[src*="/embed_video.js"]'); + console.log(player, parent, script, titles) + + if (embedvideos.length) { + // pudelek.wrzuta.pl: http://tinyurl.com/l8jo5v2 + // pudelek.tv: http://tinyurl.com/klyzh6r + // pudelek.tv (triple): http://tinyurl.com/n9b27o2 + // film.wp.pl: http://tinyurl.com/q7k5bxp + var script = embedvideos[i]; + var key = /key=(\w+)/.exec(script.src)[1]; + var channel = /login=(\w+)/.exec(script.src)[1]; + var autostart = /autoplay/.test(script.src); + replacePlayerWrzuta(key, channel, player, autostart); + Aak.log('embed_video.js') + } else if (script && /lid=/.test(script.innerHTML)) { + // wiadomosci.wp.pl: http://tinyurl.com/pdwx7na + // http://wp.tv/player/lid,1354,ts,1432569945076,livestream.json + // http://get.wp.tv/?lid=1354 + var lid = script.innerHTML.match(/lid[=,]([0-9]+)/); + replacePlayerlivestream(lid, player, true); + Aak.log('livestream lid'); + } else if (titles.length && /mid/.test(titles.href)) { + // sportowefakty.pl: http://tinyurl.com/l6zabcx + var mid = titles[i].href.match(/mid[=,]([0-9]+)/); + Aak.log('title.href') + } else if (parent.id) { + if (parent.dataset.url) { + // wp.tv: http://tinyurl.com/pzde29t + var mid = parent.dataset.url.match(/mid[=,]([0-9]+)/); + Aak.log('parent.dataset.url') + } else { + // kafeteria.tv: http://tinyurl.com/nofp58a + var mid = parent.innerHTML.match(/mid[=,]([0-9]+)/); + Aak.log('parent.innerHTML') + } + } else if (script && script.tagName == 'SCRIPT') { + // film.wp.pl: http://tinyurl.com/mh9onfw + // pudelek.tv (double): http://tinyurl.com/lefvwtx + var mid = script.innerHTML.match(/mid[=,]([0-9]+)/); + Aak.log('script.innerHTML') + } + if (mid != null && mid.length == 2) { + replacePlayerWP(mid[1], player); + } + } + } + + }, 5e3); + } + }, + bitzfree_com : { + // issue: https://github.com/reek/anti-adblock-killer/issues/314 + host : ['bitzfree.com'], + onEnd : function () { + /* fixed by rules + setTimeout(function () { + var elems = document.querySelectorAll('.btc_adresi'); + if (elems.length) { + for (var i = 0; i < elems.length; i++) { // VU2RmhJMkRKSQ + var elem = elems[i]; + Aak.createElement({ + tag : 'span', + html : '', + replace : elem + }); + } + } + }, 1e3); + */ + } + }, + tvn_pl : { + // by: Marek + // fix: http://tinyurl.com/ohbvz4r + // issue. https://github.com/reek/anti-adblock-killer/issues/192 + // test: http://tinyurl.com/mcwtz27 + // proxy: http://www.proxy.xmc.pl + host : ['tvn.pl', 'tvn24.pl', 'player.pl'], + onEnd : function () { + Aak.onElement('#detailEpisode', function () { + /* + var videoURL = 'http://n-2-4.dcs.redcdn.pl/dcs/o2/tvnplayer/vod/14_400_20029_0011/TV_MP4/4c407d87-5d77-4778-81e3-dbc560bbc19b/tv_mp4_2928000.mp4?salt=391F25D2E95781550E7A3BA1730AF412&token=8CC29AECB565397B692D4BDE4B37048742B3BD892212F8B9F1DE0D40D8662C775C82311B35074D38BC4EF8FFDCB15067610BB855955359B8F06C629C44485A42DBFEDAF17A812A67F2ECF4B7996A9B73C754E1089DB4A81BDBF798C23B5EBEEF1C6FA6668FB290EA77013C67FEB0DD5005F90D890ED6B76675487EDB7999CE3C9316D6237B009CC97819E798FE760A0B'; + Aak.player.html5('#detailEpisode', { + autostart : true, + file : videoURL + }); + */ + + var sp = document.location.href.split(/[.,]/); + var id = sp[sp.length - 2]; + // http://player.pl/api/?platform=ConnectedTV&terminal=Samsung&format=json&v=2.0&authKey=ba786b315508f0920eca1c34d65534cd&type=episode&id=34555&sort=newest&m=getItem&deviceScreenHeight=1080&deviceScreenWidth=1920 + Aak.request({ + url : '/api/?platform=ConnectedTV&terminal=Samsung&format=json&v=2.0&authKey=ba786b315508f0920eca1c34d65534cd&type=episode&id=' + id + '&sort=newest&m=getItem&deviceScreenHeight=1080&deviceScreenWidth=1920', + onload : function (result) { + var res = result.responseText; + var o = JSON.parse(res); + console.log(o) + var standardURL = o.item.videos.main.video_content[0].url; + Aak.request({ + url : standardURL, + onload : function (result) { + var videoURL = result.responseText; + Aak.player.html5('#detailEpisode', { + autostart : true, + file : videoURL + }); + } + }); + } + }); + }); + } + }, + ipla_tv : { + // by: Marek + // fix: http://tinyurl.com/ptb4ybg + // issue. https://github.com/reek/anti-adblock-killer/issues/522 + // test1: http://tinyurl.com/pcey4nz + // test2: http://tinyurl.com/prsurdb + host : ['ipla.tv'], + onEnd : function () { + Aak.onElement('#vod-player', function () { + Aak.request({ + url : '/VOD/play-in-ipla/' + location.href.match(/\/vod-(\d+)/)[1], + onload : function (result) { + var res = result.responseText; + var idn = res.match(/ipla:\/\/playvod-1\|([a-z0-9]+)/)[1]; + console.log(idn) + Aak.request({ + url : 'http://getmedia.redefine.pl/vods/get_vod/?cpid=1&ua=mipla/23&media_id=' + idn, + onload : function (result) { + var res = result.responseText; + var o = JSON.parse(res); + console.log(o) + if (o.vod.video_hd) + var videoURL = o.vod.video_hd; + else if (o.vod.video) { + var videoURL = o.vod.video; + } else { + var videoURL = o.vod.copies[0].url + } + Aak.player.html5('#vod-player', { + autostart : true, + file : videoURL + }); + } + }); + } + }); + }); + } + }, + // France + playtv_fr : { // research solution + host : ['play.tv', 'playtv.fr'], + onAlways : function () {}, + onEnd : function () { + //Aak.DOMstringify(3000); + //Aak.stopRedirect(); + //Aak.confirmLeave(); + + // http://playtv.fr/television/tooltip/arte/ + /* + http://playtv.fr/player/play/?channel=bfm-tv&language=fr&format=flash&bitrate=0 + rtmpe://37.187.254.104:80/origin01/?files=800|bfm-tv_800,300|bfm-tv_300&dar=ws&t=18ddf1b11ff0fbb24e3ecbecf4748ff821784cd760dd9e1a9ec2ae552e15361cae296b29d00d72a7f56df77544a62c51176a227b5c5c93f30d7050591e8c8271454ccaa94fd2156d0bb32ae87c5c6344d30d84e588a7e7b87cd1ed4c6c728eb9206e06b02187169ba4f07e8a7c14ad15823c0dd860dd286a + + + ;(function(win, doc, app) { + app.Data = app.Data || {}; + app.Data.Remote = app.Data.Remote || {}; + app.Data.Remote.channel = {"alias":"bfm-tv","id":17,"name":"BFM TV","images":{"mini":"\/\/static.playtv.fr\/img\/tv_channels\/17_mini.png","small":"\/\/static.playtv.fr\/img\/tv_channels\/17_small.png","medium":"\/\/static.playtv.fr\/img\/tv_channels\/17_medium.png","source":"\/\/static.playtv.fr\/img\/tv_channels\/17_source.png"},"has_programs":true,"is_adult":false,"has_social_tv":true,"streaming_source":"internal"}; + + })(window, window.document, window.ptv || (window.ptv = {})); + */ + } + }, + rmcsportbfmtv_com : { // webradio + host : ['rmcsport.bfmtv.com'], + onIdle : function () { + + var flashvars = { + urlRadio : "http://mp3lg4.tdf-cdn.com/10160/rmc.mp3", + nom : "live", + categorie : "live", + urlSmart : "" // set empty to remove audio ad + }; + var params = { + wmode : "transparent" + }; + + Aak.uw.swfobject.embedSWF("/swf/RMCLIVE.swf", "liveplayer", "70", "90", "10.0.0", "", flashvars, params); + } + }, + eclypsia_com : { + host : ['eclypsia.com'], + onAlways : function () { + // Solution 1 + // abp rules + + // Solution 2 + Aak.uw.isABActivated = function () { + return false; + }; // Kill antiadblock + Aak.uw.refresh_iframe = function () {}; // Stop ads to be loaded + }, + onEnd : function () { + // Solution 3 + var element = document.querySelector('div[id^="webtv_iframe_"]'); + if (element != null) { + var videoId = element.id.split('_')[2]; + setTimeout(function () { + element.innerHTML = ''; + }, 1000); + } + } + }, + m6web_fr : { + host : ['m6web.fr'], + onEnd : function () { + var player = document.querySelector('object[id$="_flash_api"]'); + var config = document.body.innerHTML.match(/M6.Player.config = ({.+});/); + console.log(config); + if (player != null && config != null) { + var config = JSON.parse(config[1]); + // Replace player + Aak.player.html5(player, { + autostart : true, + file : config.sources[1].src + }); + } + } + }, + gamingroom_tv : { + host : ['gamingroom.tv'], + onAlways : function () { + Aak.uw.adblock_detect = function () {}; + Aak.uw.GR_adblock_hide_video = function () {}; + Aak.uw.adblock_video_msg_start = function () {}; + Aak.uw.adblock_video_msg_stop = function () {}; + Aak.uw.disable_chat = function () {}; + } + }, + // Germany + sat1_de : { // research solution + host : ['sat1.de', 'sat1.ch'], + onStart : function () {}, + onEnd : function () { + /* + + Bad + gp_adBlockStatus emptyAd + abView 1 + abView_X empty + noAbView empty + noAbView_X empty + + OK + No gp_adBlockStatus + abView empty + abView_X empty + noAbView 1 + noAbView_X empty + + Sitemap: http://www.sat1.de/sitemaps/sitemap-videos.xml + Disallow: /videos + http://video.sevenoneintermedia.de/clips/mp4-840/2447000/2447529-840-148668.mp4 + http://www.sat1.de/dynamic/thumbnails/full/2447000/2447529-full-52_88-original.jpg + http://www.sat1.de/tv/die-strengsten-eltern-der-welt/video/58-schlaege-und-make-up-clip + + + Aak.log(Aak.uw); + */ + } + }, + now_domains : { + // issue: https://github.com/reek/anti-adblock-killer/issues/336 + // test: http://tinyurl.com/peeobou + // test: http://jsbin.com/vucobejofo + host : ['voxnow.de', 'rtl-now.rtl.de', 'rtl2now.rtl2.de', 'n-tvnow.de', 'superrtlnow.de', 'rtlnitronow.de', 'nowtv.de'], + onIdle : function () { + /* + Aak.editSWF('#videoplayer', { + delFlashvars : 'abcheck_enabled,adcall,adclasses,adconfig,admeta,adslog,agof,ama,angebot,as,asparts,breakad,connectioncheck,cslog,dev,dimmer,errorlog,feedback,fmsident,gtv,highlights,ivw,ivw_play,js,js_event_function,logo,logo_basewidth,logopos,nielsen,ord,osmf,svm,tile,videoplaza,videoplaza_base_url,videoplaza_share,videoplaza_tag,vpEnvironmentURL,xl' + }); + */ + } + }, + myspass_de : { + host : ['myspass.de'], + onIdle : function () { + // test: http://tinyurl.com/lto9pyd + var videoid = location.pathname.match(/\/(\d+)\/$/); + + if (videoid != null) { + Aak.request({ + url : 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=' + videoid[1], + onload : function (result) { + var res = result.responseText; + //Aak.log(res); + + // Get video + var parser = new DOMParser(); + var dom = parser.parseFromString(res, "application/xml"); + var file = dom.getElementsByTagName("url_flv").item(0).textContent; + + // Remove elements + Aak.removeElement('div.loadingGif'); + + // Replace player + Aak.player.html5('#player', { + autostart : true, + file : file + }); + + /* + // Replace player + Aak.player.flowplayer('#player', { + clip : { + autoPlay : true, + url : file + } + }); + */ + + /* + // Replace player + Aak.player.jwplayer6('#player', { + autostart : true, + file : file + }); + */ + + /* + // Replace player + Aak.player.plugin('#player', { + autostart : true, + file : file + }); + */ + + /* + // Replace player + Aak.player.videojs('#player', { + autostart : true, + file : file + }); + */ + + /* + // Replace player + Aak.player.external('#jwplayer6','player', { + autostart : true, + // skin: 'lulu', + file : file + }); + */ + + } + }); + } + } + }, + // Nederland + rtlxl_nl : { + // test: http://tinyurl.com/l2zkv3d + host : ['rtlxl.nl', 'rtlnieuws.nl'], + onEnd : function () { + Aak.editSWF('#_rtlosmf0', { + setFlashvars : { + adblock : false + } + }); + } + }, + // Norway + vgtv_no : { + // issue: https://github.com/reek/anti-adblock-killer/issues/367 + // test: http://tinyurl.com/nwp85t + host : ['vgtv.no'], + onEnd : function () { + var prevHash = location.hash; + var regexHash = /#\!\/video\/(\d+)\//; + setInterval(function () { + if (location.hash != prevHash && regexHash.test(location.hash)) { + var prevHash = location.hash; + var id = prevHash.match(regexHash)[1]; + var player = Aak.getElement('object[id^="OoFlash"]'); + Aak.removeElement('div.loader-container'); + Aak.request({ + url : 'http://svp.vg.no/svp/api/v1/vgtv/assets/' + id + '?additional=settings|chapters|cuePoints|externalId|barrels|externalCategoryId|nextAsset&appName=vgtv-website', + onload : function (result) { + var res = result.responseText; + var obj = JSON.parse(res); + console.log(player, obj.streamUrls.mp4) + Aak.player.html5(player, { + autostart : false, + file : obj.streamUrls.mp4 + }); + } + }); + } + }, 1e3); + } + }, + // Italy + rai_tv : { // research solution + host : ['rai.tv'], + onStart : function () {}, + onIdle : function () {} + }, + // TV Stream + youwatch_org : { + // issue: https://github.com/reek/anti-adblock-killer/issues/308#issuecomment-93075240 + host : ['youwatch.org'], + onStart : function () {}, + onEnd : function () { + if (Aak.getElement('#videoyw')) { + Aak.removeElement('#adbuddy-overlay, #adbuddy-no-adb-container'); + Aak.uw.disableAds(null, null, 1); + Aak.uw.player_start(); + } + } + }, + allmyvideos_net : { + host : ['allmyvideos.net'], + onAlways : function () { + Aak.uw.adblocktest = { + present : 0, + sent : 1 + }; + } + }, + ilive_domains : { + host : ['ilive.to', 'streamlive.to'], + onEnd : function () { + if (/^\/embedplayer.php/i.test(location.pathname)) { + setTimeout(function () { + // Skip timer + Aak.uw.removeOverlayHTML(); + }, 1000); + } + } + }, + micast_tv : { + host : ['micast.tv'], + onEnd : function () { + if (/^\/gen\d+.php/.test(location.pathname)) { + setTimeout(function () { + // Skip timer and close ads + Aak.uw.removeOverlayHTML(); + }, 1000); + } + } + }, + pxstream_tv : { + host : ['pxstream.tv'], + onEnd : function () { + if (/^\/embedrouter.php/.test(location.pathname)) { + setTimeout(function () { + // Skip timer and close ads + Aak.uw.closeAd(); + }, 1000); + } + } + }, + sawlive_tv : { + host : ['sawlive.tv'], + onIdle : function () { + if (/^\/embed\/watch\//i.test(location.pathname)) { + // Skip timer and close ads + Aak.uw.display = false; + Aak.uw.closeMyAd(); + } + } + }, + goodcast_co : { + host : ['goodcast.co'], + onIdle : function () { + if (/^\/stream.php/.test(location.pathname)) { + // remove ads allowed by easylist + Aak.uw.$(".advertisement").hide(); + Aak.uw.$('.adsky iframe').attr("src", "about:blank"); + } + } + }, + showsport_tv_com : { + host : ['showsport-tv.com'], + onIdle : function () { + if (/^\/ch.php/.test(location.pathname)) { + // remove ads allowed by easylist + Aak.removeElement('#advertisement, .advertisement'); + } + } + }, + sharecast_to : { + host : ['sharecast.to'], + onIdle : function () { + if (/^\/embed.php/.test(location.pathname)) { + + // Disable popunders + var interval = setInterval(function () { + Aak.setCookie('vid_main', true); + Aak.setCookie('vid_sub', 2); + Aak.setCookie('vid_delay', true); + }, 100); + + setTimeout(function () { + clearInterval(interval); + }, 5000); + + // Remove transparent overlay + Aak.removeElement('#table1'); + } + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'popundrOpenCloseWindow()')) { + Aak.stopScript(e); + } + } + }, + flowplayer_antiadblock : { + host : ['videofun.me', 'videobug.net', 'video44.net', 'play44.net', 'byzoo.org', 'playbb.me', 'videowing.me', 'videozoo.me', 'easyvideo.me', 'playpanda.net'], + onIdle : function () { + /* + http://www.animetoon.tv/black-lagoon-episode-1 + http://videowing.me/embed?w=718&h=438&video=ongoing/yu-gi-oh_arc-v_-_53.mp4 + http://playbb.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 + http://videozoo.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 + http://www.easyvideo.me/gogo/?w=718&h=438&file=yu-gi-oh_arc-v_-_53.mp4&sv=1 + http://playpanda.net/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 + */ + + // allow fullscreen when abp is enabled and remove ad layer + // ads blocked by abp rule + if (/^\/(embed|gogo|gplus)/.test(location.pathname)) { + Aak.editSWF('#flowplayer_api', { + setAttributes : { + allowfullscreen : true + } + }); + } + } + }, + str3amtv_domains : { // remove ads + popupwindow + host : ['str3amtv.com', 'futstr3am.2fh.co'], + onIdle : function () { + Aak.removeElement('div[id^="floatLayer"]'); + var anchors = document.querySelectorAll('a[onclick^="window.open"]'); + for (var i in anchors) { + var fn = anchors[i].onclick.toString(); + var re = new RegExp("http://" + location.host + "/[a-z0-9-]+\.php"); + var link = fn.match(re); + var link = link && link[0] || null; + //Aak.log(link); + anchors[i].onclick = null; + anchors[i].href = link; + anchors[i].target = '_self'; + } + } + }, + // -------------------------------------------------------------------------------------------- + // Firefox + // -------------------------------------------------------------------------------------------- + yellowbridge_com : { + host : ['yellowbridge.com'], + onAlways : function () { + Aak.uw.finalizePage = function () { + return; + }; + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'finalizePage()')) { + Aak.stopScript(e); + } + } + }, + gamespowerita_com : { + host : ['gamespowerita.com'], + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), '(document.getElementById("test" + id_2).style.height < 1)') || Aak.contains(Aak.innerScript(e), 'if(typeof(window.google_jobrunner)=="undefined" || document.getElementById("test" + id_2).style.height < 1)') || Aak.contains(Aak.innerScript(e), 'if(typeof(window.google_jobrunner)=="undefined")')) { + Aak.stopScript(e); + } + } + }, + sporttvdireto_com : { // bug auto redirect loop + host : ['sporttvdireto.com', 'tvdesporto.com'], + onStart : function () { + // this solution dont works + // document.getElementById('ads1').clientHeight < 20 + Aak.addElement('div#ads1'); + Aak.addStyle("#ads1 { height: 30px; }"); + }, + onBeforeScript : function (e) { + if (Aak.contains(Aak.innerScript(e), 'location.href = \'http://tvdesporto.com/chorar.php\';')) { + Aak.stopScript(e); + } + } + }, + altervista_zeb89 : { + host : ['zeb89.altervista.org'], + onBeforeScript : function (e) { + // greasemonkey/addons4.js + if (Aak.contains(Aak.innerScript(e), 'typeof GM_addonsStartup !== "undefined"')) { + Aak.stopScript(e); + } + } + }, + // -------------------------------------------------------------------------------------------- + // Generic + // -------------------------------------------------------------------------------------------- + generic : { + host : ['.*?'], + onRemove : function (removedNode) { + if (Aak.debug.removed) { + if (removedNode.src || + removedNode.id || + removedNode.className && + !/^firebug/.test(removedNode.className)) { + // Node removed + Aak.log(removedNode); + } + } + }, + onStart : function () { + + // FuckAdBlock & BlockAdBlock + // site: http://www.sitexw.fr/fuckadblock/ + // repo: https://github.com/sitexw/FuckAdBlock + // repo: https://github.com/sitexw/BlockAdBlock + // note: when fuckadblock.js or blockadblock.js is blocked + // note: added check and clearEvent because http://sh.st/vovHE use a custom version + if (typeof(Aak.uw.fuckAdBlock) === 'undefined' && typeof(Aak.uw.blockAdBlock) === 'undefined') { + Aak.addScript(function () { + fuckAdBlock = blockAdBlock = { + onDetected : function (fn) { + this.on(true, fn); + return this; + }, + onNotDetected : function (fn) { + this.on(false, fn); + return this; + }, + on : function (detected, fn) { + if (!detected) { + fn(); + } + return this; + }, + check : function () {}, + clearEvent : function () {} + }; + }); + } + + }, + onAlways : function () {}, + onIdle : function () { + + /* Alternative solution + // AntiAdblock (Packer) only Zdxd + if (typeof Aak.uw.k == 'function' && + typeof Aak.uw.h == 'function' && + typeof Aak.uw.ShowAdbblock == 'function' && + Aak.contains(Aak.uw.ShowAdbblock.toString(), 'warningMessage.innerHTML=text_detected()')) { + + // Disable + Aak.uw.ShowAdbblock = function () {return;}; + Aak.uw.k = function () {return;}; + Aak.uw.h = function () {return;}; + Aak.autoReport('AntiAdblockPackerZdxd)'); + } + */ + + /* + // Adunblock - http://adunblock.com/ + if (Aak.getCookie('adblock') == 1) { + Aak.setCookie('adblock', 0); + Aak.setCookie('bar_closed', 1); + } + */ + + // Better Stop Adblock + //Aak.uw.audio_file = false; + + // Adbuddy + if (typeof Aak.uw.closeAdbuddy === 'function') { + Aak.uw.closeAdbuddy(); + Aak.autoReport('Adbuddy'); + } + + // AdBlock Alerter (WP) Fix 10.12.2014 + if (Aak.getElement('div.adb_overlay > div.adb_modal_img')) { + // Remove Alert + Allow Scroll + Aak.removeElement('div.adb_overlay'); + Aak.addStyle('html,body {height:auto; overflow: auto;}'); + Aak.autoReport('AdBlockAlerter'); + } + + // Unknow Anti AdBlock system + if (Aak.getElement('#blockdiv') && Aak.contains(Aak.getElement('#blockdiv').innerHTML, 'disable ad blocking or use another browser without any adblocker when you visit')) { + Aak.removeElement('#blockdiv'); + } + + // FuckAdBlock & BlockAdBlock + // by: Angelsl + // pull: https://github.com/reek/anti-adblock-killer/pull/479 + // site: http://www.sitexw.fr/fuckadblock/ + // repo: https://github.com/sitexw/FuckAdBlock + // repo: https://github.com/sitexw/BlockAdBlock + // when FuckAdBlock class exist + if (typeof(Aak.uw.FuckAdBlock) !== 'undefined') { + Aak.addScript(function () { + window.FuckAdBlock.prototype._emitEvent = window.FuckAdBlock.prototype.emitEvent, + window.FuckAdBlock.prototype.emitEvent = function () { + this._emitEvent(!1) + }; + }); + } + if (typeof(Aak.uw.BlockAdBlock) !== 'undefined') { + Aak.addScript(function () { + window.BlockAdBlock.prototype._emitEvent = window.BlockAdBlock.prototype.emitEvent, + window.BlockAdBlock.prototype.emitEvent = function () { + this._emitEvent(!1) + }; + }); + } + + + // Antiblock - http://antiblock.org/ + var styles = document.querySelectorAll('style'); + for (var i = 0; i < styles.length; i++) { + if (styles[i].innerHTML.length) { + var css = styles[i].innerHTML.replace(/[\n\r\t\s]+/g, ""); + var id = /#([0-9a-z]{4,10})\{.*position:fixed\!important;.+document\.documentElement.scrollTop\?document\.documentElement\.scrollTop:document\.body\.scrollTop.+\}#/.exec(css); + if (id != null && id.length == 2) { + Aak.setLocal('AntiblockID', id[1]); + } + } + } + + // Anti-Adblockers + var systems = { + // Plugins WordPress + 'NoAdblock' : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.js)', + 'BetterStopAdblock' : '(/plugins/better-stop-adblock/|bsa-script-doctype.js|bsa-script-no-doctype.js)', + 'WordPressAdBlockBlocker' : '/plugins/wordpress-adblock-blocker/', + 'AntiBlockBukssaAyman' : '/plugins/anti-block/', + 'BlockAlyzer' : '/plugins/blockalyzer-adblock-counter/', + 'AdBlockingDetector' : '/plugins/ad-blocking-detector/', + // Plugins Website + 'Adworkmedia' : '(adworkmedia|loxtk|contentlockingnetworks).com/gLoader.php', + 'Adscendmedia' : 'adscendmedia.com/gwjs.php', + 'FuckAdBlock' : '(/fuckadblock.js|/blockadblock.js)', + 'jQueryAdblock' : '/jquery.adblock.js', + 'jQueryAdblockDetector' : '/jquery.adblock-detector.js', + 'AdvertisementJs' : '/advertisement.js', + 'AdvertisementJsMin' : '/advert.js', + 'AdvertisementJsSuffix' : '/advertisement([0-9]+|[\-._][a-z0-9]+)\.js', + 'AdframeJs' : '/adframe.js', + 'AntiAdBuster' : '/anti-ad-buster.js', + 'RTKAntiAdblock' : '/blockcake.js', + 'AdblockDetector' : '/AdblockDetector/handler.min.js', + 'jQueryAntiAdsBlock' : '/jquery.antiadsblock.js', + 'Adbuddy' : '/js/adbuddy.min.js', + 'AntiADsBlocker' : '/aadb/script.js' + } + var scripts = document.scripts; + for (var i = 0; i < scripts.length; i++) { + var script = scripts[i]; + if (script.src) { + for (var key in systems) { + if (new RegExp(systems[key], 'i').test(script.src)) { + //Aak.log(key, location.host, script.src); + Aak.autoReport(key, location.host, script.src); + break; + } + } + } + } + + }, + onInsert : function (insertedNode) { + + // All Nodes + if (Aak.debug.inserted) { + if (insertedNode.src || + insertedNode.id || + insertedNode.className && + !/^firebug/.test(insertedNode.className)) { + // Node inserted + Aak.log(insertedNode); + } + } + + // No-Adblock - http://www.no-adblock.com/ + if (insertedNode.id && + insertedNode.id.length == 4 && + /^[a-z0-9]{4}$/.test(insertedNode.id) && + insertedNode.nodeName == 'DIV' && + insertedNode.firstChild && + insertedNode.firstChild.id && + insertedNode.firstChild.id == insertedNode.id && + Aak.contains(insertedNode.innerHTML, 'no-adblock.com')) { + // Remove + Aak.autoReport('No-Adblock', false, location.href); + Aak.removeElement(insertedNode); + //Aak.log(insertedNode); + } + + // StopAdblock - http://stopadblock.org/downloads/ + if (insertedNode.id && + insertedNode.id.length == 7 && + /^a[a-z0-9]{6}$/.test(insertedNode.id) && + insertedNode.nodeName == 'DIV' && + insertedNode.parentNode && + insertedNode.parentNode.id && + insertedNode.parentNode.id == insertedNode.id + '2' && + Aak.contains(insertedNode.innerHTML, 'stopadblock.org')) { + // Remove + Aak.autoReport('StopAdBlock', false, location.href); + Aak.removeElement(insertedNode); + //Aak.log(insertedNode); + } + + // AntiAdblock (Packer) + var reIframeId = /^(zd|wd)$/; + var reImgId = /^(xd|gd)$/; + var reImgSrc = /\/ads\/banner.jpg/; + var reIframeSrc = /(\/adhandler\/|\/adimages\/|ad.html)/; + + // Communs + if (insertedNode.id && + reImgId.test(insertedNode.id) && + insertedNode.nodeName == 'IMG' && + reImgSrc.test(insertedNode.src) || + insertedNode.id && + reIframeId.test(insertedNode.id) && + insertedNode.nodeName == 'IFRAME' && + reIframeSrc.test(insertedNode.src)) { + + // Variant 1 + if (insertedNode.id == 'xd') { + Aak.autoReport('AntiAdblockPackerZdxd', false, location.href); + } // Variant 2 + else if (insertedNode.id == 'gd') { + Aak.autoReport('AntiAdblockPackerWdgd', false, location.href); + } + // Remove + //Aak.log(insertedNode); + Aak.removeElement(insertedNode); + } + + /* Do not still work + // FuckAdBlock (v3.1.0) - http://github.com/sitexw/FuckAdBlock + var reClass = /(pub_300x250|pub_300x250m|pub_728x90|text-ad|textAd|text_ad|text_ads|text-ads|text-ad-links)/; + var reCss = /width: 1px/; + if (insertedNode.nodeName == 'DIV' && + insertedNode.style.cssText && + reCss.test(insertedNode.style.cssText) && + insertedNode.className && + reClass.test(insertedNode.className)) { + + // Remove + insertedNode.className=''; + Aak.autoReport('FuckAdBlock', false, location.href); + Aak.removeElement(insertedNode); + } + */ + + // Adunblock - http://adunblock.com/ + var reId = /^[a-z]{8}$/; + var reClass = /^[a-z]{8} [a-z]{8}/; + var reBg = /^[a-z]{8}-bg$/; + var reStyle = /top: -?[\d]+px; opacity: [\d]; visibility: visible;/; + var reMessage = /Il semblerait que vous utilisiez un bloqueur de publicité !/; + + // Communs + if (typeof Aak.uw.vtfab != 'undefined' && + typeof Aak.uw.adblock_antib != 'undefined' && + insertedNode.parentNode && + insertedNode.parentNode.nodeName == 'BODY' && + insertedNode.id && + reId.test(insertedNode.id) && + insertedNode.nodeName == 'DIV' && + insertedNode.nextSibling && + insertedNode.nextSibling.className && + insertedNode.nextSibling.nodeName == 'DIV') { + + // Full Screen Message (Premium) + //
+ //
+ if (insertedNode.className && + reClass.test(insertedNode.className) && + reBg.test(insertedNode.nextSibling.className) && + insertedNode.nextSibling.style && + insertedNode.nextSibling.style.display != 'none') { + + // Remove Message + Aak.autoReport("AdUnBlockPremium"); + Aak.removeElement(insertedNode.nextSibling); // overlay + Aak.removeElement(insertedNode); // box + } + // Top bar Message (Free) + //
+ //
+ else if (insertedNode.nextSibling.id && + reId.test(insertedNode.nextSibling.id) && + reMessage.test(insertedNode.innerHTML)) { + + // Remove Message + Aak.autoReport("AdUnBlockFree"); + Aak.removeElement(insertedNode); + } + } + + // Antiblock - http://antiblock.org/ + var reId = /^[a-z0-9]{4,10}$/i; + var reTag1 = /(div|span|b|i|font|strong|center)/i; + var reTag2 = /[abisuqp]{1}/i; + var reWords1 = /ad blocker|ad block|ad-block|adblocker|ad-blocker|adblock|bloqueur|bloqueador|Werbeblocker|adblockert|آدبلوك بلس|блокировщиком/i; + var reWords2 = /kapat|disable|désactivez|désactiver|desactivez|desactiver|desative|desactivar|desactive|desactiva|deaktiviere|disabilitare|απενεργοποίηση|запрещать|állítsd le|publicités|рекламе/i; + + // Communs + if (insertedNode.parentNode && + insertedNode.id && + insertedNode.style && + insertedNode.firstChild && + !insertedNode.firstChild.id && + !insertedNode.firstChild.className && + reId.test(insertedNode.id) && + reTag1.test(insertedNode.nodeName) && + reTag2.test(insertedNode.firstChild.nodeName)) { + //Aak.log(insertedNode); + + // Kill audio message + var audio = insertedNode.querySelector("audio[loop]") || false; + if (audio) { + Aak.log('Antiblock(audio)'); + audio.pause(); + Aak.removeElement(audio); + } + + // Antiblock.org v3 + Fork + if (insertedNode.firstChild.firstChild && + insertedNode.firstChild.firstChild.nodeName == "IMG" && + typeof Aak.uw[insertedNode.id] == 'object' && + typeof Aak.uw[insertedNode.id].displayMessage == 'function') { + + // Better Stop Adblock + // Demo: http://codeclan.altervista.org/ + if (typeof Aak.uw[insertedNode.id].toggle == 'function') { + var childs = document.body.childNodes; + for (var i = 0; i < childs.length; i++) { + var child = childs[i]; + if (child.nodeType == 1 && child.style.display == 'none') { + child.style.display = ''; // show + //Aak.log(node); + } + } + Aak.autoReport('BetterStopAdblock'); + } + // Antiblock.org v3 + else { + Aak.autoReport('Antiblock3'); + } + // Disable + //Aak.log(insertedNode, Aak.uw[insertedNode.id]); + Aak.removeElement(insertedNode); + Aak.uw[insertedNode.id] = false; + } + // Antiblock.org v3 + v2 (Alternative Solution) + else if (localStorage.antiblockId != 'undefined' && + insertedNode.id == localStorage.antiblockId) { + // V3 + if (typeof Aak.uw[insertedNode.id] == 'object') { + Aak.uw[insertedNode.id] = false; + Aak.autoReport("Antiblock3"); + } else { // V2 + Aak.autoReport("Antiblock2"); + } + // Disable + //Aak.log(insertedNode); + Aak.removeElement(insertedNode); + } + // Antiblock.org v2 + else if (reWords1.test(insertedNode.innerHTML) && + reWords2.test(insertedNode.innerHTML)) { + // Disable + //Aak.log(insertedNode); + Aak.autoReport("Antiblock2"); + Aak.removeElement(insertedNode); + } + // Many false positive + else { + //Aak.removeElement(insertedNode); + } + } + } + } + }, + blockDetect : function () { + + // Exclude domains + var host = location.host; + var excluded = false; + Aak.excludes.forEach(function (entry) { + if (host.indexOf(entry) != -1) { + excluded = true; + if (Aak.debug.exclude) { + Aak.log(host + ' (' + entry + ') excluded !'); + } + } + }); + + // Include domains + if (!excluded) { + + // Detect & Kill + for (var i in Aak.rules) { + + // Current + var current = Aak.rules[i]; + + // RegExp host + var reHost = new RegExp(current.host.join('|')); + // If domains is + if (reHost.test(host)) { + // On all statements + if (current.onAlways) { + current.onAlways(); // start + window.addEventListener('DOMContentLoaded', current.onAlways); // idle + window.addEventListener('load', current.onAlways); // end + } + // When + if (current.onStart) { + current.onStart(); + } + // When Before Script Executed + if (current.onBeforeScript) { + if ('onbeforescriptexecute' in document) { // Mozilla Firefox + window.addEventListener('beforescriptexecute', current.onBeforeScript); + } + } // When After Script Executed + if (current.onAfterScript) { + if ('onafterscriptexecute' in document) { // Mozilla Firefox + window.addEventListener('afterscriptexecute', current.onAfterScript); + } + } + // When Window Load + if (current.onEnd) { + window.addEventListener('load', current.onEnd); + } + // When DOM Load + if (current.onIdle) { + window.addEventListener('DOMContentLoaded', current.onIdle); + } + // When DOM AttrModified + if (current.onAttrModified) { + window.addEventListener('DOMAttrModified', current.onAttrModified, false); + } + // When DOM SubtreeModified + if (current.onSubtreeModified) { + window.addEventListener('DOMSubtreeModified', current.onSubtreeModified, false); + } + // When DOM Elements are Inserted in Document + if (current.onInsert) { + + // Mutation Observer + // doc: http://tinyurl.com/mxxzee4 + // support: http://tinyurl.com/nepn7vy + if (typeof window.MutationObserver != 'undefined' || + typeof WebKitMutationObserver != 'undefined') { + + // Mutation Observer + var MutationObserver = window.MutationObserver || WebKitMutationObserver; + + // Create an observer instance + var obs = new MutationObserver(function (mutations) { + // We can safely use `forEach` because we already use mutation + // observers that are more recent than `forEach`. (source: MDN) + mutations.forEach(function (mutation) { + // we want only added nodes + if (mutation.addedNodes.length) { + //Aak.log(addedNodes); + Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) { + //Aak.log(addedNode); + current.onInsert(addedNode); + }); + } + }); + }); + // Observer + obs.observe(document, { + childList : true, + subtree : true + }); + } + // Mutation Events (Alternative Solution) + // doc: http://tinyurl.com/op95rfy + else { + window.addEventListener("DOMNodeInserted", function (e) { + current.onInsert(e.target); + }, false); + } + } + // When DOM Elements are Removed in Document + if (current.onRemove) { + + // Mutation Observer + // doc: http://tinyurl.com/mxxzee4 + // support: http://tinyurl.com/nepn7vy + if (typeof window.MutationObserver != 'undefined' || + typeof WebKitMutationObserver != 'undefined') { + + // Mutation Observer + var MutationObserver = window.MutationObserver || WebKitMutationObserver; + + // Create an observer instance + var obs = new MutationObserver(function (mutations) { + // We can safely use `forEach` because we already use mutation + // observers that are more recent than `forEach`. (source: MDN) + mutations.forEach(function (mutation) { + // we want only removed nodes + if (mutation.removedNodes.length) { + //Aak.log(mutation.removedNodes); + Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) { + //Aak.log(removedNode); + current.onRemove(removedNode); + }); + } + }); + }); + // Observer + obs.observe(document, { + childList : true, + subtree : true + }); + } + // Mutation Events (Alternative Solution) + // doc: http://tinyurl.com/op95rfy + else { + window.addEventListener("DOMNodeRemoved", function (e) { + current.onRemove(e.target); + }, false); + } + } + } + } + } + } +}; + +Aak.initialize(); \ No newline at end of file