// ==UserScript==
// @name Anti-Adblock Killer | Reek
// @namespace https://userscripts.org/scripts/show/155840
// @description Anti-Adblock Killer is a userscript whose functionality is removes many protections used on some website that force the user to disable the AdBlocker.
// @author Reek | http://reeksite.com/
// @version 7.6
// @license Creative Commons BY-NC-SA
// @encoding utf-8
// @homepage https://github.com/reek/anti-adblock-killer#anti-adblock-killer--reek
// @twitter https://twitter.com/antiadbkiller
// @icon https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png
// @include http*://*
// @exclude http*://*.google.*
// @exclude http*://*.yahoo.*/*
// @exclude http*://*.youtube.com/*
// @exclude http*://*.facebook.com/*
// @exclude http*://*.chromeactions.com/*
// @exclude http*://*.imgbox.com/*
// @exclude http*://*.imgur.com/*
// @exclude http*://*.reddit.com/*
// @exclude http*://*.baidu.com/*
// @exclude http*://*.wikipedia.org/*
// @exclude http*://*.linkedin.com/*
// @exclude http*://*.amazon.*/*
// @exclude http*://*.bing.com/*
// @exclude http*://*.ebay.com/*
// @exclude http*://*.pinterest.com/*
// @exclude http*://*.ask.com/*
// @exclude http*://*.live.com/*
// @exclude http*://*.msn.com/*
// @exclude http*://*.tumblr.com/*
// @exclude http*://*.microsoft.com/*
// @exclude http*://*.paypal.com/*
// @exclude http*://*.imdb.com/*
// @exclude http*://*.apple.com/*
// @exclude http*://*.ghacks.net/*
// @exclude http*://*.yandex.ru/*
// @exclude http*://*.qq.com/*
// @exclude http*://*.flickr.com/*
// @exclude http*://*.chatango.com/*
// @exclude http*://chatango.com/*
// @exclude http*://vimeo.com/*
// @exclude http*://360.cn/*
// @exclude http*://mail.ru/*
// @exclude http*://jsbin.com/*
// @exclude http*://jsfiddle.net/*
// @exclude http*://flattr.com/*
// @exclude http*://instagram.com/*
// @exclude http*://stackoverflow.com/*
// @exclude http*://youtu.be/*
// @exclude http*://twitter.com/*
// @exclude http*://t.co/*
// @exclude http*://reeksite.com/*
// @exclude http*://preloaders.net/*
// @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:
Mike Howard, Shunjou, Charmine, Kierek93, George Barnard, Henry Young, Seinhor9, ImGlodar, Ivanosevitch, HomeDipo, Roy Martin, DrFiZ, Tippy, Brian Rohner, Piotr Kozica, Minesh Patel, W4rell, Tscheckoff, AdBlock Polska
Collaborators:
InfinityCoding, Couchy, Dindog, Floxflob, U Bless, Watilin, @prdonahue, Hoshie, 3lf3nLi3d, Alexo, Crits, Noname120, Crt32, JixunMoe
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:
https://github.com/reek/anti-adblock-killer
Userscripts:
https://userscripts.org/scripts/show/155840
Greasyfork:
https://greasyfork.org/scripts/735
Openuserjs:
https://openuserjs.org/scripts/reek/httpsuserscripts.orgscriptsshow155840/Anti-Adblock_Killer_Reek
MonkeyGuts:
https://monkeyguts.com/code.php?id=351
=======================================================
Documentation
=======================================================
Greasemonkey:
http://wiki.greasespot.net/Greasemonkey_Manual:API
Scriptish:
https://github.com/scriptish/scriptish/wiki/Manual%3A-API
Tampermonkey:
http://tampermonkey.net/documentation.php
Violentmonkey:
https://github.com/gera2ld/Violentmonkey-oex/wiki
NinjaKit:
https://github.com/os0x/NinjaKit
=======================================================
Script
======================================================*/
Aak = {
name : 'Anti-Adblock Killer',
version : '7.6',
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',
filtersSubscribe : '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',
filtersURL : "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',
init : function () {
// Stop if user not use Script Manager or not support GM Api
if (Aak.ApiRequires()) {
// Debug
Aak.debug();
// Check GM Api supported
//Aak.ApiSupported();
// Add Command in Greasemonkey Menu
Aak.registerMenuCommand();
// Detect Filters
Aak.once(30, 'aak-detectfilters', Aak.detectFilters);
// Check Update
Aak.once(5, 'aak-checkupdate', Aak.update.checkAuto);
// Detect and Kill
Aak.kill();
}
},
debug : function () {
//if (Aak.isTopWindow) {
//Aak.player.dom();
//Aak.listValues();
//localStorage.clear();
//console.log(localStorage);
//Aak.ApiSupported();
//GM_deleteValue('aak-detectfilters');
//GM_deleteValue('aak-checkupdate');
//console.info('Anti-Adblock Killer v' + Aak.getVersion() + ' on ' + Aak.getScriptManager() + ' in ' + Aak.getBrowser(), Aak.getUUID());
//}
},
isTopWindow : !(window.top != window.self),
ready : function (fn) {
window.addEventListener('load', fn);
},
contains : function (string, search) {
return string.indexOf(search) != -1;
},
ApiRequires : function () {
if (typeof GM_xmlhttpRequest != 'undefined' &&
typeof GM_setValue != 'undefined' &&
typeof GM_getValue != 'undefined' &&
typeof GM_addStyle != 'undefined' &&
typeof GM_registerMenuCommand != 'undefined') {
return true;
} else {
return false;
}
},
ApiSupported : function () {
if (Aak.isTopWindow) {
console.info('Requires');
console.info('GM_xmlhttpRequest', (typeof GM_xmlhttpRequest != 'undefined') ? true : false);
console.info('GM_setValue', (typeof GM_setValue != 'undefined') ? true : false);
console.info('GM_getValue', (typeof GM_getValue != 'undefined') ? true : false);
console.info('GM_addStyle', (typeof GM_addStyle != 'undefined') ? true : false);
console.info('GM_registerMenuCommand', (typeof GM_registerMenuCommand != 'undefined') ? true : false);
console.info('No requires');
console.info('GM_info', (typeof GM_info != 'undefined') ? GM_info : false);
console.info('GM_getMetadata', (typeof GM_getMetadata != 'undefined') ? GM_getMetadata : false);
console.info('GM_deleteValue', (typeof GM_deleteValue != 'undefined') ? true : false);
console.info('GM_listValues', (typeof GM_listValues != 'undefined') ? true : false);
console.info('GM_getResourceText', (typeof GM_getResourceText != 'undefined') ? true : false);
console.info('GM_getResourceURL', (typeof GM_getResourceURL != 'undefined') ? true : false);
console.info('GM_log', (typeof GM_log != 'undefined') ? true : false);
console.info('GM_openInTab', (typeof GM_openInTab != 'undefined') ? true : false);
console.info('GM_setClipboard', (typeof GM_setClipboard != 'undefined') ? true : false);
}
},
listValues : function (del) {
if (typeof GM_listValues != 'undefined') {
var del = (del) ? true : false;
var list = GM_listValues();
for (var i in list) {
if (del) {
GM_deleteValue(list[i]);
} else {
console.log(list[i], GM_getValue(list[i]));
}
}
}
},
onAllStateChanges : function (callback) {
document.onreadystatechange = function () {
callback();
switch (document.readyState) {
case "loading":
callback();
case "interactive":
callback();
case "complete":
callback();
break;
}
}
},
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 (Aak.ApiRequires()) {
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_getResourceText == 'undefined' &&
typeof GM_getResourceURL == 'undefined' &&
typeof GM_openInTab == 'undefined' &&
typeof GM_setClipboard == 'undefined') {
return 'NinjaKit';
} // GreaseGoogle (Chrome)
else if (Aak.getBrowser() == 'Chrome' &&
typeof GM_setClipboard == 'undefined') {
return 'GreaseGoogle';
}
}
} else {
Aak.log('No scriptmanager detected');
return false;
}
},
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 () {
// Universally Unique IDentifier
var store = 'aak-uuid';
if (typeof GM_getValue(store) == 'undefined') {
GM_setValue(store, Aak.generateUUID());
}
return GM_getValue(store);
},
log : function (text) {
console.info(Aak.name + ': ' + text);
},
once : function (day, name, callback) {
setTimeout(function () {
if (typeof GM_getValue != 'undefined') {
// Current time
var time = new Date().getTime();
// Create setValue
if (isNaN(GM_getValue(name))) {
GM_setValue(name, 1);
}
// Execute
if (Number(GM_getValue(name)) < time) {
GM_setValue(name, (time + (day * 24 * 60 * 60 * 1000)).toString());
callback();
}
}
}, 0);
},
registerMenuCommand : function () {
Aak.ready(function () {
// Scriptish
// Note: No menu command is created when the user script is run in a iframe window.
// https://github.com/scriptish/scriptish/wiki/GM_registerMenuCommand
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() + ' Check Update', Aak.update.check);
}
});
},
notification : function (message, delay) {
if (Aak.isTopWindow) {
// animation
Aak.addStyle('@-webkit-keyframes aak-fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes aak-fadeInDown{0%{opacity:0;transform:translateY(-20px)}100%{opacity:1;transform:translateY(0)}}');
// box
Aak.addStyle('#aak-notice { -webkit-animation: aak-fadeInDown .5s ease; animation: aak-fadeInDown .5s ease; padding: 0px; color:#000 !important; background-color: #fff !important; display:block !important; width:100% !important; position:fixed !important; z-index: 999999 !important; left: 0; top: 0; text-align: left; vertical-align:middle; margin:0 !important; font-size:14px !important; font-family:arial !important; border-bottom:5px solid #DF3A32 !important; line-height:1.2 !important; font-variant:small-caps;}');
// navbar
Aak.addStyle('#aak-notice-navbar { background-color: #DF3A32 !important; padding: 0px 20px 0px 62px !important; background-image:url("' + Aak.iconURL + '"); background-repeat:no-repeat; background-position:20px 3px; background-size:32px; }');
// link
Aak.addStyle('.aak-navbar-link { padding: 0px 5px !important; line-height:35px !important; color: #fff !important; display: inline-block; text-decoration: none; transform: skew(345deg, 0deg); background-color: #DF3A32 !important; border-bottom:3px solid #DF3A32; }');
// link:hover
Aak.addStyle('.aak-navbar-link:hover { color: #fff !important; background-color: #000 !important; border-bottom:3px solid #fff; text-decoration: none;}');
// close
Aak.addStyle('#aak-notice-close { color:#fff; float: right !important; margin:0px 5px; padding:10px 10px 8px 10px; text-decoration: none;}');
// brand
Aak.addStyle('#aak-notice .brand { padding-right:20px !important; color: #fff !important; font-size:14px !important; }');
// content
Aak.addStyle('#aak-notice-content { padding:5px 20px; min-height:72px;}');
Aak.addStyle('#aak-notice-content a { color: #DF3A32 !important; text-decoration: none; }');
Aak.addStyle('#aak-notice-content a:hover { text-decoration: underline; }');
// remove
Aak.removeElement('#aak-notice');
// create
var node = document.createElement('div');
node.id = 'aak-notice';
node.innerHTML = '<div id="aak-notice-navbar"><b class="brand">Anti-Adblock Killer</b><a class="aak-navbar-link" title="Visit Homepage." href="' + Aak.homeURL + '">Homepage</a><a class="aak-navbar-link" title="Report issue or anti-adblock." href="' + Aak.reportURL + '">Report</a><a class="aak-navbar-link" title="See changes" href="' + Aak.changelogURL + '">Changelog</a><a class="aak-navbar-link" title="Make a donation to support the project." href="' + Aak.donateURL + '">Donate</a><a class="aak-navbar-link" title="Submit a new feature." href="' + Aak.featuresURL + '">Suggest Features</a><a class="aak-navbar-link" title="Follow on twitter." href="' + Aak.twitterURL + '">Twitter</a><a title="Close" href="javascript:void(0);" id="aak-notice-close">X</a></div><div id="aak-notice-content"><u style="font-size: 18px;">Notice:<br></u>' + message + '</div>';
// append
document.documentElement.appendChild(node);
// close (manually)
document.querySelector('#aak-notice-close').onclick = function () {
Aak.removeElement('#aak-notice');
}
// close (automatically)
setTimeout(function () {
Aak.removeElement('#aak-notice');
}, delay);
}
},
detectFilters : function () {
if (Aak.isTopWindow) {
Aak.ready(function () {
var elem = document.createElement("div");
elem.id = "k2Uw7isHrMm5JXP1Vwdxc567ZKc1aZ4I";
elem.innerHTML = "<br>";
document.body.appendChild(elem);
setTimeout(function () {
if (elem.clientHeight) {
Aak.notification('It seems that you have not subscribed to the list <b>Anti-Adblock Killer - Filters for Adblockers</b>, this list is necessary for the proper functioning of Anti-Adblock Killer. <a href="' + Aak.filtersSubscribe + '" target="_blank">Subscribe</a>', 30000);
console.warn("Anti-Adblock Killer: Filters for Adblockers No detected :( " + elem.clientHeight);
} else {
console.info("Anti-Adblock Killer: Filters for Adblockers detected");
}
}, 5000);
});
}
},
buildQuery : function (obj) {
var array = [];
for (var p in obj) {
array.push(p + '=' + obj[p]);
}
return array.join('&');
},
update : {
check : function () {
if (Aak.isTopWindow) {
Aak.notification('<b>Userscript: </b><i id="aak-update-script">Checking...</i><br/><b>Filters: </b><i id="aak-update-filters">Checking...</i>', 60000);
setTimeout(function () {
Aak.update.getLatestVerScript();
Aak.update.getLatestVerFilters();
}, 2000);
}
},
checkAuto : function () {
if (Aak.isTopWindow) {
Aak.ready(function () {
var data = {
scriptid : Aak.scriptid,
uuid : Aak.getUUID(),
version : Aak.getVersion(),
browser : Aak.getBrowser(),
scriptmanager : Aak.getScriptManager()
};
GM_xmlhttpRequest({
timeout : 10000, // 10s
method : "POST",
data : Aak.buildQuery(data),
url : 'http://reeksite.com/php/get.php?checkupdate',
headers : {
"Content-Type" : "application/x-www-form-urlencoded"
},
onload : function (response) {
var res = response.responseText;
var status = response.status;
var json = JSON.parse(res);
console.log(res, status, json);
if (status == 200 && typeof json == 'object' && json.update) {
Aak.downloadURL = json.url;
Aak.update.check();
}
}
});
});
}
},
getLatestVerScript : function () {
GM_xmlhttpRequest({
timeout : 5000, // 5s
method : "GET",
url : Aak.downloadURL,
onload : function (response) {
var res = response.responseText;
var status = response.status;
//console.log(status, res);
if (status == 200) {
var verInstalled = Aak.getVersion();
var verLatest = Number(res.match(/@version\s+(\d+\.\d+)/)[1]);
if (verInstalled < verLatest) {
var message = ' ' + verLatest + ' available <a title="Install latest version" href="' + Aak.downloadURL + '" target="_blank">Install</a>';
} else {
var message = 'Up-to-date ✔';
}
} else {
var message = '<i style="color:#c00;">Checking failed ✘</i>';
}
var notification = document.querySelector('#aak-update-script');
notification.innerHTML = message;
},
ontimeout : function () {}
});
},
getLatestVerFilters : function () {
GM_xmlhttpRequest({
timeout : 5000, // 5s
method : "GET",
url : Aak.filtersURL,
onload : function (response) {
var res = response.responseText;
var status = response.status;
//console.log(status, res);
if (status == 200) {
var verInstalled = Aak.getVersion();
var verLatest = Number(res.match(/!\s+Version:\s+(\d+\.\d+)/)[1]);
if (verInstalled < verLatest) {
var message = ' ' + verLatest + ' available <a title="Install latest version" id="aak-subscribe" href="' + Aak.filtersSubscribe + '" target="_blank">Install</a>';
} else {
var message = 'Up-to-date ✔';
}
} else {
var message = '<i style="color:#c00;">Checking failed ✘</i>';
}
var notification = document.querySelector('#aak-update-filters');
notification.innerHTML = message;
},
ontimeout : function () {}
});
}
},
autoReport : function (system, host, target) {
var host = (host) ? host : location.host;
var target = (target) ? target : '';
var name = 'Aak' + system;
Aak.log(system);
if (typeof localStorage != "undefined") {
if (typeof localStorage[name] == "undefined") {
// w3schools.com/html/html5_webstorage.asp
// Using localStorage because GM get/setValue does not work
localStorage[name] = host;
var data = {
system : system,
host : host,
target : target
};
GM_xmlhttpRequest({
timeout : 10000, // 10s
method : "POST",
data : Aak.buildQuery(data),
url : 'http://reeksite.com/php/get.php?autoreport',
headers : {
"Content-Type" : "application/x-www-form-urlencoded"
},
onload : function (response) {
var res = response.responseText;
var status = response.status;
//console.log(res, status);
}
});
} else {
//console.log('Already reported !');
}
} else {
console.warn('Sorry! No Web Storage support.');
}
},
setStorage : function () {
if (localStorage) {
// Le navigateur supporte le localStorage
} else {
//throw 'localStorage non supporté';
}
},
getStorage : function () {
if (localStorage) {
// Le navigateur supporte le localStorage
} else {
//throw 'localStorage non supporté';
}
},
getReadme : function (selector) {
GM_xmlhttpRequest({
method : "GET",
url : Aak.homeURL,
headers : {
"User-Agent" : navigator.userAgent,
"Accept" : "text/html"
},
onload : function (response) {
var res = response.responseText;
var parser = new DOMParser();
var dom = parser.parseFromString(res, "text/html");
var readme = dom.querySelector("div#readme article.markdown-body");
//console.log(readme);
document.querySelector(selector).appendChild(readme);
}
});
},
getChangelog : function () {
GM_xmlhttpRequest({
method : "GET",
url : Aak.changelogURL,
headers : {
"User-Agent" : navigator.userAgent,
"Accept" : "text/html"
},
onload : function (response) {
var res = response.responseText;
var parser = new DOMParser();
var dom = parser.parseFromString(res, "text/html");
var elem = dom.querySelector("#post-body-505690");
Aak.notification(elem.textContent, 60000);
}
});
},
kill : function () {
// Detect & Kill
for (var i in Aak.rules) {
// Current
current = Aak.rules[i];
// RegExp host
var reHost = new RegExp(current.host.join('|'), 'i');
// If domains is
if (reHost.test(location.host)) {
// Add Js / Css / Cookie
if (current.onStart) {
current.onStart();
}
// Cancel Js Script
if (current.onScript) {
// Mozilla Firefox
if ('onbeforescriptexecute' in window) {
window.addEventListener('beforescriptexecute', current.onScript);
}
}
// When Window Load
if (current.onEnd) {
window.addEventListener('load', current.onEnd);
}
// When DOM Load
if (current.onLoad) {
window.addEventListener('DOMContentLoaded', current.onLoad);
}
// 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
// developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// caniuse.com/mutationobserver
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) {
//console.log(addedNodes);
Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
//console.log(addedNode);
current.onInsert(addedNode);
});
}
});
});
// Observer
obs.observe(document, {
childList : true,
subtree : true
});
}
// Mutation Events (Alternative Solution)
// developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events
else {
window.addEventListener("DOMNodeInserted", function (e) {
current.onInsert(e.target);
}, false);
}
}
// When DOM Elements are Removed in Document
if (current.onRemove) {
// Mutation Observer
// developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// caniuse.com/mutationobserver
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) {
//console.log(mutation.removedNodes);
Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) {
//console.log(removedNode);
current.onRemove(removedNode);
});
}
});
});
// Observer
obs.observe(document, {
childList : true,
subtree : true
});
}
// Mutation Events (Alternative Solution)
// developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events
else {
window.addEventListener("DOMNodeRemoved", function (e) {
current.onRemove(e.target);
}, false);
}
}
}
}
},
confirmLeave : function () {
window.onbeforeunload = function () {
return '';
};
},
confirmReport : function (element) {
element.innerHTML = 'Report';
element.title = 'Report issue or anti-adblock';
element.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 = element.href;
}
}
},
stopScript : function (e) {
e.preventDefault();
e.stopPropagation();
},
innerScript : function (e) {
return e.target.innerHTML;
},
addScript : function (code) {
// Note: Scriptish no support
if (document.head) {
if (/\.js$/.test(code)) { // External
document.head.appendChild(document.createElement('script')).src = code;
} else { // Inline
document.head.appendChild(document.createElement('script')).innerHTML = code.toString().replace(/^function.*{|}$/g, '');
}
}
},
addElement : function (str) { // ex: div.ads or span#ads
if (Aak.contains(str, '.')) {
var str = str.replace('.', ':className:');
} else if (Aak.contains(str, '#')) {
var str = str.replace('#', ':id:');
}
var arr = str.split(':');
Aak.addScript('function() { document.documentElement.appendChild(document.createElement("' + arr[0] + '")).' + arr[1] + ' = "' + arr[2] + '"; document.querySelector("' + arr[0] + '").innerHTML = "<br>"; }');
},
removeElement : function (o) {
if (o instanceof HTMLElement) {
return o.parentNode.removeChild(o);
} else if (typeof o === "string") {
var elem = document.querySelectorAll(o);
for (var i = 0; i < elem.length; i++) {
elem[i].parentNode.removeChild(elem[i]);
}
} else {
return false;
}
},
getElement : function (selector) {
var elem = document.querySelector(selector) || false;
if (elem) {
return elem;
} else {
return false;
}
},
addStyle : function (css) {
GM_addStyle(css);
},
getStyle : function (el, styleProp) {
if (el.currentStyle)
return el.currentStyle[styleProp];
else if (window.getComputedStyle)
return document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
},
getCookie : function (sName) {
var oRegex = new RegExp("(?:; )?" + sName + "=([^;]*);?");
if (oRegex.test(document.cookie)) {
return decodeURIComponent(RegExp["$1"]);
} else {
return null;
}
},
setCookie : function (sName, sValue, sTime) {
sTime = (sTime) ? sTime : 365 * 24 * 60 * 60 * 1000;
var today = new Date(),
expires = new Date();
expires.setTime(today.getTime() + sTime); // 365*24*60*60*1000
document.cookie = sName + "=" + encodeURIComponent(sValue) + ";expires=" + expires.toGMTString() + ";path=/";
},
decodeURI : function (str) {
return decodeURIComponent(str);
},
encodeURI : function (str) {
return encodeURIComponent(str);
},
encodeHTML : function (str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
},
decodeHTML : function (str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
},
uniqid : function () {
return 'Aak-' + Math.random().toString(36).substring(4);
},
allowfullscreen : function (elem, boolen) {
var boolen = (boolen) ? boolen : true;
if (typeof elem == 'string') {
var elem = document.querySelector(elem);
}
var parent = elem.parentNode;
var clone = elem.cloneNode(true);
var params = clone.querySelector('param[name="allowfullscreen"]') || false;
if (params) {
params.value = boolen;
}
if (typeof clone.allowfullscreen != 'undefined') {
clone.allowfullscreen = boolen;
}
// Replace
parent.replaceChild(clone, elem);
},
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
},
dom : function () {
GM_registerMenuCommand(Aak.name + ' ' + Aak.getVersion() + ' swfobjects', function () {
var elems = document.querySelectorAll('embed,object');
for (var i = 0; i < elems.length; i++) {
this.custom(elems[i]);
this.log();
}
});
},
get : function (element) {
if (element instanceof HTMLElement) {
this.in.node = element;
} else if (typeof element == 'string') {
if (/^[#\.]/.test(element)) {
this.in.node = document.querySelector(element);
} else {
this.in.node = document.getElementById(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.uniqid();
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();
}
//console.log(this);
},
custom : function (element, attributes, flashvars, options) {
//
this.get(element);
//
if (typeof attributes == 'object') {
this.mergeObj(this.attributes, attributes);
}
//
if (typeof flashvars == 'object') {
if (flashvars.set) {
this.setVars(flashvars.set);
}
if (flashvars.remove) {
this.removeVars(flashvars.remove);
}
}
//
if (typeof options == 'object') {
if (options.method) {
this.options.method = options.method;
}
if (options.output) {
this.options.output = options.output;
}
}
this.insert();
//console.log(this);
},
log : function (a) {
var a = (a) ? a : '';
console.log('Aak.player ' + a + ' --> ', this);
},
addDownloadBtn : function () {
var btn = document.createElement("p");
btn.innerHTML = '<strong>Video: </strong> <a href="' + this.attributes.src + '" download>Download</a>';
this.out.node.parentNode.insertBefore(btn, this.out.node);
},
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 (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);
this.out.node.setAttribute('height', this.attributes.height);
this.out.node.setAttribute('frameborder', 0);
this.out.node.setAttribute('scrolling', 'no');
break;
case 'tab':
this.log();
return GM_openInTab(this.swfvars);
break;
case 'html5':
this.out.node = document.createElement('video');
this.out.node.innerHTML = '<strong>Video not playing ? <a href="' + this.attributes.src + '" download>Download file</a> instead.</strong>';
for (k in this.attributes) {
if (k == 'autoplay') { // fix bug duplicate playing on firefox
this.out.node.onloadstart = function () {
this.play();
}
} else {
this.out.node.setAttribute(k, this.attributes[k]);
}
}
this.out.node.onerror = function () { // switch to plugin player
Aak.player.plugin(this, {file:Aak.player.attributes.src});
};
break;
default:
this.out.node = document.createElement('embed');
for (k in this.attributes) {
this.out.node.setAttribute(k, this.attributes[k]);
}
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.addDownloadBtn();
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();
},
flow : 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.height = setup.height || this.attributes.height;
setup.width = setup.width || this.attributes.width;
setup.type = this.getMime(setup.file || setup.src);
var html = '<html><head><link href="http://vjs.zencdn.net/4.8/video-js.css" rel="stylesheet"><script src="http://vjs.zencdn.net/4.8/video.js"></script></head><body><video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="' + setup.width + '" height="' + setup.height + '"></video><script>videojs("my_video_1",{techOrder:["flash","html5"],autoplay:true,sources:[{type:"' + setup.type + '",src:"' + setup.file + '"}]})</script></body></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
// http://stackoverflow.com/questions/8240101/set-content-of-iframe
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 = '<html><head><script src="http://jwpsrv.com/library/5V3tOP97EeK2SxIxOUCPzg.js"></script></head><body><div id="myElement"></div><script>jwplayer("myElement").setup(' + JSON.stringify(setup) + ');</script></body></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 ! <a href="http://www.videolan.org/vlc/" target="_blank">Install</a>', 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 video
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.id = this.attributes.name = Aak.uniqid();
this.attributes.height = setup.height || this.in.node.clientHeight || "100%";
this.attributes.width = setup.width || this.in.node.clientWidth || "100%";
this.attributes.src = setup.file || setup.src;
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';
}
this.options.output = 'html5';
this.insert();
}
},
rules : { // Rules
// --------------------------------------------------------------------------------------------
// Specific
// --------------------------------------------------------------------------------------------
blogspot : { // No Country Redirect (NCR)
host : ['.blogspot.'],
onStart : function () {
// webgranth.com/how-to-prevent-redirecting-blogspot-blog-to-country-specific-urls
var blog = location.host.split(".");
if (blog[blog.length - 1] != "com") {
var ncr = "http://" + blog[0] + ".blogspot.com/ncr";
location.replace(ncr + location.pathname);
}
}
},
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 !important; }");
}
// New 12.05.2014
// + abp rule (alternative solution)
Aak.addStyle("#adblocktrap { height: 12px !important; }");
},
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), 'window.location = "http://uptobox.com/?op=adblock";')) {
Aak.stopScript(e);
}
}
},
notreplanete_info : {
host : ['notre-planete.info'],
onStart : function () {
Aak.addStyle("#testpub { height: 51px !important; }");
Aak.addStyle("#pub_meh { height: 51px !important; }");
},
onLoad : function () {
/* + abp rule
var pub --> pagead2.googlesyndication.com
*/
//console.log(unsafeWindow.pub, document.getElementById("pub_meh").clientHeight, unsafeWindow.largeur)
}
},
anisubsia_com : {
host : ['anisubsia.com'],
onStart : function () {
// + abp rule #@#.adsantilok
Aak.addStyle(".adsantilok { height: 5px !important; }");
},
onLoad : function () {
unsafeWindow.jAntiBlock = function () {
return;
};
unsafeWindow.CekBlok = function () {
return;
};
}
},
elahmad_com : {
host : ['elahmad.com'],
onStart : function () {
Aak.addStyle("#adblock { height: 1px !important; }");
}
},
multiup_org : {
host : ['multiup.org', 'streamupload.org'],
onStart : function () {
Aak.addStyle("#crazy { height: 3px !important; }");
}
},
mrtzcmp3_net : {
host : ['mrtzcmp3.net'],
onStart : function () {
Aak.addStyle(".rtm_ad { height: 1px !important; }");
}
},
go4up_com : {
host : ['go4up.com'],
onStart : function () {
Aak.addStyle(".myTestAd { height: 1px !important; }");
}
},
bggledai_tv : {
host : ['bg-gledai.tv'],
onStart : function () {
Aak.addStyle(".myAd { height: 1px !important; }");
}
},
thepcspy_com : { // http://thepcspy.com/read/how_to_block_adblock/
host : ['thepcspy.com'],
onStart : function () {
Aak.addStyle(".myTestAd { height: 1px !important; }");
Aak.addStyle(".blocked { display: none !important; }");
},
onLoad : function () {
Aak.removeElement('.blocked');
}
},
automobilesportive_com : {
host : ['automobile-sportive.com'],
onStart : function () {
Aak.addStyle(".myTestAd { height: 51px !important; display: none !important; }");
}
},
snsw_us : {
host : ['snsw.us'],
onStart : function () {
Aak.addStyle("#ad_1 { height: 1px !important; }");
}
},
urlchecker_net : {
host : ['urlchecker.net'],
onStart : function () {
Aak.addStyle("#adchecker { height: 20px !important; }");
}
},
interfans_org : { // http://www.interfans.org/forum/
host : ['interfans.org'],
onStart : function () {
Aak.addStyle(".ad_global_header { height: 1px !important; display: none !important; }");
}
},
maxdebrideur_com : {
host : ['maxdebrideur.com'],
onStart : function () {
Aak.addStyle(".clear + div[id] { height: 12px !important; }");
}
},
topzone_it : {
host : ['topzone.lt'],
onStart : function () {
Aak.addStyle(".forumAd { height: 1px !important; display: none !important; }");
}
},
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 !important; }");
// Disable Antiblock 2
Aak.addStyle(".container .row .col-lg-12 div[id] { height: 35px !important; }");
},
onLoad : function () {
// Disable Antiblock 1
document.querySelector('.adsbygoogle').innerHTML = '<br>';
// Disable Antiblock 2
unsafeWindow.trackAdBlocking = function () {};
}
},
tweaktown_com : {
host : ['tweaktown.com'],
onStart : function () {
Aak.addStyle("#div-gpt-ad-1378071706813-0, #div-gpt-ad-1378150878492-1 { height: 3px !important; display: none !important; }");
}
},
debrideurstream_fr : {
host : ['debrideurstream.fr'],
onStart : function () {
Aak.addStyle("#content div[id][align=center] { height: 12px !important; }");
}
},
preemlinks_com : {
host : ['preemlinks.com'],
onStart : function () {
Aak.addStyle("#divads { height: 1px !important; }");
}
},
hentai_to : {
host : ['hentai.to'],
onStart : function () {
Aak.addStyle("#hentaito123 { height: 11px !important; }");
}
},
prototurk_com : {
host : ['prototurk.com'],
onStart : function () {
Aak.addStyle("#reklam { height: 1px !important; }");
}
},
mufa_de : {
host : ['mufa.de'],
onStart : function () {
Aak.addStyle("#leaderboard { height: 5px !important; }");
Aak.addStyle("#large-rectangle { height: 5px !important; }");
Aak.addStyle("#ad-header-468x60 { height: 5px !important; }");
}
},
watcharab_com : {
host : ['watcharab.com'],
onStart : function () {
// + adp rule watcharab.com#@##adblock
Aak.addStyle("#adblock { height: 5px !important; }");
}
},
freedomip_com : {
host : ['freedom-ip.com'],
onStart : function () {
Aak.addStyle(".pub_vertical ins, .pub_vertical div { height: 11px !important; }");
}
},
wakanim_tv : {
host : ['wakanim.tv'],
onStart : function () {
Aak.addStyle("#detector { display: none !important; }");
Aak.addStyle("#nopub { display: block !important; }");
}
},
add_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', 'filmovizija.com', 'filmovizija.net'],
onStart : function () {
Aak.addElement('div#tester');
}
},
add_add : {
host : ['filecom.net', 'upshare.org', 'skippyfile.com', 'mwfiles.net', 'up-flow.org'],
// @@||filecom.net/advertisement.js
// document.write('<div id="add"></div>');
onStart : function () {
Aak.addElement('div#add');
}
},
add_adpbtest : {
// @@||teknogods.com/advert.js
// <div id="adpbtest">;
host : ['leaguesecretary.com', 'teknogods.com', 'hellsmedia.com'],
onStart : function () {
Aak.addElement('div#adpbtest');
}
},
add_adtester : {
host : ['freesportsbet.com', 'sportsplays.com'],
onStart : function () {
Aak.addElement('div#ad-tester');
}
},
freegamehosting_nl : {
host : ['freegamehosting.nl'],
onStart : function () {
Aak.addElement('div#adtest');
}
},
theweatherspace_com : {
host : ['theweatherspace.com'],
onStart : function () {
Aak.addElement('div#ab-bl-advertisement');
}
},
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');
}
},
chrissmoove_com : {
host : ['chrissmoove.com'],
onStart : function () {
//Aak.addElement('div#adserver');
}
},
kooralive_info : {
host : ['kooralive.info'],
onStart : function () {
unsafeWindow.fuckAdBlock = 1;
}
},
eventhubs_com : {
host : ['eventhubs.com'],
onStart : function () {
Aak.addElement('div#blahyblaci1');
unsafeWindow.clearInterval(tid);
},
onLoad : function () {
unsafeWindow.clearInterval(tid);
}
},
antennesport_com : {
host : ['antennesport.com', 'serverhd.eu'],
onLoad : function () { // for antennesport
// Remove Pub
Aak.removeElement("#pub .pubclose");
// Redirect to Player
document.querySelector("#pub .embed iframe").src = "/embed/embed.php";
},
onScript : 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', 'pregen.net', 'kooora.com', 'str3amtv.co.nr', 'str3amtv.altervista.org', 'str3am.altervista.org', 'filecom.net', 'pipocas.tv', 'generatupremium.biz'],
onStart : function () {
if (typeof exportFunction == 'function') {
// Doc: http://tinyurl.com/k6qphme
exportFunction(function () {}, unsafeWindow, {
defineAs : "alert"
});
} else {
unsafeWindow.alert = function () {};
}
}
},
pipocas_tv : {
host : ['pipocas.tv'],
onStart : function () {
// Also added in disableAlertbox
// No popup
Aak.setCookie('popup_user_login', 'yes');
}
},
vgunetwork_com : {
host : ['vgunetwork.com'],
onLoad : function () {
Aak.setCookie('stopIt', 1);
var close = Aak.getElement('#some_ad_block_key_close');
if (close) {
close.click();
}
}
},
seekingalpha_com : {
host : ['seekingalpha.com'],
onLoad : function () {
unsafeWindow.SA.Pages.Article.is_gnikcolbda = function () {
return false;
}
}
},
anisearch_com : { // solved with abp rule
host : ['anisearch.com'],
onLoad : function () {
//unsafeWindow.is_loaded = true;
//Aak.removeElement('.box-error');
}
},
luxyad_com : { // skip redirect myanimes.li
host : ['luxyad.com'],
onLoad : 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'],
onLoad : 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'],
onLoad : 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'],
onLoad : 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);
},
onLoad : function () {
Aak.setCookie('ad_locked', 1);
}
},
bitcoiner_net : {
host : ['bitcoiner.net'],
onLoad : function () {
// Remove notice
Aak.removeElement('#adblock-info');
// Skip timer
var btSend = Aak.getElement('#submit');
if (btSend) {
btSend.setAttribute('disabled', false);
btSend.setAttribute('value', 'Send!');
}
}
},
bigdownloader_com : {
host : ['bigdownloader.com'],
onLoad : function () {
Aak.removeElement('#anti_adblock');
}
},
gametrailers_com : {
host : ['gametrailers.com'],
onLoad : function () {
Aak.removeElement('#ad_blocking');
}
},
scanmx_com : {
host : ['scan-mx.com'],
onStart : function () {
unsafeWindow.ad_block_test = function () {};
},
onLoad : function () {
unsafeWindow.ad_block_test = function () {};
document.getElementById('yop').id = '';
}
},
filmovizija_domains : { // many changes
host : ['filmovizija.com', 'filmovizija.net'],
onStart : function () {
// code are obfuscated
Aak.setCookie('ipsos', 0);
},
onLoad : function () {
Aak.setCookie('ipsos', 0);
//Aak.removeElement('body div[style*="position: fixed"]');
}
},
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 !important; }");
Aak.addElement('div#banner');
} else { // Website
// Solution 1
Aak.addElement('div.banner_topo');
}
},
onLoad : function () {
if (Aak.contains(location.host, 'forum')) {
// Solution 2
unsafeWindow.addBlocking.hide();
unsafeWindow.addBlocking.kill();
} else { // Website
// Solution 2
document.body.id = '';
Aak.removeElement('.adblock');
}
}
},
debrastagi_com : {
host : ['debrastagi.com'],
onLoad : function () {
Aak.removeElement('#stp-main');
Aak.removeElement('#stp-bg');
}
},
rapidebrideur_com : {
host : ['rapidebrideur.com'],
onStart : function () {
Aak.addStyle("html body div.container-fluid div.row-fluid div.span9 div div[id] { height: 12px !important; display: block !important; }");
},
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), 'window.location = "../pages/adblock.html";')) {
Aak.stopScript(e);
}
}
},
blockblockA : { // Solution was also added to AAK-Filters
// 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'],
onStart : function () {
unsafeWindow.alert = false;
},
onLoad : function () {
// Activate button debrid
var realbutton = Aak.getElement('.realbutton');
if (realbutton) {
realbutton.setAttribute('onclick', '');
realbutton.setAttribute('type', 'submit');
}
}
},
bokepspot_com : {
host : ['bokepspot.com'],
onStart : function () {
// Hide Disclaimer
Aak.setCookie('hideDialog', 'hide');
},
onLoad : function () {
// Remove Disable AdBlock
Aak.removeElement('#tupiklan');
}
},
picload_com : {
host : ['picload.org'],
onStart : function () {
Aak.setCookie('pl_adblocker', false);
},
onLoad : function () {
unsafeWindow.ads_loaded = true;
unsafeWindow.imageAds = false;
Aak.removeElement('div[oncontextmenu="return false;"]');
}
},
freezedownload_com : {
host : ['freezedownload.com'],
onLoad : function () {
if (/freezedownload.com\/download\//.test(location.href)) {
Aak.removeElement('body > div[id]');
}
}
},
rapid8_com : {
host : ['rapid8.com'],
onLoad : function () {
Aak.removeElement('div.backk + #blcokMzg');
Aak.removeElement('div.backk');
}
},
adf_domains : {
host : ['adf.ly', 'q.gs', 'j.gs', 'u.bb', '9.bb', 'go.phpnulledscripts.com'],
onLoad : function () {
// Disable onbeforeunload
unsafeWindow.onbeforeunload = false;
unsafeWindow.onunload = false;
var btContinue = Aak.getElement('button[id=abC]');
var btSkip = Aak.getElement('#skip_button');
var forcing = function () {
if (btContinue) {
btContinue.click();
}
if (btSkip && btSkip.href) {
window.clearInterval(runSetInt)
window.location.href = btSkip.href;
}
};
var runSetInt = setInterval(forcing, 0);
runSetInt;
}
},
tvdez_domains : {
// (document.getElementById('pubfooter').clientHeight < 20)
host : ['tvdez.com', 'casadossegredos.tv', 'estadiofutebol.com', 'televisaofutebol.com'],
onStart : function () {
Aak.addStyle("#pubfooter, #pub2 { height: 30px !important; display: block !important; }");
Aak.setCookie("adblock", null, 0);
},
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), "location.href = 'adblock.php';")) {
Aak.stopScript(e);
}
}
},
tek_domains : {
host : ['tek.no', 'hardware.no', 'akam.no', 'teknojobb.no', 'amobil.no', 'gamer.no', 'teknofil.no'],
onLoad : function () {
unsafeWindow.Tek = false;
localStorage.clear();
sessionStorage.clear();
}
},
wowhq_domains : {
host : ['livesoccerhq.com', 'lvshd.altervista.org', 'wowhq.ws', 'futeonline.altervista.org'],
onLoad : 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) {
console.log(atob(matches[1]));
location.href = atob(matches[1]);
}
}
}
},
privateinsta_com : {
host : ['privateinsta.com'],
onLoad : function () {
// + abp rule
unsafeWindow.dont_scroll = false;
Aak.removeElement("#overlay_div");
Aak.removeElement("#overlay_main_div");
}
},
risikogesundheit_de : {
host : ['risiko-gesundheit.de'],
onLoad : function (e) {
setTimeout(function () {
window.stop();
}, 5000);
}
},
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);
}
},
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 Anti-Adblock Killer - Filters for Adblockers. <a href="' + Aak.filtersSubscribe + '" target="_blank">Subscribe Now !</a>, ', 20000);
}
}
},
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 Anti-Adblock Killer - Filters for Adblockers. <a href="' + Aak.filtersSubscribe + '" target="_blank">Subscribe Now !</a>, ', 20000);
}
}
},
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'],
onLoad : 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"]');
//console.log(iframes.length,iframes);
if (iframes.length) {
// Neutralize Survey functions
for (i in unsafeWindow) {
var fn = unsafeWindow[i];
// Parse all no native functions
if (typeof fn == 'function' &&
!/native/.test(fn.toString())) {
// Disable dynamic functions
if (/_\d+$/.test(i)) {
//console.log(i);
unsafeWindow[i] = function () {};
}
// Disable the functions that prevents the removal of the iframe
else if (/location.reload/.test(fn.toString())) {
//console.log(i);
unsafeWindow[i] = function () {};
} // Disable static functions
else if (/^(mscrollToTop|scrollToTop|gLoad_split_|gLoad|LockPage|noScrollIE|noScrollNS)$/.test(i)) {
//console.log(i);
unsafeWindow[i] = function () {};
}
}
}
// Unlock page
unsafeWindow.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;
//console.log(i, iframe, container, overlay);
Aak.removeElement(overlay);
Aak.removeElement(container);
}
}
}
},
// --------------------------------------------------------------------------------------------
// Players
// --------------------------------------------------------------------------------------------
kissanime_com : { // fixed 2014.08.11
host : ['kissanime.com'],
onStart : function () {
// Solution 2
unsafeWindow.DoDetect2 = null;
},
onLoad : function () {
// Solution 3 abp rule
// @@||kissanime.com^$elemhide
if (/id=[\d]+$/.test(location.href)) {
var divContentVideo = document.querySelector('#divContentVideo');
// Solution 1
if (unsafeWindow.DoDetect2) {
unsafeWindow.DoDetect2 = null;
Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut');
console.log('1');
} //Solution 2
else if (divContentVideo) {
var divDownload = document.querySelector('#divDownload').cloneNode(true);
//console.log(divDownload,divContentVideo);
setTimeout(function () {
divContentVideo.innerHTML = '';
unsafeWindow.DoHideFake();
divContentVideo.appendChild(divDownload);
Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut');
console.log('2');
}, 5500);
}
}
}
},
channel4_com : { // research solution
host : ['channel4.com'],
onLoad : function () {
/*
var player = document.querySelector("#catchUpPlayer");
*/
// console.log(Aak.getElement('#catchUpPlayer param[name="flashvars"]'));
}
},
cbs_com : { // research solution
host : ['cbs.com'],
onStart : function () {
// + abp rule
//Aak.setCookie('ad-block-counter', 0);
},
onLoad : function () {
/*
setTimeout(function () {
var player = document.querySelector("#rcpHolder");
}, 3000);
*/
}
},
tvcatchup_com : { // research solution
host : ['tvcatchup.com'],
onStart : function () {
// + abp rule
//Aak.setCookie('ad-block-counter', 0);
},
onLoad : 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'],
onLoad : 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
wrzuta_domains : {
host : ['.wrzuta.pl', 'pudelek.tv', 'komediowo.pl', 'sfora.pl', 'autokrata.pl', 'sportfan.pl', 'wawalove.pl', 'hotmoney.pl'],
onEnd : function () {
var timeout = (Aak.getBrowser() == 'Firefox') ? 1000 : 6000;
setTimeout(function () {
var fn = function (mid, channel, element) {
GM_xmlhttpRequest({
method : "GET",
url : 'http://' + channel + '.wrzuta.pl/npp/embed/' + channel + '/' + mid,
onload : function (result) {
var res = result.responseText;
console.log(1, res);
// Get video
var obj = JSON && JSON.parse(res);
//console.log(obj);
// New player
// Using an external flash player is impossible because protected by crossdomain.xml
//Aak.player.options.insert = 'inner';
Aak.player.html5(element.parentNode, {
autostart : true,
file : obj.url[1].url // Medium Quality
});
}
});
}
//http://www.wrzuta.pl/embed_video.js?key=0RkwUOxAmt0&login=jabulanix&width=600&height=499&autoplay=true
var elements = document.querySelectorAll('script[src*="/embed_video.js"]');
console.log(elements);
if (elements.length) {
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var src = element.src;
var mid = src.match(/key=(\w+)/)[1];
var channel = src.match(/login=(\w+)/)[1];
//console.log(element, mid, channel);
fn(mid, channel, element);
}
}
}, timeout);
}
},
wp_domains : {
host : ['.wp.tv', '.wp.pl', 'biztok.pl'],
onEnd : function () {
var timeout = (Aak.getBrowser() == 'Firefox') ? 1000 : 6000;
setTimeout(function () {
//
Aak.removeElement('#Player1');
//
var obj = unsafeWindow.Config || unsafeWindow.o || false;
var player = document.querySelector('#Player0') || false;
console.log(unsafeWindow, obj, player);
//
if (obj && player) {
// clip != null
// http://tinyurl.com/kue99ow
if (typeof obj.clip == 'object') {
// New player
Aak.player('video', 'Player0', {
autostart : true,
file : obj.clip.url[0].url
});
} else {
// config != null
// http://tinyurl.com/nafxruy
if (typeof obj.data == 'object') {
var mid = obj.data.startMid;
} else {
// url != null
// http://tinyurl.com/o949u8m
var mid = obj.url.match(/mid=([\d]+)/)[1];
//console.log(mid);
}
GM_xmlhttpRequest({
timeout : 10000, // 10s
method : "GET",
url : 'http://wp.tv/mid,' + mid + ',embed.json',
onload : function (result) {
var res = result.responseText;
//console.log(res);
// Get video
var obj = JSON.parse(res);
console.log(obj);
// New player
// get.wp.tv/?f=2886223.1409731997972.h.mp4
Aak.player.html5('Player0', {
autostart : true,
file : obj.clip.url[0].url
});
}
});
}
}
}, timeout);
}
},
tvn_pl : { // http://tinyurl.com/mcwtz27
host : ['tvn.pl', 'tvn24.pl', 'player.pl'],
onStart : function () {
// Start EventListener
window.addEventListener('DOMNodeInserted', function (e) {
var player = e.target;
if (player && player.data && /adServerURL/.test(player.data)) {
Aak.player.custom(player, {
src : 'http://admin.brightcove.com/viewer/us20140807.1543/BrightcoveBootloader.swf'
}, {
set : {
autoStart : true
},
remove : 'adServerURL,description,linkBaseURL,title,viralPlayerAd,debuggerID,startTime,htmlFallback,viralPlayerWidth,viralPlayerVideoId,viralPlayerUrl,viralPlayerShareUrl,viralPlayerID,templateLoadHandler,viralPlayerCustomPackage,viralPlayerGstream,viralPlayerHeight,exParam1'
}, {
output : 'iframe'
});
}
}, false);
}
},
// France
playtv_fr : {
host : ['play.tv', 'playtv.fr'],
onEnd : function () {
// unsafeWindow.ppl.vars.redirect = function () {};
console.log(unsafeWindow);
//return false;
var channel = unsafeWindow.ptv.Data.Remote.channel;
if (typeof channel == 'object' && Aak.contains(location.pathname, channel.alias)) {
// When pathname change
setInterval(function () {
if (!Aak.contains(location.pathname, channel.alias)) {
location.reload();
} else if (Aak.contains(location.pathname, 'adblock')) {
window.stop();
}
}, 1000);
var timestamp = new Date().getTime();
var rand = Math.random().toString().slice(2, 18);
var container = document.querySelector(".notice-adb");
var url = 'http://tvplayer.play.tv/config/?callback=jQuery' + rand + '_' + timestamp + '&id=' + channel.tvplayer_id + '&appzone=desktop.playtv&_=' + timestamp;
console.log(channel, url, timestamp, rand);
GM_xmlhttpRequest({
method : "GET",
url : url,
headers : {
"User-Agent" : navigator.userAgent
},
onload : function (response) {
var res = response.responseText;
console.log('ajax ', res);
//
var json = res.substring(res.indexOf('{'), res.lastIndexOf('}') + 1);
var obj = JSON && JSON.parse(json);
console.log(res, json, obj);
var a = obj && obj.flashVars.a || res.match(/"fa":"([a-z0-9]+)/)[1];
var b = obj && obj.flashVars.b || res.match(/"bf":"([a-z0-9]+)/)[1];
//console.log(a, b);
// http://tvplayer.play.tv/swf/tvplayer259.swf // dead
// http://tvplayer.playtv.fr/swf/tvplayer301.swf // dead
// http://tvplayer.playtv.fr/swf/tvplayer302.swf
Aak.player.custom(container, {
src : 'http://tvplayer.playtv.fr/swf/tvplayer302.swf',
id : channel.tvplayer_id,
name : channel.tvplayer_id,
width : 610,
height : 384
}, {
set : {
controls : 1,
caching : true,
a : a,
b : b
}
});
/*
container.innerHTML = '<embed title="ree-' + channel.alias + '" width="610" height="384" id="' + channel.tvplayer_id + '" name="' + channel.tvplayer_id + '" type="application/x-shockwave-flash" src="http://tvplayer.playtv.fr/swf/tvplayer301.swf" flashvars="controls=1&background=1579032&volume_cookie=true&caching=true&a=' + a + '&b=' + b + '" allowfullscreen="true" allowscriptaccess="always" bgcolor="#000000"/>';
*/
}
});
}
}
},
rmcsportbfmtv_com : { // webradio
host : ['rmcsport.bfmtv.com'],
onLoad : 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"
};
unsafeWindow.swfobject.embedSWF("/swf/RMCLIVE.swf", "liveplayer", "70", "90", "10.0.0", "", flashvars, params);
}
},
eclypsia_com : {
host : ['eclypsia.com'],
onLoad : function () {
//http://www.dailymotion.com/swf/video/x1tayy1
var element = document.querySelector('div[id^="webtv_iframe_"]');
if (element != null) {
var videoId = element.id.split('_')[2];
setTimeout(function () {
element.innerHTML = '<iframe frameborder="0" width="812" height="500" src="http://www.dailymotion.com/embed/video/' + videoId + '?logo=0&autoPlay=1&autoMute=0"></iframe>';
}, 1000);
}
}
},
gamingroom_tv : {
host : ['gamingroom.tv'],
onStart : function () {
unsafeWindow.adblock_detect = function () {};
unsafeWindow.GR_adblock_hide_video = function () {};
unsafeWindow.adblock_video_msg_start = function () {};
unsafeWindow.adblock_video_msg_stop = function () {};
unsafeWindow.disable_chat = function () {};
},
onLoad : function () {
unsafeWindow.adblock_detect = function () {};
unsafeWindow.GR_adblock_hide_video = function () {};
unsafeWindow.adblock_video_msg_start = function () {};
unsafeWindow.adblock_video_msg_stop = function () {};
unsafeWindow.disable_chat = function () {};
}
},
// Germany
sat1_de : { //
host : ['sat1.de', 'sat1.ch'],
onStart : function () {
/*
setInterval(function () {
unsafeWindow.SIMAD.hideAds();
unsafeWindow.SIMAD_CONFIG=true;
},0);
*/
},
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
console.log(unsafeWindow);
*/
}
},
now_domains : { // http://tinyurl.com/ozqlcky
host : ['voxnow.de', 'rtl-now.rtl.de', 'rtl2now.rtl2.de', 'n-tvnow.de', 'superrtlnow.de', 'rtlnitronow.de'],
onLoad : function () {
//
Aak.player.custom('#videoplayer', null, {
remove : 'abcheck_enabled,adcall,adclasses,adconfig,admeta,adslog'
});
}
},
myspass_de : { // http://tinyurl.com/lto9pyd
host : ['myspass.de'],
onLoad : function () {
var videoid = location.pathname.match(/\/(\d+)\/$/);
if (videoid != null) {
GM_xmlhttpRequest({
method : "GET",
url : 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=' + videoid[1],
headers : {
'User-agent' : navigator.userAgent,
'Content-Type' : 'application/xml',
},
onload : function (result) {
var res = result.responseText;
//console.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.jwplayer5('player', {
autostart : true,
file : file
});
/*
// Replace player
Aak.player.flow('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.html5('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
});
*/
}
});
}
}
},
// Portugal
abola_pt : {
host : ['miragens.abola.pt'],
onEnd : function () {
// miragens.abola.pt/media.aspx?id=20390&op=2&p=1
// miragens.abola.pt/MiragensBO/uploads/20/39/0/20390.mp4
// Fix: 9.6.2014 (new player)
if ('/media.aspx' == location.pathname) {
var id = location.href.match(/media.aspx[?]id=([\d]+)/)[1];
var path = id.match(/.{1,2}/g).join('/');
var file = 'http://www.miragens.abola.pt/MiragensBO/uploads/' + path + '/' + id + '.mp4';
// Replace player
Aak.player.jwplayer5('player', {
autostart : true,
file : file
});
}
}
},
// Italy
rai_tv : {
host : ['rai.tv'],
onStart : function () {},
onLoad : function () {}
},
// TV Stream
ilive_to : {
host : ['ilive.to'],
onLoad : function () {
if (/^\/embedplayer.php/i.test(location.pathname)) {
// Skip timer
var close = setInterval(function () {
document.querySelector("#ad_overlay_close").click();
}, 1000);
setTimeout(function () {
clearInterval(close);
}, 5000);
}
}
},
sawlive_tv : {
host : ['sawlive.tv'],
onLoad : function () {
if (/^\/embed\/watch\//i.test(location.pathname)) {
// Skip timer and close ads
unsafeWindow.display = false;
unsafeWindow.closeMyAd();
}
}
},
sharecast_to : {
host : ['sharecast.to'],
onLoad : function () {
if (/^\/embed.php/i.test(location.pathname)) {
// Disable popunders
var interval = setInterval(function () {
Aak.setCookie('vid_main', true);
Aak.setCookie('vid_sub', true);
Aak.setCookie('vid_delay', true);
}, 100);
setTimeout(function () {
clearInterval(interval);
}, 5000);
// Remove transparent overlay
Aak.removeElement('#table1');
}
}
},
flowplayer : {
host : ['videofun.me', 'videobug.net', 'video44.net', 'play44.net', 'byzoo.org'],
onLoad : function () {
// + abp rule for hide antiadblock message
// http://tinyurl.com/psfq56y
if (/^\/embed/.test(location.pathname)) {
setTimeout(function () {
Aak.allowfullscreen("#flowplayer_api", true);
}, 1000);
}
}
},
str3amtv_domains : { // remove ads + popupwindow
host : ['str3amtv.com','futstr3am.2fh.co'],
onLoad : function () {
Aak.removeElement('div[id^="floatLayer"]');
var anchors = document.querySelectorAll('a[onclick^="window.open"]');
for (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;
//console.log(link);
anchors[i].onclick = null;
anchors[i].href = link;
anchors[i].target = '_self';
}
}
},
// --------------------------------------------------------------------------------------------
// Firefox
// --------------------------------------------------------------------------------------------
yellowbridge_com : {
host : ['yellowbridge.com'],
onStart : function () {
unsafeWindow.finalizePage = function () {
return;
};
},
onLoad : function () {
unsafeWindow.finalizePage = function () {
return;
};
},
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), 'finalizePage()')) {
Aak.stopScript(e);
}
}
},
gamespowerita_com : {
host : ['gamespowerita.com'],
onScript : 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 !important; }");
},
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), 'location.href = \'http://tvdesporto.com/chorar.php\';')) {
Aak.stopScript(e);
}
}
},
zeb89_org : {
host : ['zeb89.altervista.org'],
// greasemonkey/addons4.js
onScript : function (e) {
if (Aak.contains(Aak.innerScript(e), 'typeof GM_addonsStartup !== "undefined"')) {
Aak.stopScript(e);
}
}
},
// --------------------------------------------------------------------------------------------
// Generic
// --------------------------------------------------------------------------------------------
generic : {
host : ['.*?'],
//onRemove : function (removedNode) {console.log(removedNode);},
//onSubtreeModified : function (e) {console.log(e.target);},
onStart : function () {
// do nothing
},
onLoad : function () {
/* Alternative solution
// AntiAdblock (Packer) only Zdxd
if (typeof unsafeWindow.k == 'function' &&
typeof unsafeWindow.h == 'function' &&
typeof unsafeWindow.ShowAdbblock == 'function' &&
Aak.contains(unsafeWindow.ShowAdbblock.toString(), 'warningMessage.innerHTML=text_detected()')) {
// Disable
unsafeWindow.ShowAdbblock = function () {return;};
unsafeWindow.k = function () {return;};
unsafeWindow.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
//unsafeWindow.audio_file = false;
// AdBlock Alerter (WP)
if (Aak.getElement('div.adb_overlay') &&
Aak.getElement('div.adb_modal') &&
Aak.getElement('p.adb_detected')) {
// Remove Alert + Allow Scroll
Aak.removeElement('div.adb_overlay');
Aak.addStyle('html,body {height:auto !important; overflow: scroll !important;}');
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');
}
// Antiblock - http://antiblock.org/
localStorage.antiblockId = false;
var styles = document.querySelectorAll('style');
for (var i in styles) {
var style = styles[i];
//console.log(style);
if (typeof style == "object") {
var css = style.innerHTML.replace(/[\n\r\t\s]+/g, "");
var matches = css.match(/#([0-9a-z]{4,10})\{.*position:fixed\!important;.+document\.documentElement.scrollTop\?document\.documentElement\.scrollTop:document\.body\.scrollTop.+\}#/i);
if (matches != null && matches.length == 2) {
//console.log(matches);
localStorage.antiblockId = matches[1];
}
}
}
// Anti-Adblockers
var systems = {
// Plugins WordPress
'NoAdblock' : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.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',
'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 (key in systems) {
if (new RegExp(systems[key], 'i').test(script.src)) {
//console.log(key, location.host, script.src);
Aak.autoReport(key, location.host, script.src);
break;
}
}
}
}
},
onInsert : function (insertedNode) {
// All Nodes
//console.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);
//console.log(insertedNode);
}
// AntiAdblock (Packer)
var reIframeId = /^(zd|wd)$/;
var reImgId = /^(xd|gd)$/;
var reImgSrc = /\/ads\/banner.jpg/;
var reIframeSrc = /(\/adhandler\/|\/adimages\/)/;
// 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
//console.log(insertedNode);
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 unsafeWindow.vtfab != 'undefined' &&
typeof unsafeWindow.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)
// <div id="lfyhsvdq" class="tvwnoqdf svonexrk" style="top: 100px; opacity: 1; visibility: visible;">
// <div class="tvwnoqdf-bg" style="display: block;"></div>
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)
// <div id="vixmgrly">
// <div id="mfnhaiyx" class="lkrnvbyt">
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 = /disable|désactivez|désactiver|desactivez|desactiver|desative|desactivar|desactive|desactiva|deaktiviere|disabilitare|απενεργοποίηση|запрещать|állítsd le/i;
// Communs
if (insertedNode.parentNode &&
insertedNode.parentNode.nodeName == 'BODY' &&
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)) {
//console.log(insertedNode);
// Antiblock.org v3 + Fork
if (insertedNode.firstChild.firstChild &&
insertedNode.firstChild.firstChild.nodeName == "IMG" &&
typeof unsafeWindow[insertedNode.id] == 'object' &&
typeof unsafeWindow[insertedNode.id].displayMessage == 'function') {
// Better Stop Adblock
// Demo: http://codeclan.altervista.org/
if (typeof unsafeWindow[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
//console.log(node);
}
}
Aak.autoReport('BetterStopAdblock');
}
// Antiblock.org v3
else {
Aak.autoReport('Antiblock3');
}
// Disable
//console.log(insertedNode, unsafeWindow[insertedNode.id]);
Aak.removeElement(insertedNode);
unsafeWindow[insertedNode.id] = false;
}
// Antiblock.org v3 + v2 (Alternative Solution)
else if (localStorage.antiblockId != false &&
insertedNode.id == localStorage.antiblockId) {
// V3
if (typeof unsafeWindow[insertedNode.id] == 'object') {
unsafeWindow[insertedNode.id] = false;
Aak.autoReport("Antiblock3");
} else { // V2
Aak.autoReport("Antiblock2");
}
// Disable
//console.log(insertedNode);
Aak.removeElement(insertedNode);
}
// Antiblock.org v2
else if (reWords1.test(insertedNode.innerHTML) &&
reWords2.test(insertedNode.innerHTML)) {
// Disable
//console.log(insertedNode);
Aak.autoReport("Antiblock2");
Aak.removeElement(insertedNode);
}
// Many false positive
else {
//Aak.removeElement(insertedNode);
}
}
}
}
}
};
/*=====================================================
Start
======================================================*/
// Initialize
Aak.init();