2017-05-24 06:14:33 +02:00
// ==UserScript==
// @name AAK-Cont Userscript
// @namespace https://userscripts.org/scripts/show/155840
// @description Helps you keep your Ad-Blocker active, when you visit a website and it asks you to disable.
2017-05-25 00:11:15 +02:00
// @author Originally by Reek, revived by jspenguin2017
2017-05-27 06:01:52 +02:00
// @version 1.005
2017-05-24 06:14:33 +02:00
// @encoding utf-8
// @license https://creativecommons.org/licenses/by-sa/4.0/
// @icon https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/images/icon.png
// @homepage https://xuhaiyang1234.gitlab.io/AAK-Cont/
// @supportURL https://gitlab.com/xuhaiyang1234/AAK-Cont/issues
2017-05-26 16:53:29 +02:00
// @updateURL https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/source/aak-cont-script.user.js
// @downloadURL https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/source/aak-cont-script.user.js
2017-05-24 06:14:33 +02:00
// @include http://*/*
// @include https://*/*
// @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
// @connect *
// ==/UserScript==
/*jshint evil:true newcap:false*/
/*global unsafeWindow, GM_addStyle, GM_getValue, GM_setValue, GM_xmlhttpRequest, GM_registerMenuCommand, GM_deleteValue, GM_listValues, GM_getResourceText, GM_getResourceURL, GM_log, GM_openInTab, GM_setClipboard, GM_info, GM_getMetadata, $, document, console, location, setInterval, setTimeout, clearInterval*/
/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
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 , S . Blystone , M . Silveira , K . MacArthur , M . Ivanov , A . Schmidt , A . Waage , F . Tismer , S . Ehnert , J . Corpus , J . Dluhos , Maklemenz , Strobelix , Modellpilot . EU , E . Benedetti , V . Venditti , Shakos , A . Eliason , A . Saloranta , S . Geiger , A . Otterloo , M . Coppen , S . Fischer , H . Becker , D . Ackerman , S . Pitsch , K . Pertcheck , S . Abel , K . O ' Connor , B . Obrien , S . Vogler , S . Goebl , A . Biar , S . Scott , Bassmobile . org , S . Große , M . Peot , R . Chan Balam , L . Bond - Kennedy , R . Emond , A . Pavlov , W . Tracey , A . Sergey , R . López López , R . Reddy Kasireddy , A . Moujeer , M . Betz , M . Lefèvre , R . McCurdy , LR Geeks , M . Beauregard , CasperTech Ltd , M . Dudas , S . Scharf , S . Prokhorov , K . Papalias , J . Wojnowski , B . Curtis , D . Lawrence , D . He , N . Kelsall , Idogewallet , J . Spaulding , S . Lafon , Mat , H . Roberts , C . Hedlund , J . Hawkins , J . Andersen , M . Bjorksten , B . Wolfe III , T . Yocom , Š . Intas , S . Moenich , J . Chang , C . Munk , A . Naruta , Б . Михаил , J . Benz , F . Sloot , J . Creed , M . Gillam , C . Leicht , A . Gnana , S . Sundaram , A . Koller , M . Kotlar , S . Abel , T . Flanagan , M . Arduini , P . Stackhouse , B . Oliver , M . Johnson , R . Mannert , E . Siordia
Collaborators : InfinityCoding , Couchy , Dindog , Floxflob , U Bless , Watilin , @ prdonahue , Hoshie , 3 lf3nLi3d , Alexo , Crits , Noname120 , Crt32 , JixunMoe , Athorcis , Killerbadger , SMed79 , Alexander255 , Anonsubmitter , RaporLoLpro , Maynak00 , Robotex , Vinctux , Blahx , MajkiIT , F4z , Angelsl , Mikhaelk , Marek , Hamsterbacke , Gorhill , Hacker999 , xxcriticxx , Skr4tchGr3azyMonkiBallllllZzzz , Giwayume , MrSherlockHolmes , xDarkARG , Noahp78 , Mapx -
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/pbbdnh6
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
=== === === === === === === === === === === === === === === === === === * /
( function ( window ) {
2017-05-27 06:01:52 +02:00
"use strict" ;
var Aak = {
name : 'Anti-Adblock Killer Continued' ,
version : '1.005' ,
scriptid : 'gJWEp0vB' ,
homeURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
changelogURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
donateURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
featuresURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
reportURL : 'https://gitlab.com/xuhaiyang1234/AAK-Cont/issues' ,
contactURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
settingsURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/index.html#settings' ,
twitterURL : 'https://twitter.com/' ,
downloadURL : 'https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/source/aak-cont-script.user.js' ,
subscribeURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
listURL : "https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/source/aak-cont-filter-core.txt" ,
nativeURL : 'https://xuhaiyang1234.gitlab.io/AAK-Cont/' ,
iconURL : 'https://gitlab.com/xuhaiyang1234/AAK-Cont/raw/master/images/icon.png' ,
imgBait : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAGklEQVR42mNg0GAYBaNgFIyCUTAKRsEoQAYATN8AKYNZ/x4AAAAASUVORK5CYII=' ,
initialize : function ( ) {
Aak . registerSettings ( ) ; // registering your settings.
Aak . registerConsole ( ) ; // registering customzed console.
Aak . registerCommands ( ) ; // add commands to menu
//Aak.checkUpdate(true); // check if AakScript is up to date.
//Aak.checkList(); // check if AakList is enabled.
Aak . blockDetect ( ) ; // detect and kill anti-adblocks.
} ,
aabs : { } ,
opts : { } ,
options : {
autoPlay : {
group : 'general' ,
type : 'checkbox' ,
value : false ,
label : 'Play video automatically. *' ,
info : ''
} ,
videoHD : {
group : 'general' ,
type : 'checkbox' ,
value : false ,
label : 'Play video in HD quality. **' ,
info : ''
} ,
forceVLC : {
group : 'general' ,
type : 'checkbox' ,
value : false ,
label : 'Play video with VLC plugin. *' ,
info : ''
} ,
/ *
checkList : {
group : 'general' ,
type : 'checkbox' ,
value : true ,
label : 'Check AakList subscription.' ,
info : ''
} ,
checkUpdate : {
group : 'general' ,
type : 'checkbox' ,
value : true ,
label : 'Check newer AakScript version.' ,
info : ''
} , * /
debug : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Enable Logs.' ,
info : ''
} ,
logInsertedNodes : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log inserted nodes.' ,
info : ''
} ,
logRemovedNodes : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log removed nodes.' ,
info : ''
} ,
logExcluded : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log excludes domains.' ,
info : ''
} ,
logXhr : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log HTTP requests' ,
info : ''
} ,
logPlayer : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log player instances.' ,
info : ''
} ,
logInterceptedScripts : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log intercepted scripts.' ,
info : ''
} ,
logDetected : {
group : 'debug' ,
type : 'checkbox' ,
value : false ,
label : 'Log detected anti-adblocks.' ,
info : ''
}
} ,
registerSettings : function ( ) {
for ( var optName in Aak . options ) {
if ( Aak . options . hasOwnProperty ( optName ) )
Aak . opts [ optName ] = Aak . getValue ( optName ) !== null ? Aak . getValue ( optName ) : Aak . options [ optName ] . value ;
}
} ,
commands : [ {
caption : 'Homepage' ,
execute : function ( ) {
Aak . go ( Aak . homeURL ) ;
}
} , {
caption : 'Settings' ,
execute : function ( ) {
Aak . go ( Aak . settingsURL ) ;
}
} / * , {
2017-05-24 06:14:33 +02:00
caption : 'Update' ,
execute : function ( ) {
Aak . checkUpdate ( ) ;
}
2017-05-25 00:21:55 +02:00
} * /
2017-05-27 06:01:52 +02:00
] ,
addCommands : function ( cmd ) {
if ( Aak . useGM && Aak . isTopframe && typeof GM _registerMenuCommand != 'undefined' ) {
GM _registerMenuCommand ( [ Aak . name , Aak . getVersion ( ) , cmd . caption ] . join ( ' ' ) , cmd . execute ) ;
}
} ,
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
Aak . commands . forEach ( function ( cmd ) {
Aak . addCommands ( cmd ) ;
} ) ;
} ) ;
} ,
registerConsole : function ( ) {
this . log = Aak . opts . debug ? console . log . bind ( console ) : function ( ) { } ;
this . info = Aak . opts . debug ? console . info . bind ( console ) : function ( ) { } ;
this . error = Aak . opts . debug ? console . error . bind ( console ) : function ( ) { } ;
this . warn = Aak . opts . debug ? console . warn . bind ( console ) : function ( ) { } ;
} ,
isTopframe : ( window . parent == window . self ) ,
uw : typeof unsafeWindow != 'undefined' ? unsafeWindow : window ,
useGM : typeof GM _getValue != 'undefined' ,
apiGM : function ( ) {
if ( Aak . isTopframe ) {
// 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'
} ;
}
} ,
go : function ( url ) {
window . location . href = url ;
} ,
refresh : function ( ) {
window . location . href = window . location . href ;
} ,
reload : function ( ) {
window . location . reload ( true ) ;
} ,
contains : function ( string , search ) {
return string . indexOf ( search ) != - 1 ;
} ,
getBrowser : function ( ) {
var ua = window . navigator . userAgent ;
if ( Aak . contains ( ua , 'Firefox' ) ) {
return "Firefox" ;
} else if ( Aak . contains ( ua , 'Sleipnir' ) ) {
return "Sleipnir" ; // Mobile
} else if ( Aak . contains ( ua , 'UCBrowser' ) ) {
return "UCBrowser" ; // Mobile
} else if ( Aak . contains ( ua , 'Dolfin' ) ) {
return "Dolphin" ; // Mobile
} else if ( Aak . contains ( ua , 'MSIE' ) ) {
return "InternetExplorer" ;
} else if ( Aak . contains ( ua , 'Midori' ) ) {
return "Midori" ;
} else if ( Aak . contains ( ua , 'Opera' ) || Aak . contains ( ua , 'OPR' ) ) {
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 'Native' ;
}
}
} ,
generateID : function ( len ) {
var str = '' ;
var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
for ( var i = 0 ; i < ( len ? len : 10 ) ; ++ 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 = 'uuid' ;
if ( Aak . getValue ( name ) === null ) {
Aak . setValue ( name , Aak . generateUUID ( ) ) ;
}
return Aak . getValue ( name ) ;
} ,
schedule : function ( days , name , callback ) {
window . 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 + ( days * 24 * 60 * 60 * 1000 ) ) . toString ( ) ) ;
callback ( ) ;
}
} , 1e3 ) ;
} ,
notification : function ( message , delay ) {
return ;
/ *
2017-05-24 06:14:33 +02:00
if ( Aak . isTopframe ) {
// remove old notification
Aak . removeElement ( '#aak-notice-frame' ) ;
// add new notification
Aak . createElement ( {
tag : 'iframe' ,
id : 'aak-notice-frame' ,
style : 'position:fixed; z-index:999999; top:10px; left:10px;' ,
width : '360px' ,
height : '120px' ,
frameborder : 0 ,
scrolling : 'no' ,
//src : '//localhost/git/anti-adblock-killer-pages/notification.html#' + btoa(message),
src : '//example.com/anti-adblock-killer/notification.html#' + window . btoa ( message ) ,
append : 'body' ,
callback : function ( self ) {
// manually remove
Aak . onEvent ( window , "message" , function ( event ) {
if ( event . data == "removeNotification" ) {
self . remove ( ) ;
}
} , false ) ;
// automatically remove
window . setTimeout ( function ( ) {
self . remove ( ) ;
} , delay || 3e4 ) ;
}
} ) ;
2017-05-25 23:07:13 +02:00
} * /
2017-05-27 06:01:52 +02:00
} ,
checkList : function ( ) {
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
return ;
/ *
if ( Aak . useGM && Aak . opts . checkList && Aak . isTopframe ) {
Aak . schedule ( 1 , 'nextchecklist' , function ( ) {
Aak . ready ( function ( ) {
Aak . createElement ( {
tag : 'script' ,
src : window . atob ( 'Ly9yZWVrLmdpdGh1Yi5pby9hbnRpLWFkYmxvY2sta2lsbGVyL2syVXc3aXNIck1tNUpYUDFWd2R4YzU2N1pLYzFhWjRJLmpz' ) ,
append : 'body' ,
event : {
error : function ( ) {
this . remove ( ) ;
Aak . info ( 'AakList detected !' ) ;
} ,
load : function ( ) {
this . remove ( ) ;
Aak . warn ( 'AakList not detected !' ) ;
Aak . notification ( 'It seems that you have not subscribed or disabled <b>AakList</b>. <a href="' + Aak . subscribeURL + '" target="_blank">Subscribe</a> or <a href="' + Aak . settingsURL + '" target="_blank">Disable this alert</a>' ) ;
}
}
} ) ;
} ) ;
2017-05-24 06:14:33 +02:00
} ) ;
2017-05-27 06:01:52 +02:00
} * /
} ,
checkUpdate : function ( auto ) {
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
return ;
/ *
var check = function ( notifyFalse ) {
Aak . request ( {
url : Aak . downloadURL ,
onload : function ( response ) {
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 ) {
Aak . notification ( 'Anti-Adblock Killer v' + remote + ' is available <a target="_blank" href="' + Aak . downloadURL + '">Install</a>.' ) ;
} else if ( notifyFalse ) {
Aak . notification ( 'No update found.' ) ;
}
}
}
} ) ;
} ;
if ( auto ) { // auto mode
if ( Aak . useGM && Aak . opts . checkUpdate && Aak . isTopframe ) {
Aak . ready ( function ( ) {
Aak . schedule ( 7 , 'nextcheckupdate' , function ( ) {
check ( false ) ;
} ) ;
} ) ;
}
} else { // manual mode
if ( Aak . isTopframe ) {
check ( true ) ;
}
} * /
} ,
openInTab : function ( url ) {
if ( typeof GM _openInTab != 'undefined' ) {
GM _openInTab ( url ) ;
2017-05-24 06:14:33 +02:00
} else {
2017-05-27 06:01:52 +02:00
var newWindow = window . open ( url , "_blank" ) ;
newWindow . focus ( ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
request : function ( settings ) {
settings . url = settings . url || '' ;
settings . method = settings . method || 'GET' ;
settings . headers = settings . headers || { } ;
settings . timeout = settings . timeout || 2e4 ; // 20s
if ( settings . data || settings . method == 'POST' ) {
settings . method = 'POST' ;
settings . data = Aak . serialize ( settings . data || { } ) ;
settings . headers = Aak . setProperties ( settings . headers , {
'X-Requested-With' : 'XMLHttpRequest' ,
'Content-Type' : 'application/x-www-form-urlencoded'
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
// override to integrate log
settings . _onload = settings . onload ;
settings . onload = function ( xhr ) {
if ( Aak . opts . logXhr ) {
Aak . log ( Aak . getScriptManager ( ) + ' xhr' , xhr ) ;
}
settings . _onload ( xhr ) ;
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
if ( true || typeof GM _xmlhttpRequest != 'undefined' ) {
// Request with GM API
// doc: http://tinyurl.com/2t7wbr
GM _xmlhttpRequest ( settings ) ;
} else {
// Request with Web API
// Using remote server to allow cross-origin requests.
// doc: http://tinyurl.com/odz664a
// doc: http://tinyurl.com/p9zruzn
/ *
var xhr = new window . XMLHttpRequest ( ) ;
xhr . open ( 'POST' , 'http://example.com/public/xhr.php' , true ) ;
xhr . setRequestHeader ( 'Content-type' , 'application/x-www-form-urlencoded' ) ;
xhr . onload = function ( ) {
var res = xhr . responseText ;
var json = JSON && JSON . parse ( res ) ;
Object . defineProperty ( xhr , "responseText" , {
enumerable : true ,
configurable : true ,
writable : true ,
value : json . response
} ) ;
settings . onload ( xhr ) ;
} ;
xhr . send ( Aak . serialize ( settings ) ) ; * /
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
deleteValue : function ( name ) {
if ( typeof GM _deleteValue !== "undefined" && ! name ) {
var vals = GM _listValues ( ) ;
for ( var i in vals ) {
if ( vals . hasOwnProperty ( i ) )
GM _deleteValue ( vals [ i ] ) ;
}
} else if ( typeof GM _deleteValue !== "undefined" ) {
GM _deleteValue ( name ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
setValue : function ( name , value ) {
if ( typeof GM _setValue !== "undefined" ) {
GM _setValue ( name , value ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
getValue : function ( name ) {
if ( typeof GM _listValues !== "undefined" && ! name ) {
var list = { } ;
var vals = GM _listValues ( ) ;
for ( var i in vals ) {
if ( vals . hasOwnProperty ( i ) )
list [ vals [ i ] ] = GM _getValue ( vals [ i ] ) ;
}
return list ;
} else if ( typeof GM _getValue !== "undefined" && typeof GM _getValue ( name ) !== "undefined" ) {
return GM _getValue ( name ) ;
} else {
return null ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
setLocal : function ( name , value ) {
try {
// SecurityError: The operation is insecure.
// doc: http://tinyurl.com/8peqwvd
if ( typeof window . localStorage !== "undefined" ) {
window . localStorage . setItem ( name , value . toString ( ) ) ;
} else {
Aak . warn ( "Sorry! No Web Storage support." ) ;
}
} catch ( e ) { }
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
getLocal : function ( name ) {
try {
if ( typeof window . localStorage !== "undefined" ) {
return window . localStorage . getItem ( name ) ;
} else {
Aak . warn ( "Sorry! No Web Storage support." ) ;
return null ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} catch ( e ) {
return null ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
setSession : function ( name , value ) {
try {
// Doc: http://tinyurl.com/8peqwvd
if ( typeof window . sessionStorage !== "undefined" ) {
window . sessionStorage . setItem ( name , value . toString ( ) ) ;
} else {
Aak . warn ( "Sorry! No Web Storage support." ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} catch ( e ) { }
} ,
getSession : function ( name ) {
try {
if ( typeof window . sessionStorage !== "undefined" ) {
return window . sessionStorage . getItem ( name ) ;
} else {
Aak . warn ( "Sorry! No Web Storage support." ) ;
return null ;
}
} catch ( e ) {
return null ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
setCookie : function ( name , value , time , path ) {
var expires = new Date ( ) ;
expires . setTime ( new Date ( ) . getTime ( ) + ( time || 365 * 24 * 60 * 60 * 1000 ) ) ;
document . cookie = name + "=" + encodeURIComponent ( value ) + ";expires=" + expires . toGMTString ( ) + ";path=" + ( path || '/' ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
getCookie : function ( name ) {
var value = "; " + document . cookie ;
var parts = value . split ( "; " + name + "=" ) ;
if ( parts . length == 2 )
return parts . pop ( ) . split ( ";" ) . shift ( ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
setReadOnly : function ( name , value ) {
Object . defineProperty ( Aak . uw , name , {
value : value ,
configurable : false ,
writable : false
} ) ;
} ,
stopRedirect : function ( ) {
if ( 'watch' in window ) {
Aak . uw . watch ( "location" , function ( ) { } ) ;
Aak . uw . location . watch ( "href" , function ( ) { } ) ;
} else {
Aak . uw . location = "#" ;
throw 'Stop Redirect' ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
confirmLeave : function ( ) {
window . onbeforeunload = function ( ) {
return '' ;
2017-05-24 06:14:33 +02:00
} ;
2017-05-27 06:01:52 +02:00
} ,
confirmReport : function ( elem ) {
elem . innerHTML = 'Report' ;
elem . title = 'Report issue or anti-adblock' ;
elem . onclick = function ( e ) {
e . preventDefault ( ) ;
if ( window . confirm ( "Do you want to report issue or anti-adblock ?" ) ) { // Clic on OK
Aak . go ( Aak . reportURL ) ;
} else {
Aak . go ( elem . href ) ;
2017-05-24 06:14:33 +02:00
}
} ;
} ,
2017-05-27 06:01:52 +02:00
unpackScript : function ( source ) {
// deobfuscate: pac+ked, pac+ker, mun+ged, wi+se
// note: "Exception 403008" see greasefork PM
var substring = source . substring ( source . indexOf ( 'eval(' ) + 4 , source . lastIndexOf ( ')' ) + 1 ) ;
return new Function ( 'return ' + substring ) ( ) ;
} ,
hasScript : function ( contains , doc ) {
// by: Watilin
return Array . prototype . filter . call (
doc && doc . scripts || document . scripts ,
function ( $script ) {
var source = $script . innerHTML ;
return source && source . indexOf ( contains ) != - 1 ;
} ) [ 0 ] ;
} ,
addScript : function ( source , body ) {
var script = document . createElement ( 'script' ) ;
script . type = "text/javascript" ;
script . innerHTML = ( typeof source === 'function' ) ? Aak . intoString ( source ) : source . toString ( ) ;
if ( body ) {
document . body . appendChild ( script ) ;
} else {
document . head . appendChild ( script ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
script . remove ( ) ;
} ,
loadScript : function ( src , body , onload ) {
var script = document . createElement ( 'script' ) ;
script . type = "text/javascript" ;
script . src = src ;
if ( onload ) {
script . onload = onload ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
if ( body ) {
document . body . appendChild ( script ) ;
} else {
document . head . appendChild ( script ) ;
}
} ,
importScript : function ( url , callback ) {
Aak . request ( {
url : url ,
onload : function ( result ) {
var rawScript = result . responseText ;
( new Function ( 'Aak' , rawScript + '\n\r' + Aak . intoString ( callback ) ) ) ( Aak ) ;
}
} ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
intoString : function ( a ) {
if ( typeof a === 'function' ) {
var str = a . toString ( ) ;
var first = str . indexOf ( "{" ) + 1 ;
var last = str . lastIndexOf ( "}" ) ;
return str . substr ( first , last - first ) . trim ( ) ;
} else if ( typeof entry === 'object' ) {
return JSON . stringify ( a ) ;
} else { // array or string
return a . toString ( ) ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
intoArray : function ( a ) {
if ( typeof a === 'object' ) {
return Object . keys ( a ) . map ( function ( key ) {
return a [ key ] ;
} ) ;
} else if ( typeof a === 'string' ) {
return JSON . parse ( a ) ;
} else if ( Array . isArray ( a ) ) {
return a ;
}
} ,
intoObject : function ( a ) {
if ( typeof a === 'string' ) {
return JSON . parse ( a ) ;
} else if ( Array . isArray ( a ) ) {
for ( var i = 0 , o = { } ; i < a . length ; ++ i ) {
o [ i ] = a [ i ] ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
return o ;
} else if ( typeof a === 'object' ) {
return a ;
}
} ,
hasElement : function ( selector , callback , timeout ) {
var repeat = timeout || 10 ;
var loop = setInterval ( function ( ) {
var elem = Aak . getElement ( selector ) ;
if ( elem ) {
callback ( elem ) ;
clearInterval ( loop ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
repeat = ( repeat ) ? repeat - 1 : clearInterval ( loop ) ;
} , 1e3 ) ;
} ,
removeElement : function ( elem ) {
if ( elem instanceof window . HTMLElement ) {
elem . remove ( ) ;
} else if ( typeof elem === "string" ) {
elem = document . querySelectorAll ( elem ) ;
for ( var i = 0 ; i < elem . length ; i ++ ) {
elem [ i ] . remove ( ) ;
2017-05-24 06:14:33 +02:00
}
}
2017-05-27 06:01:52 +02:00
} ,
getElement : function ( selector , contextNode ) {
if ( typeof selector === 'string' ) {
if ( selector . indexOf ( '/' ) === 0 ) { // ex: //img[@class="photo"]
return document . evaluate ( selector , contextNode || document , null , window . XPathResult . FIRST _ORDERED _NODE _TYPE , null ) . singleNodeValue ;
}
return ( contextNode || document ) . querySelector ( selector ) ;
} else if ( selector instanceof window . HTMLElement ) {
return selector ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
createElement : function ( props ) {
var elem ,
node = { } ;
for ( var name in props ) {
if ( props . hasOwnProperty ( name ) ) {
switch ( name ) {
case "tag" :
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 "classid" :
node . className = props [ name ] ;
break ;
case "append" :
elem = Aak . getElement ( props [ name ] ) ;
elem . appendChild ( node ) ;
break ;
case "prepend" :
elem = Aak . getElement ( props [ name ] ) ;
if ( elem . childNodes . length ) {
elem . insertBefore ( node , elem . childNodes [ 0 ] ) ;
} else {
elem . appendChild ( node ) ;
}
break ;
case "before" :
elem = Aak . getElement ( props [ name ] ) ;
elem . parentNode . insertBefore ( node , elem ) ;
break ;
case "after" :
elem = Aak . getElement ( props [ name ] ) ;
elem . parentNode . insertBefore ( node , elem . nextSibling ) ;
break ;
case "replace" :
elem = Aak . getElement ( props [ name ] ) ;
elem . parentNode . replaceChild ( node , elem ) ;
break ;
case "event" :
for ( var evName in props . event ) {
if ( props . event . hasOwnProperty ( evName ) )
node . addEventListener ( evName , props . event [ evName ] ) ;
}
break ;
case "callback" :
props [ name ] ( node ) ;
break ;
default :
node . setAttribute ( name , props [ name ] ) ;
}
}
}
return node ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
addBaitElement : function ( strOpts ) { // ex: div.ads or span#ads@
var opts = strOpts . replace ( '.' , ':className:' ) . replace ( '#' , ':id:' ) . split ( ':' ) ;
var bait = document . createElement ( opts [ 0 ] ) ;
bait . setAttribute ( opts [ 1 ] , opts [ 2 ] ) ;
bait . innerHTML = "<br>" ;
document . documentElement . appendChild ( bait ) ;
return bait ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
replaceElement : function ( oldNode , newNode ) {
oldNode . parentNode . replaceChild ( newNode , oldNode ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
setElement : function ( selector , props ) {
var node = Aak . getElement ( selector ) ;
if ( node ) {
for ( var name in props ) {
if ( props . hasOwnProperty ( name ) ) {
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 . setAttribute ( name , props [ name ] ) ;
}
}
}
}
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
addStyle : function ( css ) {
css = css . replace ( /;/g , ' !important;' ) ;
if ( typeof GM _addStyle != 'undefined' ) {
GM _addStyle ( css ) ;
} else {
document . head . appendChild ( document . createElement ( 'style' ) ) . innerHTML = css ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
loadStyle : function ( src ) {
var style = document . createElement ( 'link' ) ;
style . rel = "stylesheet" ;
style . href = src ;
document . head . appendChild ( style ) ;
} ,
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 ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
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 , '"' ) ;
} ,
serialize : function ( obj ) {
if ( typeof obj == 'object' ) {
var arr = [ ] ;
for ( var prop in obj ) {
if ( obj . hasOwnProperty ( prop ) )
arr . push ( prop + '=' + Aak . encodeURI ( obj [ prop ] ) ) ;
}
return arr . join ( '&' ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
return obj ;
} ,
unserialize : function ( str ) {
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 ] ) ;
}
2017-05-24 06:14:33 +02:00
} ) ;
2017-05-27 06:01:52 +02:00
return obj ;
} ,
unsetProperties : function ( obj , props ) {
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 ] ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
}
return obj ;
} ,
setProperties : function ( obj1 , obj2 ) {
for ( var prop in obj2 ) {
if ( obj2 . hasOwnProperty ( prop ) )
obj1 [ prop ] = obj2 [ prop ] ;
}
return obj1 ;
} ,
fixProtocolURL : function ( url ) {
if ( /^http/ . test ( url ) ) { // absolute
return url ;
} else if ( /^\/\// . test ( url ) ) { // relative
return 'http:' + url ;
} else { // none
return 'http://' + url ;
}
} ,
fakeFuckAdBlock : function ( instanceName , className ) {
//This implementation has 2 flaws:
//1. The property can be redefined (no configurable: false)
//2. This can crash some scripts making the whole page break
// inject fake fuckadbluck
Aak . addScript ( Aak . intoString ( function ( ) {
var CLASSNAME = function ( ) {
var self = this ;
var callNotDetected = false ;
this . debug = {
set : function ( ) {
return self ;
} ,
get : function ( ) {
return false ;
}
} ;
this . onDetected = function ( callback ) {
this . on ( true , callback ) ;
return this ;
} ;
this . onNotDetected = function ( callback ) {
this . on ( false , callback ) ;
return this ;
} ;
this . on = function ( detected , callback ) {
if ( ! detected ) {
callNotDetected = callback ;
setTimeout ( callback , 1 ) ;
}
console . info ( [ 'AntiAdbKiller' , location . host , 'FuckAdBlock' ] ) ;
return this ;
} ;
this . setOption = function ( ) {
return this ;
} ;
this . options = {
set : function ( ) {
return this ;
} ,
get : function ( ) {
return this ;
}
} ;
this . check = function ( ) {
if ( callNotDetected )
callNotDetected ( ) ;
} ;
this . emitEvent = function ( ) {
return this ;
} ;
this . clearEvent = function ( ) { } ;
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
Object . defineProperties ( window , {
CLASSNAME : {
value : CLASSNAME ,
writable : false
}
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
Object . defineProperties ( window , {
INSTANCENAME : {
value : new CLASSNAME ( ) ,
writable : false
}
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
} ) . replace ( /INSTANCENAME/g , instanceName || 'fuckAdBlock' ) . replace ( /CLASSNAME/g , className || 'FuckAdBlock' ) ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
} , // Events
onEvent : function ( element , type , listener , bubbles ) {
if ( window . addEventListener ) { // For all major browsers, except IE 8 and earlier
( element || window ) . addEventListener ( type , listener , bubbles || false ) ;
} else { // For IE 8 and earlier versions
( element || window ) . attachEvent ( 'on' + type , listener ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
return arguments ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
offEvent : function ( element , type , listener , bubbles ) {
if ( window . removeEventListener ) { // For all major browsers, except IE 8 and earlier
( element || window ) . removeEventListener ( type , listener , bubbles || false ) ;
} else { // For IE 8 and earlier versions
( element || window ) . detachEvent ( 'on' + type , listener ) ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
emitEvent : function ( element , type , detail , bubbles , cancelable ) {
var event ;
if ( window . CustomEvent ) {
event = new window . CustomEvent ( type , {
"detail" : detail || undefined
} , bubbles || false , cancelable || false ) ;
} else {
event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'on' + type , bubbles || false , cancelable || false , {
"detail" : detail || undefined
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
( element || window ) . dispatchEvent ( event ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
detected : function ( name ) {
if ( Aak . opts . debug && Aak . opts . logDetected ) {
Aak . emitEvent ( window , 'detected' , name ) ;
2017-05-24 06:14:33 +02:00
}
} ,
2017-05-27 06:01:52 +02:00
ready : function ( callback ) {
Aak . onEvent ( window , 'load' , callback ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
player : function ( ) {
var Player = function ( ) {
this . target = { } ;
this . player = { } ;
this . name = null ;
this . version = null ;
this . library = null ;
this . fallback = 'vlc' ;
this . autoplay = Aak . opts . autoPlay ;
this . args = null ;
this . setup = { } ;
this . options = {
build : 'embed' ,
insert : 'replace' ,
crossSetup : true
} ;
this . attributes = { // flash
wmode : 'opaque' ,
quality : 'high' ,
bgcolor : '#000000' ,
type : 'application/x-shockwave-flash' ,
pluginspage : 'http://www.adobe.com/go/getflash' ,
allowscriptaccess : 'always' , // never / always
allowfullscreen : true
} ;
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
Player . prototype = { // http://tinyurl.com/pb6fthj
getTargetNode : function ( element ) {
this . target . node = Aak . getElement ( element ) ;
this . target . html = this . target . node . outerHTML ;
this . target . parent = this . target . node . parentNode ;
this . target . tag = this . target . node . tagName ;
this . attributes . id = this . attributes . name = Aak . generateID ( ) ;
this . attributes . height = this . target . node . height || this . target . node . clientHeight || '480px' ;
this . attributes . width = this . target . node . width || this . target . node . clientWidth || '640px' ;
} ,
getMimeType : function ( type ) {
// doc: http://tinyurl.com/jrs8fgz
switch ( type . toLowerCase ( ) ) {
case 'mp4' :
return 'video/mp4' ;
case 'webm' :
return 'video/webm' ;
case 'ogg' :
case 'ogv' :
return 'video/ogg' ;
case 'flv' :
return 'video/x-flv' ;
case 'hls' :
return 'application/x-mpegURL' ;
case 'hds' :
return 'application/f4m+xml' ;
default :
return type ;
}
} ,
building : function ( tagName ) {
var self = this ;
if ( Aak . opts . forceVLC && this . name !== 'vlc' ) {
Aak . info ( 'force playing with VLC' ) ;
return this . vlc . apply ( this , this . args ) ;
}
switch ( tagName ) {
case 'iframe' :
this . player . node = document . createElement ( 'iframe' ) ;
this . player . node . setAttribute ( 'src' , this . attributes . src || location . protocol + '//' + location . host + '/' ) ;
if ( this . attributes . srcdoc ) {
if ( this . player . node . hasAttribute ( "srcdoc" ) || 'srcdoc' in this . player . node ) {
this . player . node . setAttribute ( 'srcdoc' , this . attributes . srcdoc ) ;
} else {
// does not work correctly with flowplayer
this . player . node . setAttribute ( 'src' , "data:text/html;charset=utf-8," + encodeURIComponent ( this . attributes . srcdoc ) ) ;
}
}
this . player . node . setAttribute ( 'width' , this . setup . width ) ;
this . player . node . setAttribute ( 'height' , this . setup . height ) ;
this . player . node . setAttribute ( 'style' , 'height:' + this . setup . height + 'px; width:' + this . setup . width + 'px;' ) ;
this . player . node . setAttribute ( 'frameborder' , 0 ) ;
this . player . node . setAttribute ( 'scrolling' , 'no' ) ;
this . player . node . setAttribute ( 'allowfullscreen' , true ) ; // http://tinyurl.com/oyyehab
// allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen
break ;
case 'video' :
var attrName ;
this . player . node = document . createElement ( 'video' ) ;
for ( attrName in this . attributes ) {
if ( this . attributes . hasOwnProperty ( attrName ) )
this . player . node . setAttribute ( attrName , this . attributes [ attrName ] ) ;
}
if ( this . attributes . autoplay ) { // fix bug duplicate playing on firefox/chrome
this . player . node . onloadstart = function ( ) {
//this.play();
} ;
}
this . player . node . onerror = function ( ) { // switch to plugin player
setTimeout ( function ( ) {
self . args [ 0 ] = self . player . node ;
self . vlcplayer . apply ( self , self . args ) ;
} , 5000 ) ;
} ;
break ;
default : // embed
this . player . node = document . createElement ( 'embed' ) ;
for ( attrName in this . attributes ) {
if ( this . attributes . hasOwnProperty ( attrName ) )
this . player . node . setAttribute ( attrName , this . attributes [ attrName ] ) ;
}
}
this . player . html = this . player . node . outerHTML ;
this . player . tag = this . player . node . tagName ;
this . inserting ( ) ;
} ,
inserting : function ( ) {
switch ( this . options . insert ) {
case 'inner' :
this . target . node . innerHTML = this . player . html ;
break ;
case 'append' :
this . target . parent . replaceChild ( this . player . node ) ;
break ;
default : // replace
this . target . parent . replaceChild ( this . player . node , this . target . node ) ;
}
if ( Aak . opts . logPlayer ) {
Aak . log ( 'player' , this ) ;
}
return this ;
} ,
editing : function ( elem , opts ) { // review
Aak . hasElement ( elem , function ( thisElement ) {
var obj ,
swf ,
value ,
parts ,
param ,
attributes ,
attrName ;
var so = thisElement ;
var clone = so . cloneNode ( true ) ;
// set attriibutes
if ( opts . setAttribute ) {
attributes = opts . setAttribute ;
for ( attrName in attributes ) {
if ( clone . querySelector ( 'param[name="' + attrName + '"]' ) ) {
clone . querySelector ( 'param[name="' + attrName + '"]' ) . value = attributes [ attrName ] ;
} else if ( clone . getAttribute ( attrName ) ) {
clone . setAttribute ( attrName , attributes [ attrName ] ) ;
}
}
}
// unset attributes
if ( opts . unsetAttributes ) {
attributes = opts . delAttributes ;
for ( attrName in attributes ) {
if ( clone . querySelector ( 'param[name="' + attrName + '"]' ) ) {
Aak . removeElement ( clone . querySelector ( 'param[name="' + attrName + '"]' ) ) ;
} else if ( clone . getAttribute ( attrName ) ) {
delete attributes [ attrName ] ;
}
}
}
if ( opts . setFlashvars || opts . unsetFlashvars ) {
if ( clone . querySelector ( 'param[name="flashvars"]' ) ) {
param = clone . querySelector ( 'param[name="flashvars"]' ) ;
value = param . value ;
} else if ( clone . getAttribute ( 'flashvars' ) ) {
value = clone . getAttribute ( 'flashvars' ) ;
} else if ( clone . getAttribute ( 'data' ) && clone . getAttribute ( 'data' ) . indexOf ( '?' ) >= 0 ) {
parts = clone . getAttribute ( 'data' ) . split ( '?' , 2 ) ;
swf = parts . shift ( ) ;
value = parts . shift ( ) ;
}
obj = Aak . unserialize ( value ) ;
if ( opts . setFlashvars ) {
obj = Aak . setProperties ( obj , opts . setFlashvars ) ;
}
if ( opts . unsetFlashvars ) {
obj = Aak . unsetProperties ( obj , opts . unsetFlashvars ) ;
}
value = Aak . serialize ( obj ) ;
if ( param ) {
param . value = value ;
} else if ( swf ) {
clone . setAttribute ( 'data' , swf + '?' + value ) ;
} else {
clone . setAttribute ( 'flashvars' , value ) ;
}
}
// replace
Aak . log ( so , clone , obj ) ;
Aak . replaceElement ( so , clone ) ;
} ) ;
} ,
embedding : function ( id , setup , attributes , options ) {
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . attributes . src = setup . swf ;
this . attributes . id = this . attributes . name = Aak . generateID ( ) ;
this . attributes . height = setup . height || this . attributes . height ;
this . attributes . width = setup . width || this . attributes . width ;
this . attributes . flashvars = Aak . serialize ( setup ) ;
this . attributes = Aak . unsetProperties ( this . attributes , 'swf' ) ;
this . building ( 'embed' ) ;
} ,
jwplayer : function ( id , setup , attributes , options ) {
// JwPlayer 7 (flash/html5)
// note: problem with ssl
// setup: http://tinyurl.com/hhrgjap, http://tinyurl.com/gqs46tm
// api: https://developer.jwplayer.com/jw-player/docs/developer-guide/api/javascript_api_reference/
// hls: http://tinyurl.com/pxl9scq
// hls-tester: http://demo.jwplayer.com/stream-tester/
// rtmp-demo: https://www.scaleengine.com/jw6
// iframe: http://tinyurl.com/86agg68
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . setup = setup ;
if ( this . options . crossSetup === true ) {
this . setup = {
controls : true ,
file : setup . source ,
abouttext : Aak . name ,
aboutlink : Aak . homeURL ,
width : setup . width || this . attributes . width ,
height : setup . height || this . attributes . height ,
autostart : setup . autoplay || this . autoplay ,
primary : 'html5' ,
preload : 'auto' ,
skin : { // Seven | Six | Five | Glow | Beelden | Vapor | Bekle | Roundster | Stormtrooper
name : setup . skin || "six" // default skin JWP6
}
} ;
if ( [ 'mp4' , 'webm' , 'ogg' , 'ogv' ] . indexOf ( setup . type ) === - 1 ) {
this . setup . primary = 'flash' ;
}
if ( setup . type === 'hls' ) {
this . setup . hlshtml = true ;
}
}
this . attributes . srcdoc = '<html><head><style type="text/css">@font-face{font-family:jw-icons;src:url(' + location . protocol + 'ssl.p.jwpcdn.com/player/v/7.4.3/jw-icons.woff) format("woff"),url(' + location . protocol + '//ssl.p.jwpcdn.com/player/v/7.4.3/jw-icons.ttf) format("truetype");font-weight:400;font-style:normal}</style><script src="' + location . protocol + '//content.jwplatform.com/libraries/V6NfEzT7.js"></script><style type="text/css">html, body{padding:0; margin:0;}</style></head><body><div id="jw-movie"></div><script>jwplayer("jw-movie").setup(' + JSON . stringify ( this . setup ) + ');</script></body></html>' ;
this . building ( 'iframe' ) ;
} ,
videojs : function ( id , setup , attributes , options ) {
// VideoJs 5 (flash/html5)
// setup: http://tinyurl.com/pcgx2ob
// playback: http://tinyurl.com/nscztmm
// demo: http://jsfiddle.net/N8Zs5/18/
// plugins: https://github.com/videojs/video.js/wiki/Plugins
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . setup = setup ;
if ( this . options . crossSetup === true ) {
this . setup = {
controls : true ,
preload : 'auto' ,
width : setup . width || this . attributes . width ,
height : setup . height || this . attributes . height ,
techOrder : [ "html5" , "flash" ] ,
autoplay : setup . autoplay || this . autoplay ,
sources : [ {
type : this . getMimeType ( setup . type ) ,
src : setup . source
}
]
} ;
/ * d o n ' t w o r k
if ( setup . type === 'hls' ) {
techOrder : [ "flash" , "html5" ] ,
this . setup . flash = {
//swf : "//example.com/public/swf/videojs-flashls.swf"
swf : 'http://www.flashls.org/videojs/video-js.swf'
} ;
}
* /
}
//
this . attributes . srcdoc = '<html><head><link href="' + location . protocol + '//cdnjs.cloudflare.com/ajax/libs/video.js/5.10.5/alt/video-js-cdn.min.css" rel="stylesheet"><script src="' + location . protocol + '//cdnjs.cloudflare.com/ajax/libs/video.js/5.10.5/video.min.js"></script><script src="' + location . protocol + '//cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/3.1.0/videojs-contrib-hls.min.js"></script><style type="text/css">html, body{padding:0; margin:0;}.vjs-default-skin{color:#eee}.vjs-default-skin .vjs-play-progress,.vjs-default-skin .vjs-volume-level{background-color:#eee}.vjs-default-skin .vjs-big-play-button,.vjs-default-skin .vjs-control-bar{background:rgba(0,0,0,.2)}.vjs-default-skin .vjs-slider{background:rgba(0,0,0,.3)}</style></head><body><video id="vjs-movie" class="video-js vjs-default-skin vjs-big-play-centered"></video><script>videojs("vjs-movie", ' + JSON . stringify ( this . setup ) + ')</script></body></html>' ;
this . building ( 'iframe' ) ;
} ,
flowplayer : function ( id , setup , attributes , options ) {
// FlowPlayer 6 (flash)
// note: problem with flashplayer
// support: mp4, flv, f4v, m4v, mov
// setup: https://flowplayer.org/docs/setup.html
// api: https://flowplayer.org/docs/api.html
// demo: http://demos.flowplayer.org/basics/js-setup-autoplay.html
// hds: https://flowplayer.electroteque.org/httpstreaming-hds/fp6
// hls: http://demos.flowplayer.org/api/hlsjs.html
// flv: http://demos.flowplayer.org/basics/flv.html
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . setup = setup ;
if ( this . options . crossSetup === true ) {
this . setup = {
width : setup . width || this . attributes . width ,
height : setup . height || this . attributes . height ,
autoplay : setup . autoplay || this . autoplay ,
preload : 'auto'
} ;
if ( setup . type === 'hls' ) {
this . setup . swf = location . protocol + '//releases.flowplayer.org/6.0.5/flowplayerhls.swf' ;
this . setup . engine = 'hlsjs' ;
} else if ( [ 'mp4' , 'webm' , 'ogg' , 'ogv' ] . indexOf ( setup . type ) === - 1 ) {
this . setup . swf = location . protocol + '//releases.flowplayer.org/6.0.5/flowplayer.swf' ;
this . setup . engine = 'flash' ;
this . setup . type = 'video/flash' ;
}
this . setup . clip = {
sources : [ {
type : this . getMimeType ( this . setup . type || setup . type ) ,
src : setup . source
}
]
} ;
}
this . attributes . srcdoc = '<html><head><link rel="stylesheet" href="' + location . protocol + '//releases.flowplayer.org/6.0.5/skin/functional.css"></script><script src="' + location . protocol + '//code.jquery.com/jquery-1.11.2.min.js"></script><script src="' + location . protocol + '//releases.flowplayer.org/6.0.5/flowplayer.min.js"></script><style type="text/css">html, body{padding:0; margin:0;}</style></head><body><div id="fp-movie"></div><script>flowplayer("#fp-movie", ' + JSON . stringify ( this . setup ) + ');</script></body></html>' ;
this . building ( 'iframe' ) ;
} ,
grindplayer : function ( id , setup , attributes , options ) {
return ;
// GrindPlayer 1 (flash)
// setup: http://osmfhls.kutu.ru/docs/grind/
// support: hls, rtmp
/ *
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . setup = setup ;
if ( this . options . crossSetup === true ) {
this . setup = {
src : setup . source ,
streamType : "live" ,
scaleMode : "letterbox" ,
autoPlay : setup . autoplay || this . autoplay
} ;
if ( setup . type === 'hls' ) {
this . setup . plugin _hls = "//example.com/public/swf/flashlsOSMF.swf" ;
}
if ( setup . proxy === true ) {
this . setup . src = '//www.dianshibo.com/fetch.php/' + setup . source . substring ( setup . source . indexOf ( '//' ) + 2 ) ;
}
}
this . attributes . src = setup . swf || this . attributes . src || "//example.com/public/swf/GrindPlayer.swf" ;
this . attributes . height = setup . height || this . attributes . height ;
this . attributes . width = setup . width || this . attributes . width ;
this . attributes . flashvars = Aak . serialize ( this . setup ) ;
this . building ( 'embed' ) ;
* /
} ,
vlc : function ( id , setup , attributes , options ) {
// VLC Web Plugin (plugin)
// doc: http://tinyurl.com/omlzp39
// plugins: about:plugins
// chrome://flags/#enable-npapi
// https://www.chromium.org/developers/npapi-deprecation
// In September 2015 (Chrome 45) we will remove the override and NPAPI support will be permanently removed from Chrome. Installed extensions that require NPAPI plugins will no longer be able to load those plugins.
this . name = 'vlc' ;
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( this . attributes , attributes || { } ) ;
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . setup = setup ;
if ( this . options . crossSetup === true ) {
this . attributes . src = setup . source ;
this . attributes . height = setup . height || this . attributes . height ;
this . attributes . width = setup . width || this . attributes . width ;
this . attributes . controls = true ;
if ( setup . autoplay || this . autoplay ) {
this . attributes . autoplay = true ;
}
}
this . attributes . type = "application/x-vlc-plugin" ;
this . attributes . pluginspage = "http://www.videolan.org" ;
this . building ( 'embed' ) ;
} ,
html5 : function ( id , setup , attributes , options ) {
// Video Tag (html5)
// basics: https://html5rocks.com/en/tutorials/video/basics/
// tag: http://www.w3schools.com/tags/tag_video.asp
// support: mp4, webm, ogg
// test: http://www.quirksmode.org/html5/tests/video.html
this . options = Aak . setProperties ( this . options , options || { } ) ;
this . getTargetNode ( id ) ;
this . args = arguments ;
this . attributes = Aak . setProperties ( { } , setup || { } ) ;
this . attributes . src = setup . source ;
this . attributes . id = this . attributes . name = Aak . generateID ( ) ;
this . attributes . height = this . attributes . height || this . target . node . clientHeight || "100%" ;
this . attributes . width = this . attributes . width || this . target . node . clientWidth || "100%" ;
this . attributes . type = this . getMimeType ( this . attributes . type ) ;
this . attributes . controls = 'controls' ;
this . attributes . preload = 'none' ;
if ( this . attributes . autoplay || this . autoplay ) {
this . attributes . autoplay = 'autoplay' ;
}
this . attributes . style = 'display: block; margin:0 auto;' ;
this . attributes = Aak . unsetProperties ( this . attributes , 'source' ) ;
this . building ( 'video' ) ;
}
} ;
return new Player ( ) ;
2017-05-24 06:14:33 +02:00
} ,
2017-05-27 06:01:52 +02:00
rules : {
// --------------------------------------------------------------------------------------------
// Anti-Adblock Killer
// --------------------------------------------------------------------------------------------
settings : {
host : [ 'xuhaiyang1234.gitlab.io' ] ,
onEnd : function ( ) {
if ( /^\/AAK-Cont\// . test ( location . pathname ) ) {
var settingsBox = Aak . getElement ( '#aak-settings-box' ) ;
var settingsNotice = Aak . getElement ( '#aak-settings-notice' ) ;
if ( ! Aak . useGM ) {
settingsNotice . querySelector ( 'div' ) . innerHTML = 'In native mode, you must edit the options manually: <a href="' + Aak . nativeURL + '">See</a>' ;
} else if ( settingsBox && settingsNotice ) {
settingsNotice . style . display = 'none' ;
settingsBox . style . display = 'block' ;
Aak . info ( 'GM storage:' , Aak . getValue ( ) ) ;
Aak . info ( 'GM options:' , Aak . opts ) ;
Aak . info ( 'GM api:' , Aak . useGM && Aak . apiGM ( ) ) ;
// user config
Aak . createElement ( {
tag : 'div' ,
html : 'Version: ' + Aak . getVersion ( ) + ' <br>AAK-Cont Script: Enabled <br>Browser: ' + Aak . getBrowser ( ) + ' <br>ScriptManager: ' + Aak . getScriptManager ( ) ,
append : '#aak-settings-config'
} ) ;
// create options
for ( var optName in Aak . options ) {
if ( Aak . options . hasOwnProperty ( optName ) ) {
var opt = Aak . options [ optName ] ;
var checked = Aak . opts [ optName ] === true ? "checked" : '' ;
Aak . createElement ( {
tag : 'div' ,
html : '<input id="' + optName + '" class="css-checkbox" ' + checked + ' type="' + opt . type + '"/><label for="' + optName + '" title="' + opt . info + '" class="css-label">' + opt . label + '</label>' ,
append : '#aak-settings-' + opt . group
} ) ;
}
}
// save options
Aak . onEvent ( Aak . getElement ( "#aak-settings-save" ) , "click" , function ( ) {
var elems = document . querySelectorAll ( '.css-checkbox' ) ;
for ( var i = 0 ; i < elems . length ; i ++ ) {
var elem = elems [ i ] ;
if ( elem . checked ) {
Aak . setValue ( elem . id , true ) ;
} else {
Aak . setValue ( elem . id , false ) ;
}
}
window . alert ( 'Saved !' ) ;
} ) ;
// Clear GM storage
Aak . addCommands ( {
caption : 'Clear GM storage' ,
execute : function ( ) {
Aak . deleteValue ( ) ;
window . alert ( 'Cleared !' ) ;
}
} ) ;
}
}
}
} ,
userscripts _domains : { // Redirect to Github
host : [ 'userscripts.org' , 'userscripts.org:8080' , 'userscripts-mirror.org' ] ,
onStart : function ( ) {
if ( /155840$/ . test ( location . pathname ) ) {
Aak . go ( 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 ) ;
}
}
} ,
// --------------------------------------------------------------------------------------------
// Specific
// --------------------------------------------------------------------------------------------
blogspot : {
// No Country Redirect (NCR)
// Prevent Blogger from Redirecting to Country-Specific Domains
// doc: http://tinyurl.com/7rm34jo
// issue: https://greasyfork.org/fr/forum/discussion/5953
// issue: https://github.com/reek/anti-adblock-killer/issues/490
// test: http://tinyurl.com/nomcxkc
host : [ '.blogspot.' ] ,
onStart : function ( ) {
if ( Aak . isTopframe ) { // fix rediretion loop
var blog = location . host . replace ( 'www.' , '' ) . split ( "." ) ;
if ( blog [ blog . length - 1 ] != "com" ) {
var path = location . href . split ( "/" ) . slice ( 3 ) . join ( '/' ) ;
Aak . go ( "http://" + blog [ 0 ] + ".blogspot.com/ncr/" + path ) ;
}
}
}
} ,
blogspot _knowlet3389 : {
// note: also added abp rule
// issue: https://github.com/reek/anti-adblock-killer/issues/83
// source: http://pastebin.com/A3mCXQ5i
host : [ 'knowlet3389.blogspot.' ] ,
onStart : function ( ) {
Aak . setLocal ( 'noad' , false ) ;
Aak . addStyle ( "#gAds { height: 17px; } #gAd2 { height: 17px; }" ) ;
}
} ,
uptobox _uptostream : {
// issue: https://github.com/reek/anti-adblock-killer/issues/351
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/"]' ) ;
}
} ,
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 ( ) { } ;
}
} ,
freegameserverhost _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1512
host : [ 'freegameserverhost.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#fab13 { height: 11px; }" ) ;
}
} ,
elahmad _com : {
host : [ 'elahmad.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#adblock { height: 1px; }" ) ;
}
} ,
mrtzcmp3 _net : {
host : [ 'mrtzcmp3.net' ] ,
onStart : function ( ) {
Aak . addStyle ( ".rtm_ad { height: 1px; }" ) ;
}
} ,
height _myTestAd : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1241
// issue: https://github.com/reek/anti-adblock-killer/issues/983
// issue: https://github.com/reek/anti-adblock-killer/issues/291
host : [ 'bknime.com' , 'go4up.com' , 'debrido.com' ] ,
onStart : function ( ) {
Aak . addStyle ( ".myTestAd { height: 1px; }" ) ;
}
} ,
debridfast _network : {
// issue: https://greasyfork.org/en/forum/discussion/9406
// issue: https://greasyfork.org/en/forum/discussion/7013
// issue: https://github.com/reek/anti-adblock-killer/issues/1272
// issue: https://github.com/reek/anti-adblock-killer/issues/769
host : [ 'debridfast.com' , 'getdebrid.com' , 'debrid.us' , 'leecher.us' ] ,
onStart : function ( ) {
Aak . addStyle ( ".myTestAd, .my24Ad, .nabil { height: 1px; }" ) ;
} ,
onIdle : function ( ) {
document . querySelector ( '#simpleAd' ) . innerHTML = '<p style="display:none;">debridfast.com</p>' ;
}
} ,
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' ) ;
}
} ,
vg _e24 _no : {
// issue: https://github.com/reek/anti-adblock-killer/issues/292
host : [ 'vg.no' , 'e24.no' ] ,
onStart : function ( ) {
// Add this rule, because EasyList allow all hidden elements.
Aak . addStyle ( ".ad { display: none; }" ) ;
}
} ,
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; }" ) ;
}
} ,
thomas _n _ruth _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1111
// source: http://pastebin.com/fu7vkUA1
host : [ 'thomas-n-ruth.com' ] ,
onStart : function ( ) {
Aak . addStyle ( ".Google { 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; }" ) ;
}
} ,
mangamint _com : {
// note: added rule to allow ".ad728"
// issue: https://greasyfork.org/id/forum/discussion/8524
host : [ 'mangamint.com' ] ,
onStart : function ( ) {
Aak . addStyle ( ".ad728 { height: 31px; }" ) ;
}
} ,
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; }" ) ;
}
} ,
simply _debrid _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/332
// source: http://pastebin.com/b7MAYXs4
host : [ 'simply-debrid.com' ] ,
onStart : function ( ) {
Aak . uw . adsbygoogle = { } ;
Aak . uw . adsbygoogle . loaded = true ;
}
} ,
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; }" ) ;
}
} ,
kodilive _eu : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1528
// source: http://pastebin.com/ZxvXKqtc
host : [ 'kodilive.eu' ] ,
onStart : function ( ) {
Aak . addStyle ( ".Ad { height: 5px; }" ) ;
}
} ,
backin _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=backin.net
host : [ 'backin.net' ] ,
onStart : function ( ) {
Aak . addStyle ( "#divad { height: 31px; }" ) ;
}
} ,
mobile _tracker _free _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1082
host : [ 'mobile-tracker-free.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#myAds { height: 1px; }" ) ;
}
} ,
workupload _com : {
// note: obfuscated
// issue: https://github.com/reek/anti-adblock-killer/issues/1334
// issue: https://github.com/reek/anti-adblock-killer/issues/1290
// source: http://pastebin.com/CPzd2Swx
host : [ 'workupload.com' ] ,
onAlways : function ( ) {
Aak . addStyle ( ".adBlock, .adsbygoogle, #sad { height: 11px; }" ) ;
}
} ,
today _in : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=intoday.in
// issue: https://github.com/reek/anti-adblock-killer/issues?q=businesstoday.in
// source: http://pastebin.com/gz539G7m
host : [ "intoday.in" , "businesstoday.in" ] ,
onStart : function ( ) {
Aak . addStyle ( '#adbocker_alt { display: none; }' ) ;
Aak . uw . openPopup = function ( ) { } ;
}
} ,
jc _mp _com : {
// by: Giwayume
// issue: https://github.com/reek/anti-adblock-killer/issues/1597
host : [ "jc-mp.com" ] ,
onStart : function ( ) {
Aak . addStyle ( '.adsense {width: 1px; height: 1px; visibility: hidden; display: block; position: absolute;}' ) ;
}
} ,
mariage _franco _marocain _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=mariage-franco-marocain.net
host : [ "mariage-franco-marocain.net" ] ,
onStart : function ( ) {
Aak . addStyle ( '#my_ad_div {height: 1px;}' ) ;
}
} ,
happy _hack _ru : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=happy-hack.ru
host : [ 'happy-hack.ru' ] ,
onStart : function ( ) {
Aak . addStyle ( "#blockblockF4 {visibility:invisible;display:none;} #blockblockF4 td {visibility:invisible;display:none;} #blockblockF4 td p {visibility:invisible;display:none;} #blockblockD3 {visibility:visible;display:block;}" ) ;
}
} ,
forbes _com : {
// by: Giwayume
// issue: https://github.com/reek/anti-adblock-killer/issues/865
host : [ 'forbes.com' ] ,
onStart : function ( ) {
if ( window . location . pathname . indexOf ( '/welcome' ) > - 1 ) {
Aak . setCookie ( 'welcomeAd' , 'true' , 86400000 , '/' ) ;
Aak . setCookie ( 'dailyWelcomeCookie' , 'true' , 86400000 , '/' ) ;
window . location = Aak . getCookie ( 'toUrl' ) || 'http://www.forbes.com/' ;
}
}
} ,
bait _adsbygoogle : {
// issue: https://github.com/reek/anti-adblock-killer/issues/547
host : [ 'bitcoinaliens.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'ins.adsbygoogle' ) ;
}
} ,
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 . addBaitElement ( 'div#tester' ) ;
}
} ,
bait _add : {
host : [ 'filecom.net' , 'upshare.org' , 'skippyfile.com' , 'mwfiles.net' , 'up-flow.org' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#add' ) ;
}
} ,
bait _adpbtest : {
host : [ 'leaguesecretary.com' , 'teknogods.com' , 'hellsmedia.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#adpbtest' ) ;
}
} ,
bait _adtester : {
host : [ 'freesportsbet.com' , 'sportsplays.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( '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 . addBaitElement ( 'div#tester' ) ;
} ,
onEnd : function ( ) {
Aak . uw . threshold = 1000 ;
Aak . removeElement ( '.chat_frame' ) ; // bug reload iframe
}
} ,
freegamehosting _nl : {
host : [ 'freegamehosting.nl' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#adtest' ) ;
}
} ,
theweatherspace _com : {
host : [ 'theweatherspace.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#ab-bl-advertisement' ) ;
}
} ,
cleodesktop _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/711
host : [ 'cleodesktop.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#myTestAd' ) ;
}
} ,
imageraider _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/826
host : [ 'imageraider.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#myGContainer' ) ;
}
} ,
voici _fr : {
// issue: https://greasyfork.org/fr/forum/discussion/10093
// issue: https://github.com/reek/anti-adblock-killer/issues/826
// source: http://pastebin.com/zEVQHTiD
host : [ 'voici.fr' , 'programme-tv.net' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#sas_script2' ) ;
}
} ,
mil _ink : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1652
// source: http://pastebin.com/474NZzPJ
host : [ 'mil.ink' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#ads_div' ) ;
}
} ,
cubeupload _com : {
// issue: https://greasyfork.org/en/forum/discussion/5919
host : [ 'cubeupload.com' ] ,
onStart : function ( ) {
Aak . createElement ( {
tag : 'iframe' ,
name : 'iframe' ,
src : 'about:blank' ,
style : 'display:none;' ,
append : document . documentElement
} ) ;
}
} ,
stream4free _eu : {
host : [ 'stream4free.eu' ] ,
onStart : function ( ) {
// +abp alt solution
Aak . addBaitElement ( 'div#jpayday' ) ;
Aak . uw . jpayday _alert = 1 ;
}
} ,
_3dnews _ru : {
// issue: https://greasyfork.org/ru/forum/discussion/5750
host : [ '3dnews.ru' ] ,
onStart : function ( ) {
Aak . setCookie ( 'adblockwarn' , 1 ) ;
Aak . addStyle ( "#earAds { width: 401px; }" ) ;
Aak . addBaitElement ( 'div#earAds' ) ;
Aak . uw . _ _AT _detected = true ;
}
} ,
_3dsthem _es : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=3dsthem
host : [ '3dsthem.es' ] ,
onStart : function ( ) {
//Aak.addScript(function () {});
} ,
onBeforeScript : function ( ) {
/ *
return [ {
contains : 'main.js' ,
external : true ,
override : '//pastebin.com/raw/2yGRPhRZ'
}
] ;
* /
}
} ,
_8muses _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=8muses
// issue: https://greasyfork.org/forum/discussion/8515
// issue: https://greasyfork.org/en/forum/discussion/6407
// source: http://pastebin.com/bMNDxecs
host : [ '8muses.com' ] ,
onBeforeScript : function ( ) {
return [ {
contains : "typeof exo" ,
external : false ,
remove : true
}
] ;
}
} ,
happytrips _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=happytrips
// source: http://pastebin.com/EWSEbnvv
host : [ 'happytrips.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'canRun' , true ) ;
}
} ,
lg _firmware _rom _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=lg-firmware-rom.com
host : [ 'lg-firmware-rom.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'killads' , true ) ;
}
} ,
mid _day _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=mid-day.com
host : [ 'mid-day.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'canRun' , true ) ;
}
} ,
badtv _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=badtv.it
host : [ 'badtv.it' , 'badtaste.it' , 'badgames.it' , 'badcomics.it' ] ,
onStart : function ( ) {
Aak . setCookie ( 'adBlockChecked' , 'disattivo' ) ;
}
} ,
independent _co _uk : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=independent.co.uk
host : [ 'independent.co.uk' ] ,
onStart : function ( ) {
Aak . setCookie ( 'adblock_detected' , 'ignored' ) ;
}
} ,
esmas _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=esmas.com
host : [ 'esmas.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'opened_adbblock' , false ) ;
}
} ,
pinoy1tv _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=pinoy1tv
host : [ 'pinoy1tv.' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'allowads' , 1 ) ;
}
} ,
ewallstreeter _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=ewallstreeter.com
host : [ 'ewallstreeter.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'OAS_rdl' , 1 ) ;
}
} ,
business _standard _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=business-standard.com
host : [ 'business-standard.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'adsLoaded' , 1 ) ;
Aak . setCookie ( '_pw' , 't' ) ;
}
} ,
express _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=financialexpress.com
// issue: https://github.com/reek/anti-adblock-killer/issues?q=indianexpress.com
host : [ 'financialexpress.com' , 'indianexpress.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( 'RunAds' , 1 ) ;
}
} ,
indiatimes _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=indiatimes
// issue: https://github.com/reek/anti-adblock-killer/issues?q=malayalam.samayam.com
// test: http://tinyurl.com/zxusvyf,
host : [ 'indiatimes.com' , 'samayam.com' , 'bangaloremirror.com' ] ,
onBeforeScript : function ( ) {
return [ {
contains : '\\\\x61\\\\x64\\\\x62' ,
external : false ,
remove : true
} , {
contains : 'function initBlock' ,
external : false ,
remove : true
}
] ;
}
} ,
thechive _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1453
// source: http://pastebin.com/TdpPyrbb
host : [ 'thechive.com' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
Object . defineProperties ( window , {
stephaneDetector : {
value : {
hook : function ( cb ) {
cb ( false ) ;
} ,
init : function ( ) { } ,
broadcastResult : function ( ) { }
} ,
writable : false
}
} ) ;
} ) ;
}
} ,
richonrails _com : {
// by: Giwayume
// issue: https://github.com/reek/anti-adblock-killer/issues/1447
// source: http://pastebin.com/Ewfwg8BG
host : [ 'richonrails.com' ] ,
onIdle : function ( ) {
Aak . addScript ( function ( ) {
var adsByGoogleHtml = '"<ins+id="aswift_0_expand"+style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:750px;background-color:transparent"><ins+id="aswift_0_anchor"+style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:750px;background-color:transparent"><iframe+marginwidth="0"+marginheight="0"+vspace="0"+hspace="0"+allowtransparency="true"+scrolling="no"+allowfullscreen="true"+onload="var+i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else+if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}"+id="aswift_0"+name="aswift_0"+style="left:0;position:absolute;top:0;"+width="750"+frameborder="0"+height="90"></iframe></ins></ins>"' ;
$ . ajax ( {
url : $ ( ".article-content" ) . data ( "url" ) ,
dataType : "script" ,
method : "post" ,
data : {
html : adsByGoogleHtml
} ,
success : function ( result ) {
var exec = result . replace ( "$('.article-content')" , "$('.article-content-2')" ) ;
new Function ( exec ) ( ) ;
}
} ) ;
$ ( ".article-content" ) . after ( '<div class="article-content-2"></div>' ) . remove ( ) ;
} ) ;
}
} ,
rmprepusb _com : {
host : [ 'rmprepusb.com' ] ,
onStart : function ( ) {
Aak . setCookie ( 'jot_viewer' , 3 ) ;
}
} ,
neodrive _co : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1001
host : [ 'neodrive.co' ] ,
onAlways : function ( ) {
// Prevent popunder
Aak . setCookie ( 'KifPopCnt' , 1 , null , '/embed/' ) ;
}
} ,
hentaihaven _org : {
// issue: https://github.com/gorhill/uBlock/issues/1340
host : [ 'hentaihaven.org' ] ,
onAlways : function ( ) {
// Prevent popunder
Aak . setCookie ( 'hh_ppndr1' , 1 ) ;
Aak . setCookie ( 'hh_ppndr2' , 1 ) ;
}
} ,
primeshare _tv : {
host : [ 'primeshare.tv' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#adblock' ) ;
}
} ,
debridnet _and _livedebrid : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=debridnet
// issue: https://github.com/reek/anti-adblock-killer/issues?q=livedebrid
host : [ 'debridnet.com' , 'livedebrid.com' ] ,
onStart : function ( ) {
Aak . addStyle ( ".myTestAd2 { height: 5px; }" ) ;
Aak . addBaitElement ( 'div.myTestAd2' ) ;
}
} ,
bluesatoshi _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/873
host : [ 'bluesatoshi.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#test { height: 280px; }" ) ;
Aak . addBaitElement ( 'div#test' ) ;
}
} ,
razercrypt _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/870
host : [ 'razercrypt.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#test { height: 250px; }" ) ;
Aak . addBaitElement ( 'div#test' ) ;
}
} ,
satoshiempire _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/872
host : [ 'satoshiempire.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#test { height: 250px; }" ) ;
Aak . addBaitElement ( 'div#test' ) ;
}
} ,
oneadfaucet _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/871
host : [ 'oneadfaucet.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#test { height: 250px; }" ) ;
Aak . addBaitElement ( 'div#test' ) ;
}
} ,
jkanime _net : {
host : [ 'jkanime.net' ] ,
// @@||jkanime.net/assets/js/advertisement2.js
onStart : function ( ) {
Aak . addBaitElement ( 'div#reco' ) ;
}
} ,
_720pmkv _com : {
host : [ '720pmkv.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#advert' ) ;
}
} ,
paidverts _com : {
host : [ 'paidverts.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div.afs_ads' ) ;
}
} ,
italiatv _org : {
host : [ 'italiatv.org' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#fab13' ) ;
}
} ,
chrissmoove _com : {
host : [ 'chrissmoove.com' ] ,
onStart : function ( ) {
//Aak.addBaitElement('div#adserver');
}
} ,
eventhubs _com : {
host : [ 'eventhubs.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#blahyblaci1' ) ;
}
} ,
superanimes _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1295
// source: http://pastebin.com/FDPAKjTQ
host : [ 'superanimes.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#bannerLoja' ) ;
}
} ,
forum _pac _rom _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/243
host : [ 'forum.pac-rom.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div.banner_ads' ) ;
}
} ,
litv _tv : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1299
// source: http://pastebin.com/zcddvTuC
host : [ 'litv.tv' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div.player_mask' ) ;
}
} ,
leveldown _fr : {
// issue: https://github.com/reek/anti-adblock-killer/issues/595
host : [ 'leveldown.fr' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#adblock' ) ;
Aak . addBaitElement ( 'div#adblocktest' ) ;
}
} ,
globeslot _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/924
host : [ 'globeslot.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#add' ) ;
Aak . addBaitElement ( 'div#add1' ) ;
}
} ,
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'
} ) ;
}
} ,
disableAlertbox : {
// issue: https://greasyfork.org/en/forum/discussion/8611
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' , 'newsinlevels.com' , 'vipracing.biz' , 'businesstoday.in' ] ,
onAlways : function ( ) {
Aak . uw . alert = function ( ) { } ;
}
} ,
generatupremium _biz : {
host : [ 'generatupremium.biz' ] ,
onStart : function ( ) {
// Disable Confirm Box
//Aak.uw.confirm = function (){};
Aak . setCookie ( 'genera' , false ) ;
}
} ,
newstatesman _com : {
host : [ 'newstatesman.com' ] ,
onStart : function ( ) {
Aak . setCookie ( 'donationPopup' , 'hide' ) ;
}
} ,
adswizz _com : {
// by: Skr4tchGr3azyMonkiBallllllZzzz
// issue: https://github.com/reek/anti-adblock-killer/issues/809
host : [ 'yes.fm' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
window . com _adswizz _synchro _initialize = function ( ) { } ;
} ) ;
}
} ,
derstandard _at : {
// by: Alexander255
// patch: http://pastebin.com/raw.php?i=r7Q4DrfB
// issue: https://github.com/reek/anti-adblock-killer/issues?q=derstandard
host : [ 'derstandard.at' ] ,
onStart : function ( ) {
var makeISOTimestampUTC = function ( ) {
var pad = function ( amount , width ) {
var padding = "" ;
while ( padding . length < width - 1 && amount < Math . pow ( 10 , width - padding . length - 1 ) ) {
padding += "0" ;
}
return padding + amount . toString ( ) ;
} ;
var date = new Date ( ) ;
return [ pad ( date . getUTCFullYear ( ) , 4 ) , "-" ,
pad ( date . getUTCMonth ( ) + 1 , 2 ) , "-" ,
pad ( date . getUTCDate ( ) , 2 ) , "T" ,
pad ( date . getUTCHours ( ) , 2 ) , ":" ,
pad ( date . getUTCMinutes ( ) , 2 ) , ":" ,
pad ( date . getUTCSeconds ( ) , 2 ) ] . join ( ) ;
} ;
document . cookie . split ( '; ' ) . forEach ( function ( cookie ) {
// Find main storage cookie
if ( cookie . substr ( 0 , 6 ) == "MGUID=" ) {
// Decompose information from main storage cookie
var values = { } ;
cookie . substr ( 6 ) . split ( "&" ) . forEach ( function ( assignment ) {
var pos = assignment . indexOf ( '=' ) ;
if ( pos > - 1 ) {
values [ assignment . substr ( 0 , pos ) ] = assignment . substr ( pos + 1 ) ;
}
} ) ;
// Update "first viewed" timestamp
values . Timestamp = makeISOTimestampUTC ( ) ;
// Recompose information in main storage cookie
cookie = "MGUID=" ;
for ( var key in values ) {
if ( values . hasOwnProperty ( key ) ) {
cookie += key + "=" + values [ key ] + "&" ;
}
}
cookie = cookie . substr ( 0 , ( cookie . length - 1 ) ) ;
// Update cookie
document . cookie = cookie ;
}
} ) ;
}
} ,
tek _domains : {
// by: Reek, Alexander255
// issue: https://github.com/reek/anti-adblock-killer/issues/788
// 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" ;
ad _frame . style . display = "none" ;
document . body . appendChild ( ad _frame ) ;
ad _frame . contentWindow . wrappedJSObject . inFIF = true ;
* /
// fix 27.11.2015
Aak . createElement ( {
tag : 'div' ,
id : 'google_ads_iframe_' ,
html : '<p></p>' ,
append : 'body'
} ) ;
}
} ,
planetatvonlinehd _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1467
// issue: https://github.com/reek/anti-adblock-killer/issues/159
host : [ 'planetatvonlinehd.blogspot.' , 'planetatvonlinehd.com' ] ,
onStart : function ( ) {
Aak . addStyle ( '.adsantilok { height: 1px; }' ) ;
//Aak.uw.jQAntiAdsBlock = function (){}; // don't work
}
} ,
beta _speedtest _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues/628
// issue: https://github.com/reek/anti-adblock-killer/issues/562
// issue: https://github.com/reek/anti-adblock-killer/issues/484
// source: http://paste2.org/53ymghX1
host : [ 'beta.speedtest.net' ] ,
onAlways : function ( ) {
Aak . uw . adsOoklaComReachable = true ;
Aak . uw . scriptsLoaded = function ( ) { } ;
}
} ,
binbucks _com : {
// by: Alexander255
// issue: https://github.com/reek/anti-adblock-killer/issues/545
host : [ 'binbucks.com' ] ,
onIdle : function ( ) {
Aak . uw . testJuicyPay = true ;
Aak . uw . testSensePay = true ;
}
} ,
whiskyprices _domains : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1284
// source: http://pastebin.com/Epr5tREL
host : [ 'whiskyprijzen.com' , 'whiskyprices.co.uk' , 'whiskypreise.com' , 'whiskyprix.fr' ] ,
onAlways : function ( ) {
Aak . uw . OA _show = true ;
}
} ,
nicoblog _org : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1184
// source: http://pastebin.com/MNHpLs2V
host : [ 'nicoblog.org' ] ,
onIdle : function ( ) {
var el = document . querySelector ( '.src' ) ;
el . removeAttribute ( 'class' ) ;
}
} ,
di _se : {
// note: add this rule for chrome user
// issue: https://github.com/reek/anti-adblock-killer/issues/1319
// source: http://pastebin.com/9bDPQzMX
host : [ 'di.se' ] ,
onIdle : function ( ) {
Aak . removeElement ( '#header_overlay' ) ;
Aak . removeElement ( '#message_modal' ) ;
}
} ,
megogo _net : {
// issue: PM
// source1: http://pastebin.com/ccHQg3hn
// source2: http://pastebin.com/gk0vEQHN
// note: two adblock check
host : [ 'megogo.net' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , "adBlock" , {
enumerable : true ,
writable : false ,
value : false
} ) ;
Object . defineProperty ( Aak . uw , "showAdBlockMessage" , {
enumerable : true ,
writable : false ,
value : function ( ) { }
} ) ;
}
} ,
libertaddigital _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1642
// source: http://pastebin.com/6Fzp0vrE
host : [ 'libertaddigital.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , "ad_already_played" , {
enumerable : true ,
writable : false ,
value : true
} ) ;
Object . defineProperty ( Aak . uw , "puedeMostrarAds" , {
enumerable : true ,
writable : false ,
value : true
} ) ;
}
} ,
folha _uol _com _br : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1396
// source: f( ( typeof paywall_access == "undefined" || paywall_access != true ) && ( typeof folha_ads == "undefined" || folha_ads != true ) ) {
host : [ 'folha.uol.com.br' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , "paywall_access" , {
enumerable : true ,
writable : false ,
value : true
} ) ;
Object . defineProperty ( Aak . uw , "folha_ads" , {
enumerable : true ,
writable : false ,
value : true
} ) ;
}
} ,
gamer _com _tw : {
// by: mmis1000
// userscript: https://greasyfork.org/en/scripts/16525
// issue: : https://github.com/reek/anti-adblock-killer/issues/975
host : [ 'gamer.com.tw' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'AntiAd' , {
enumerable : true ,
writable : false ,
value : null
} ) ;
}
} ,
armorgames _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/845
host : [ 'armorgames.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'ga_detect' , {
enumerable : true ,
writable : false ,
value : null
} ) ;
}
} ,
mangahost _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/957
// issue: https://github.com/reek/anti-adblock-killer/issues/558
// source: http://pastebin.com/GrpbJENA
host : [ 'mangahost.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , "testDisplay" , {
enumerable : true ,
writable : false ,
value : false
} ) ;
}
} ,
videowood _tv : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1339
// source: http://videowood.tv/build/assets/js/pembed-97a640f625.js
host : [ 'videowood.tv' ] ,
onStart : function ( ) {
Aak . uw . open = function ( ) { } ; // prevent popup
Aak . uw . config = { } ;
Object . defineProperty ( Aak . uw . config , "adb_remind" , {
enumerable : true ,
writable : false ,
value : false
} ) ;
}
} ,
infojobs _com _br : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1339
// source: http://pastebin.com/LPg6093U
// redirect: http://www.infojobs.com.br/nopublicity.aspx
host : [ 'infojobs.com.br' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
var webUI = webUI || { } ;
webUI . Utils = webUI . Utils || { } ;
Object . defineProperty ( webUI . Utils , "StopAdBlock" , {
enumerable : true ,
writable : false ,
value : function ( ) { }
} ) ;
} ) ;
}
} ,
cloudwebcopy _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/714
host : [ 'cloudwebcopy.com' ] ,
onStart : function ( ) {
var setTimeoutClone = Aak . uw . setTimeout ;
Aak . uw . setTimeout = null ;
setTimeout ( function ( ) {
Aak . uw . setTimeout = setTimeoutClone ;
} , 5000 ) ;
}
} ,
narkive _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/569
host : [ 'narkive.com' ] ,
onAlways : function ( ) {
Aak . uw . adblock _status = function ( ) {
return false ;
} ;
}
} ,
pregen _net : {
host : [ 'pregen.net' ] ,
onStart : function ( ) {
// skip page info
Aak . setCookie ( 'pgn' , 1 ) ;
}
} ,
phys _org : {
// issue: https://github.com/reek/anti-adblock-killer/issues/768
host : [ 'phys.org' ] ,
onAlways : function ( ) {
Aak . uw . chkAB = function ( ) { } ;
}
} ,
onvasortir _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=onvasortir.com
host : [ 'onvasortir.com' ] ,
onAlways : function ( ) {
// +abp rule alt solution
Aak . uw . JeBloque = function ( ) { } ;
}
} ,
fullhdzevki _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=fullhdzevki.com
host : [ 'fullhdzevki.com' ] ,
onAlways : function ( ) {
// +abp rule alt solution
Aak . uw . check = function ( ) { } ;
}
} ,
ville _ideale _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/258
// source: http://pastebin.com/16mnmeMc
host : [ 'ville-ideale.com' ] ,
onAlways : function ( ) {
// +abp rule alt solution
Aak . uw . execsp = function ( ) { } ;
}
} ,
notre _planete _info : {
// issue: https://github.com/reek/anti-adblock-killer/issues/258
// source: http://pastebin.com/qrS6QGGE
host : [ 'notre-planete.info' ] ,
onAlways : function ( ) {
// +abp rule alt solution
Aak . uw . pubpop = function ( ) { } ;
}
} ,
apkmirror _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/378
// issue: https://github.com/reek/anti-adblock-killer/issues/224
// issue: https://github.com/reek/anti-adblock-killer/issues/78
host : [ 'apkmirror.com' ] ,
onAlways : function ( ) {
Aak . uw . doCheck = function ( ) { } ;
}
} ,
mtlblog _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/948
// issue: https://greasyfork.org/forum/discussion/7753
// source: http://pastebin.com/BFrDPM6b
host : [ 'mtlblog.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'puabs' , {
enumerable : true ,
value : function ( ) { }
} ) ;
}
} ,
anizm _com : {
// issue:
host : [ 'anizm.com' ] ,
onAlways : function ( ) {
Aak . uw . stopAdBlock = { } ;
}
} ,
diarioinformacion _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1550
host : [ 'diarioinformacion.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'pr_okvalida' , {
enumerable : true ,
value : true
} ) ;
}
} ,
cnbeta _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1301
// source: http://pastebin.com/vXNCztwx
host : [ 'cnbeta.com' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'JB' , {
enumerable : true ,
value : function ( ) { }
} ) ;
}
} ,
themarker _haaretz : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1292
// source: http://pastebin.com/m08dkDT4
host : [ 'themarker.com' , 'haaretz.co.il' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'AdBlockUtil' , {
enumerable : true ,
value : { }
} ) ;
}
} ,
pipocas _tv : {
// issue:
host : [ 'pipocas.tv' ] ,
onStart : function ( ) {
// Also added in disableAlertbox
// No popup
Aak . setCookie ( 'popup_user_login' , 'yes' ) ;
}
} ,
_15min _lt : {
// note: regulary update script
// issue: https://github.com/reek/anti-adblock-killer/issues?q=15min.it
// source: http://pastebin.com/YWf3HTqr
// test: http://tinyurl.com/h6c4336
host : [ '15min.lt' ] ,
onStart : function ( ) {
Object . defineProperty ( Aak . uw , 'ROUTE' , {
enumerable : true ,
writable : false ,
value : '_be_reklamos'
} ) ;
}
} ,
sc2casts _com : {
// by: Giwayume
// issue: https://github.com/reek/anti-adblock-killer/issues/1599
host : [ 'sc2casts.com' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
window . _gaq = { push : function ( ) { } } ;
Object . defineProperty ( window , "showdialog" , {
value : function ( ) { } ,
configurable : false ,
writable : false
} ) ;
Object . defineProperty ( window , "showPopup2" , {
value : function ( ) { } ,
configurable : false ,
writable : false
} ) ;
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
vgunetwork _com : {
// issue:
host : [ 'vgunetwork.com' ] ,
onIdle : function ( ) {
Aak . setCookie ( 'stopIt' , 1 ) ;
var close = Aak . getElement ( '#some_ad_block_key_close' ) ;
if ( close ) {
close . click ( ) ;
}
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
linkcrypt _ws : {
// issue: https://github.com/reek/anti-adblock-killer/issues/286
// issue: https://github.com/reek/anti-adblock-killer/pull/67
host : [ 'linkcrypt.ws' ] ,
onIdle : function ( ) {
Aak . setElement ( '#ad_cont' , {
id : '' ,
style : 'display:block;'
} ) ;
Aak . setElement ( '#container_check' , {
style : 'display:none;'
} ) ;
}
} ,
eventosppv _me : {
// issue:
host : [ 'eventosppv.me' ] ,
onIdle : function ( ) {
Aak . removeElement ( '#nf37' ) ;
}
} ,
bolor _toli _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/552
host : [ 'bolor-toli.com' ] ,
onEnd : function ( ) {
var ads = document . getElementsByClassName ( 'banner' ) ;
for ( var i = 0 ; i < ads . length ; i ++ ) {
var ad = ads [ i ] ;
ad . innerHTML = '<br>' ;
ad . style . height = '1px' ;
2017-05-24 06:14:33 +02:00
}
}
2017-05-27 06:01:52 +02:00
} ,
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 ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
luxyad _com : { // skip redirect myanimes.li
// issue:
host : [ 'luxyad.com' ] ,
onIdle : function ( ) {
if ( '/Information.php' == location . pathname ) {
var href = location . href ;
location . href = href . substr ( href . indexOf ( 'url=' ) + 4 , href . length ) ;
2017-05-24 06:14:33 +02:00
}
}
2017-05-27 06:01:52 +02:00
} ,
mrpiracy _domains : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1405
host : [ 'mrpiracy.xyz' , 'mrpiracy.club' ] ,
onBeforeScript : function ( ) {
return [ {
contains : 'Desativa o AdBlock para continuar' ,
external : false ,
remove : true
}
] ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
dbplanet _net : {
// issue: PM
host : [ 'dbplanet.net' ] ,
onStart : function ( ) {
Aak . setCookie ( 'newnoMoreAdsNow' , 1 ) ;
}
} ,
aidemu _fr : {
// issue:
host : [ 'aidemu.fr' ] ,
onStart : function ( ) {
Aak . setCookie ( 'adblockPopup' , true ) ;
}
} ,
eami _in : {
// issue:
host : [ 'eami.in' ] ,
onAlways : function ( ) {
Aak . setCookie ( 'ad_locked' , 1 ) ;
}
} ,
bigdownloader _com : {
// issue:
host : [ 'bigdownloader.com' ] ,
onIdle : function ( ) {
Aak . removeElement ( '#anti_adblock' ) ;
}
} ,
freeskier _com : {
// by: Gorhill
// issue: https://github.com/reek/anti-adblock-killer/issues/639
// note: also added list rule
host : [ 'freeskier.com' ] ,
onIdle : function ( ) {
var el = document . getElementById ( "adb-not-enabled" ) ;
if ( el !== null ) {
el . style . removeProperty ( "display" ) ;
}
el = document . getElementById ( "videoContainer" ) ;
if ( el !== null ) {
el . style . removeProperty ( "display" ) ;
}
}
} ,
gametrailers _com : {
// issue:
host : [ 'gametrailers.com' ] ,
onIdle : function ( ) {
Aak . removeElement ( '#ad_blocking' ) ;
}
} ,
scan _onepiece _naruto _mx : {
// issue: https://github.com/reek/anti-adblock-killer/issues/582
// issue: https://github.com/reek/anti-adblock-killer/issues/279
host : [ 'scan-mx.com' , 'onepiece-mx.net' , 'naruto-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' ] ,
onStart : function ( ) {
Aak . uw . claim = function ( ) {
return true ;
} ;
} ,
onIdle : function ( ) {
Aak . removeElement ( '#E33FCCcX2fW' ) ;
}
} ,
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: https://github.com/reek/anti-adblock-killer/issues/349
host : [ 'bitcoiner.net' , 'litecoiner.net' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#tester' ) ;
Aak . addBaitElement ( 'div#ad-top' ) ;
}
} ,
bitcoins _nx _tc : {
// issue:
host : [ 'freebitcoins.nx.tc' , 'getbitcoins.nx.tc' ] ,
onAlways : function ( ) {
Aak . uw . ad _block _test = function ( ) {
return false ;
} ;
}
} ,
freecoins4 _me : {
// issue:
host : [ 'freecoins4.me' ] ,
onAlways : function ( ) {
Aak . uw . check = function ( ) {
return false ;
} ;
}
} ,
torrent _tv _ru : {
// issue: https://github.com/reek/anti-adblock-killer/issues/537
host : [ 'torrent-tv.ru' ] ,
onAlways : function ( ) {
Aak . uw . c _Oo _Advert _Shown = true ;
}
} ,
cwtv _com : {
// by: Kalbasit
// pull: https://github.com/reek/anti-adblock-killer/pull/763
// issue: https://github.com/reek/anti-adblock-killer/issues/340
// issue: https://github.com/reek/anti-adblock-killer/issues/762
host : [ 'cwtv.com' ] ,
onAlways : function ( ) {
Aak . uw . CWTVIsAdBlocking = undefined ;
}
} ,
bild _de : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=bild
host : [ 'bild.de' ] ,
onBeforeScript : function ( ) {
return [ {
contains : 'http://www.bild.de/wa/ll/bild-de/unangemeldet-42925516.bild.html' ,
external : false ,
replace : [ 'javascript' , 'void(0);' ] . join ( ':' )
}
] ;
}
} ,
inn _co _il : {
// issue: https://github.com/reek/anti-adblock-killer/issues/532
host : [ 'inn.co.il' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
var TRC = { } ;
TRC . blocker = {
states : {
ABP _DETECTION _DISABLED : - 2 ,
ABP _NOT _DETECTED : 0 ,
ABP _DETECTED : 1
} ,
createBlockDetectionDiv : function ( ) {
return document . createElement ( "div" ) ;
} ,
isBlockDetectedOnDiv : function ( ) {
return 0 ;
} ,
isBlockDetectedOnClassNames : function ( ) {
return 0 ;
} ,
getBlockedState : function ( ) {
return 0 ;
}
} ;
} ) ;
}
} ,
bhaskar _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=bhaskar
// issue: https://github.com/reek/anti-adblock-killer/issues?q=divyabhaskar.co.in
host : [ 'bhaskar.com' , 'divyabhaskar.co.in' ] ,
onAlways : function ( ) {
Aak . uw . openPopUpForBreakPage = function ( ) { } ;
Aak . uw . canABP = true ;
Aak . uw . canRunAds = true ;
Aak . uw . canCheckAds = true ;
}
} ,
turkanime _tv : {
// issue: https://github.com/reek/anti-adblock-killer/issues/446
// issue: https://github.com/reek/anti-adblock-killer/issues/139
// issue: https://greasyfork.org/tr/forum/discussion/4282/
host : [ 'turkanime.tv' ] ,
onAlways : function ( ) {
Aak . uw . adblockblock = function ( ) { } ;
Aak . uw . BlokKontrol = { } ;
}
} ,
wtfbit _ch : {
// issue: https://github.com/reek/anti-adblock-killer/issues/407
host : [ 'wtfbit.ch' ] ,
onAlways : function ( ) {
Aak . uw . writeHTMLasJS = function ( ) { } ;
}
} ,
aranzulla _it : {
// by: Robotex
// issue: https://github.com/reek/anti-adblock-killer/issues?q=aranzulla.it
// source: http://pastebin.com/yMM6YgxW
host : [ 'aranzulla.it' ] ,
onStart : function ( ) {
Aak . addStyle ( '#abt1 + STYLE + div[id][class] {display:none;}' ) ;
} ,
onBeforeScript : function ( ) {
return [ {
contains : 'navigator.userAgent||navigator.vendor||window.opera' ,
external : false ,
remove : true
}
] ;
}
} ,
ndtv _com : {
// note: canRunAds inverted value
// issue: https://github.com/reek/anti-adblock-killer/issues?q=ndtv.com
// test: http://tinyurl.com/hcfncdv
host : [ 'ndtv.com' ] ,
onStart : function ( ) {
Aak . setReadOnly ( '___p__p' , 1 ) ;
Aak . setReadOnly ( 'getNoTopLatestNews' , function ( ) { } ) ;
}
} ,
lesechos _fr : {
// Reek, Giwayume
// issue: https://github.com/reek/anti-adblock-killer/issues?q=lesechos.fr
// source: http://pastebin.com/CMM8WGLj
host : [ 'lesechos.fr' , 'lesechos.com' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
Object . defineProperty ( window , "checkAdBlock" , {
value : function ( ) { } ,
configurable : false ,
writable : false
} ) ;
} ) ;
} ,
onAlways : function ( ) {
Aak . uw . call _Ad = 1 ;
Aak . uw . paywall _adblock _article = function ( ) { } ;
}
} ,
bitvisits _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/266
host : [ 'bitvisits.com' ] ,
onAlways : function ( ) {
Aak . uw . blockAdblockUser = function ( ) { } ;
}
} ,
exrapidleech _info : {
// by: Alexander255, Reek, Giwayume
// patch: http://pastebin.com/Q664diQ2
// issue: https://github.com/reek/anti-adblock-killer/issues?q=exrapidleech
// source: http://pastebin.com/5e27syjA
host : [ 'exrapidleech.info' ] ,
onStart : function ( ) {
var tomorrow = new Date ( ) ;
tomorrow . setDate ( tomorrow . getDate ( ) + 1 ) ;
// prevent popup
Aak . setCookie ( 'popcashpuCap' , 1 ) ;
Aak . setCookie ( 'popcashpu' , 1 ) ;
Aak . setCookie ( 'nopopatall' , tomorrow . getTime ( ) . toString ( ) ) ;
Aak . setCookie ( 'noadvtday' , 0 ) ;
//Aak.setCookie('bv_DSKskdck_s1d', 'bvDSKskdcks1d');
// hide notice
Aak . addStyle ( 'div.alert.alert-danger.lead {opacity:0;}' ) ;
// prevent redirect to verify page
Aak . setReadOnly ( 'bdvbnr_pid' , [ ] ) ;
Aak . setReadOnly ( 'PopAds' , 1 ) ;
Aak . addScript ( function ( ) {
( function ( ) {
// prevent popup
window . open = function ( ) { } ;
// prevent redirect to verify page
var frame1 = document . createElement ( 'iframe' ) ;
frame1 . src = 'http://bdfrm.bidvertiser.com/BidVertiser.dbm?pid=383865&bid=1737418&RD=' ;
frame1 . id = 'bdvi' ;
frame1 . style = 'display:none' ;
document . documentElement . appendChild ( frame1 ) ;
} ) ( ) ;
} ) ;
}
} ,
vipleague _domains : {
// note: also killed by AakList
// issue: https://github.com/reek/anti-adblock-killer/issues?q=vipbox
// issue: https://github.com/reek/anti-adblock-killer/issues?q=vipleague
// source: http://pastebin.com/NERVzHzS
host : [ "vipleague.is" , "vipleague.ws" , "vipleague.tv" , "vipleague.se" , "vipleague.tv" , "vipleague.me" , "vipleague.mobi" , "vipleague.co" , "vipleague.sx" , "vipleague.ch" , "vipbox.tv" , "vipbox.co" , "vipbox.biz" , "vipbox.sx" , "vipbox.eu" , "vipbox.so" , "vipbox.nu" , "vipboxsa.co" , "strikeout.co" , "strikeout.me" , "homerun.re" , "vipboxtv.co" , "vipapp.me" ] ,
onStart : function ( ) {
Aak . uw . iExist = true ;
Aak . setCookie ( 'xclsvip' , 1 ) ;
Aak . addStyle ( ".vip_052x003 { height: 250px; }" ) ;
Aak . addStyle ( ".vip_09x827 { height: 26px; }" ) ;
Aak . addStyle ( "#overlay { display: none; }" ) ;
}
} ,
zoomtv _me : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=zoomtv.me
// source: http://pastebin.com/m4zAXGcw
host : [ 'zoomtv.me' ] ,
onAlways : function ( ) {
Aak . uw . iaxpEnabled = true ;
}
} ,
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 ( ) { } ;
}
} ,
pornve _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/947
// source: http://pastebin.com/7TPPkq12
host : [ 'pornve.com' ] ,
onAlways : function ( ) {
Aak . uw . adxjwupdate = 1 ;
}
} ,
lol _moa _tw : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1114
host : [ 'lol.moa.tw' ] ,
onIdle : function ( ) {
Aak . addScript ( function ( ) {
var MoaObj = MoaObj || { } ;
MoaObj . ad = MoaObj . ad || { } ;
MoaObj . ad . hasAdblock = function ( ) {
return false ;
} ;
MoaObj . ad . checkABP = function ( ) {
return false ;
} ;
} ) ;
}
} ,
multiup _org : {
// by: Watilin
// note: alternative solution
// issue: https://github.com/reek/anti-adblock-killer/issues?q=multiup.org
host : [ 'multiup.org' ] ,
onStart : function ( ) {
Aak . setCookie ( 'visit' , 1 ) ; // prevent popup
Aak . setReadOnly ( 'hi' , function ( ) { } ) ;
}
} ,
dailybitcoins _org : {
// issue: https://github.com/reek/anti-adblock-killer/issues/107
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 ) ;
}
} ,
spankwire _sites : {
// issue: https://github.com/reek/anti-adblock-killer/issues/887
// source: http://pastebin.com/TFB1dtgb
host : [ 'spankwire.com' , 'keezmovies.com' , 'extremetube.com' , 'mofosex.com' ] ,
onStart : function ( ) {
Aak . setCookie ( "abClosed" , "true" ) ;
Aak . setCookie ( "hide_ad_msg" , "1" ) ;
}
} ,
youporn _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues/887
// source: http://pastebin.com/TFB1dtgb
host : [ 'youporn.com' , 'youporngay.com' ] ,
onStart : function ( ) {
Aak . setCookie ( "adblock_message" , "closed" ) ;
}
} ,
citationmachine _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=citationmachine.net
host : [ 'citationmachine.net' ] ,
onStart : function ( ) {
Aak . setCookie ( "sbm_cm_citations" , 0 ) ;
}
} ,
psarips _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/153
host : [ 'psarips.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#advert' ) ;
}
} ,
extratorrent _domains : {
host : [ 'extratorrent.cc' , 'extratorrent.com' ] ,
onStart : function ( ) {
// prevent popup
// source 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 . addBaitElement ( 'div#banner' ) ;
} else { // Website
// Solution 1
Aak . addBaitElement ( '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' : ''
} ) ;
}
} ,
megadebrid _eu : {
host : [ 'mega-debrid.eu' ] ,
onEnd : function ( ) {
// Activate button debrid
Aak . setElement ( '.realbutton' , {
'onclick' : '' ,
'type' : 'submit'
} ) ;
}
} ,
slideplayer _domains : {
// by: Alexander255
// issue: https://github.com/reek/anti-adblock-killer/issues/1333
// issue: https://github.com/reek/anti-adblock-killer/issues/515
// issue: https://github.com/reek/anti-adblock-killer/issues/296
// demo: http://slideplayer.fr/slide/1304026/#
host : [ 'slideplayer.*' ] ,
onEnd : function ( ) {
// Disable anti-adblocker
Aak . uw . force _remove _ads = true ;
// Circumvent "share to download" rule
Aak . addScript ( function ( ) {
var slide _id = window . 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 ( window . strtr ( window . 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 ;
}
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
}
} ,
bokepspot _com : {
host : [ 'bokepspot.com' ] ,
onStart : function ( ) {
// Hide Disclaimer
Aak . setCookie ( 'hideDialog' , 'hide' ) ;
} ,
onIdle : function ( ) {
// Remove Disable AdBlock
Aak . removeElement ( '#tupiklan' ) ;
}
} ,
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]' ) ;
}
}
} ,
monnsutogatya _com : {
// issue: PM
// source: http://pastebin.com/1Lw60h6k
host : [ 'monnsutogatya.com' ] ,
onIdle : function ( ) {
Aak . addStyle ( "#site-box {display:block;}" ) ;
Aak . removeElement ( '#for-ad-blocker' ) ;
}
} ,
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' ) ;
}
} ,
filmovizija _domains : {
host : [ 'filmovizija.me' , 'filmovizija.com' , 'filmovizija.in' , 'filmovizija.net' ] ,
onIdle : function ( ) {
/ *
var d = new Date ( ) ;
var weekday = [ "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" ] ;
var n = weekday [ d . getDay ( ) ] ;
Aak . setElement ( '#' + n , {
html : ''
2017-05-24 06:14:33 +02:00
} ) ;
2017-05-27 06:01:52 +02:00
Aak . removeElement ( '#' + n ) ;
* /
}
} ,
hackintosh _zone : {
// by: Alexander255
// issue: https://github.com/reek/anti-adblock-killer/issues?q=hackintosh.zone
// source: http://paste2.org/DnB9Oj4f
host : [ 'hackintosh.zone' ] ,
onIdle : function ( ) {
var head = document . getElementsByTagName ( "head" ) [ 0 ] ;
// Fake Google ad frame content
var ad1 = document . createElement ( "ins" ) ;
ad1 . className = "adsbygoogle" ;
ad1 . appendChild ( document . createTextNode ( "AAK" ) ) ;
head . insertBefore ( ad1 , head . childNodes [ 0 ] ) ;
/ *
// Fake CleanMyMac ad frame size
var ad2 = document . createElement ( "div" ) ;
ad2 . id = "nycuhevgqi" ;
Object . defineProperty ( ad2 . wrappedJSObject , 'clientHeight' , { value : 1 } ) ;
head . insertBefore ( ad2 , head . childNodes [ 0 ] ) ;
* /
var elems = document . querySelectorAll ( '.adsensegrey' ) ;
for ( var i = 0 ; i < elems . length ; i ++ ) {
var node = document . createElement ( "img" ) ;
node . src = Aak . imgBait ;
elems [ i ] . appendChild ( node ) ;
}
} ,
onBeforeScript : function ( ) {
return [ {
contains : 'disable ADBlock completely' ,
external : false ,
remove : true
}
] ;
}
} ,
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 ;
}
} ,
onmeda _de : {
// note: script obfuscated line 1110
// issue: https://greasyfork.org/forum/discussion/8576
// issue: https://github.com/reek/anti-adblock-killer/issues/1067
// source: http://pastebin.com/qf46bN3z
// source: http://pastebin.com/RwHyF0NL
host : [ 'onmeda.de' ] ,
onAlways : function ( ) {
Aak . uw . $ADP = true ;
Aak . uw . sas _callAd = function ( ) { } ;
Aak . uw . sas _callAds = function ( ) { } ;
}
} ,
turbodebrideur _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/599
// issue: https://github.com/reek/anti-adblock-killer/issues/563
// issue: https://github.com/reek/anti-adblock-killer/issues/526
host : [ 'turbodebrideur.com' ] ,
onIdle : function ( ) {
Aak . createElement ( {
tag : 'div' ,
id : 'pubdirecte' ,
html : '<img src="' + Aak . imgBait + '"/><a href="#"> </a>' ,
append : 'body'
2017-05-24 06:14:33 +02:00
} ) ;
2017-05-27 06:01:52 +02:00
}
} ,
rockfile _eu : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1256
host : [ 'rockfile.eu' ] ,
onIdle : function ( ) {
Aak . createElement ( {
tag : 'iframe' ,
src : 'about:blank' ,
style : 'visibility:hidden;' ,
append : 'body'
2017-05-24 06:14:33 +02:00
} ) ;
2017-05-27 06:01:52 +02:00
}
} ,
linkbucks _antiadblock : {
// issue: https://github.com/reek/anti-adblock-killer/issues/932
// issue: https://github.com/reek/anti-adblock-killer/issues/469
// issue: https://github.com/reek/anti-adblock-killer/issues/277
// v3: http://pastebin.com/0gh8LMGH
// note: no solution, anti-adblock difficult to bypass --> http://pastebin.com/1NRq7WvZ
host : [ 'linkbucks.com' , 'miniurls.co' , 'picbucks.com' , 'picturesetc.net' , 'placepictures.com' , 'poontown.net' , 'qqc.co' , 'qvvo.com' , 'realfiles.net' , 'rqq.co' , 'seriousdeals.net' , 'seriousfiles.com' , 'seriousurls.com' , 'sexpalace.gs' , 'theseblogs.com' , 'thesefiles.com' , 'theseforums.com' , 'thosegalleries.com' , 'tinybucks.net' , 'tinylinks.co' , 'tnabucks.com' , 'tubeviral.com' , 'uberpicz.com' , 'ubervidz.com' , 'ubucks.net' , 'ugalleries.net' , 'ultrafiles.net' , 'urlbeat.net' , 'urlpulse.net' , 'whackyvidz.com' , 'youfap.me' , 'yyv.co' , 'zxxo.net' , 'zff.co' , 'linkbucksdns.co' , 'miniurls.com' , 'dyo.gs' , 'goneviral.com' , 'eafyfsuh.net' , 'sasontnwc.net' ] ,
onStart : function ( ) {
// do nothing...
}
} ,
linkbucks _visitscript : {
// issue:
host : [ 'referencemega.com' , 'fpabd.com' , 'crackacc.com' ] ,
onStart : function ( ) {
// Skip visitScript when site use CloudFlare Rocket Script
Aak . setCookie ( '_lbGatePassed' , true ) ;
}
} ,
link _tl : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=link.tl
// issue: https://greasyfork.org/fr/forum/discussion/8437
// source: http://pastebin.com/1MkCnmL7
host : [ 'link.tl' ] ,
onStart : function ( ) {
Aak . addStyle ( '.adblock { height:1px; }' ) ;
Aak . uw . adblocker = false ;
}
} ,
wstream _video : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1382
// source: http://pastebin.com/EiARVQXt
host : [ 'wstream.video' ] ,
onStart : function ( ) {
Aak . addStyle ( '#adiv { height:4px; }' ) ;
}
} ,
_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' ;
}
} ,
bakersfield _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/657
// note: also solution to AakList
host : [ 'bakersfield.com' ] ,
onAlways : function ( ) {
Aak . uw . AD _SLOT _RENDERED = true ;
}
} ,
ekstrabladet _dk : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=ekstrabladet
// source: http://pastebin.com/R029XpCr
host : [ 'ekstrabladet.dk' , 'eb.dk' ] ,
onAlways : function ( ) {
Aak . uw . ADTECH = { } ;
}
} ,
pcgames _download _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1451
// issue: https://greasyfork.org/forum/discussion/9328
// source: http://pastebin.com/EBVZg3VB
host : [ 'pcgames-download.net' ] ,
onAlways : function ( ) {
Aak . setCookie ( 'noAdblockNiceMessage' , 1 ) ;
Aak . uw . mgCanLoad30547 = true ;
}
} ,
lachainemeteo _com : {
// note: also killed by AakList
// issue: https://github.com/reek/anti-adblock-killer/issues/590
// issue: https://github.com/reek/anti-adblock-killer/issues/245
// issue: https://github.com/reek/anti-adblock-killer/issues/215
host : [ 'lachainemeteo.com' ] ,
onAlways : function ( ) {
Aak . uw . js _loaded = true ;
}
} ,
mac4ever _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/997
// source: http://pastebin.com/RQnCEYK6
host : [ 'mac4ever.com' ] ,
onAlways : function ( ) {
Aak . uw . coquinou = function ( ) { } ;
}
} ,
_5278bbs _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=5278bbs.com
host : [ '5278bbs.com' ] ,
onAlways : function ( ) {
Aak . uw . myaabpfun12 = function ( ) { } ;
}
} ,
thesimsresource _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=thesimsresource.com
// source: http://pastebin.com/DE9rbjxY
host : [ 'thesimsresource.com' ] ,
onAlways : function ( ) {
Aak . uw . gadsize = true ;
Aak . uw . iHaveLoadedAds = true ;
}
} ,
yellowbridge _com : {
host : [ 'yellowbridge.com' ] ,
onAlways : function ( ) {
Aak . uw . finalizePage = function ( ) {
return ;
} ;
}
} ,
game _debate _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1366
// source: http://pastebin.com/UzsiX0FK
host : [ 'game-debate.com' ] ,
onAlways : function ( ) {
Aak . uw . ad _block _test = function ( ) { } ;
}
} ,
adscendmedia : {
host : [ 'adscendmedia.com' ] ,
onStart : function ( ) {
// adscendmedia - https://www.adscendmedia.com/
var ref = document . createElement ( 'a' ) . 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 . detected ( 'Adscendmedia' , ref . host , host ) ;
// Notification
Aak . notification ( 'You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak . subscribeURL + '" target="_blank">Subscribe</a>' ) ;
}
}
} ,
adworkmedia : {
host : [ 'adworkmedia.com' , 'loxtk.com' , 'contentlockingnetworks.com' ] ,
onStart : function ( ) {
// AdWorkMedia - https://www.adworkmedia.com/
var ref = document . createElement ( 'a' ) . 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 . info ( 'Adworkmedia' , ref . host , host ) ;
// Notification
Aak . notification ( 'You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak . subscribeURL + '" target="_blank">Subscribe</a>' ) ;
}
}
} ,
// --------------------------------------------------------------------------------------------
// 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' , 'kissanime.to' ] ,
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 . info ( 'Solution 2' ) ;
} //Solution 3
else if ( divContentVideo ) {
var divDownload = document . querySelector ( '#divDownload' ) . cloneNode ( true ) ;
setTimeout ( function ( ) {
divContentVideo . innerHTML = '' ;
Aak . uw . DoHideFake ( ) ;
divContentVideo . appendChild ( divDownload ) ;
Aak . removeElement ( 'iframe[id^="adsIfrme"], .divCloseBut' ) ;
Aak . info ( '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"]' ) ;
}
} ,
openload _domains : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=openload
host : [ 'openload.co' , 'openload.io' , 'openload.tv' ] ,
onStart : function ( ) {
Aak . uw . adblock = false ;
Aak . uw . adblock2 = false ;
Aak . uw . popAdsLoaded = true ;
// hide fake play button used to open popunder
//Aak.addStyle('#videooverlay { display:none; }')
}
} ,
youwatch _org : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=youwatch
// test: http://youwatch.org/embed-59p7i3cdkse0-453x320.html
// test: http://youwatch.org/59p7i3cdkse0
host : [ 'youwatch.org' , 'chouhaa.info' , 'ahzahg6ohb.com' , 'ahzahg6ohb.com' ] ,
onStart : function ( ) {
// skip anti-adblock
Aak . uw . adsShowPopup1 = 1 ;
} ,
onIdle : function ( ) {
// renove ads + fake play button
Aak . removeElement ( '#player_imj, #player_imj + div[id]' ) ;
}
} ,
exashare _com : {
// by: Watilin
// pull: https://github.com/reek/anti-adblock-killer/pull/519
// issue: https://github.com/reek/anti-adblock-killer/issues?q=exashare.com
// test: http://exashare.com/galw2ge2kzsv
host : [ 'exashare.com' , 'chefti.info' , 'bojem3a.info' , 'ajihezo.info' , 'yahmaib3ai.com' , 'yahmaib3ai.com' ] ,
onStart : function ( ) {
// skip anti-adblock
Aak . uw . adsShowPopup1 = 1 ;
} ,
onIdle : function ( ) {
// renove ads + fake play button
Aak . removeElement ( '#player_gaz, #player_gaz + div[id]' ) ;
}
} ,
an1me _se : {
// issue: https://github.com/reek/anti-adblock-killer/issues/190
host : [ 'an1me.se' ] ,
onIdle : function ( ) {
setTimeout ( function ( ) {
Aak . uw . isBlockAds2 = false ;
} , 10000 ) ;
}
} ,
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 : {
// Note: disable EasyPrivacy
// issue: https://github.com/reek/anti-adblock-killer/issues/956
// issue: https://github.com/reek/anti-adblock-killer/issues/905
// issue: https://github.com/reek/anti-adblock-killer/issues/300
host : [ 'biztok.pl' , 'wp.tv' , 'wp.pl' , 'sportowefakty.pl' , 'kafeteria.tv' , 'kafeteria.pl' , '.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' , 'abczdrowie.pl' , 'gadzetomania.pl' , 'autokult.pl' , 'komorkomania.pl' ] ,
onStart : function ( ) {
// prevent popup anti-adblock from abczdrowie.pl
Aak . setCookie ( 'ABCABC' , true ) ;
} ,
onIdle : function ( ) {
Aak . hasElement ( '.wp-player' , function ( ) {
var replacePlayerWP = function ( mid , player ) {
/ * R e q u e s t
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
https : //wp.tv/player/mid,1747117,embed.json
* /
Aak . request ( {
url : 'http://wp.tv/player/mid,' + mid + ',embed.json' ,
onload : function ( result ) {
var res = result . responseText ;
var obj = JSON . parse ( res ) ;
Aak . log ( obj ) ;
var Player = new Aak . player ( ) ;
Player . videojs ( player , {
source : Aak . fixProtocolURL ( obj . clip . url [ 1 ] . url ) , // HD
type : 'mp4' ,
autoplay : false
} ) ;
}
} ) ;
} ;
var replacePlayerWrzuta = function ( key , channel , elem ) {
Aak . request ( {
// http://www.wrzuta.pl/npp/embed/wolnapolska2/0I0HQ2mutJc
url : 'http://www.wrzuta.pl/npp/embed/' + channel + '/' + key ,
onload : function ( result ) {
var res = result . responseText ;
var obj = JSON . parse ( res ) ;
Aak . log ( obj ) ;
var Player = new Aak . player ( ) ;
Player . videojs ( elem , {
source : Aak . fixProtocolURL ( obj . url [ 0 ] . url ) , //HD
type : 'mp4' ,
autoplay : false
} ) ;
}
} ) ;
} ;
// 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 mid = null ;
var player = players [ i ] ;
var parent = player . parentNode ;
var script = player . previousSibling ;
var title = player . querySelector ( '.titleCont a.title' ) ;
var embedvideos = document . querySelectorAll ( 'script[src*="/embed_video.js"]' ) ;
Aak . log ( player , parent , script , title ) ;
if ( embedvideos . length ) {
// pudelek.wrzuta.pl: http://tinyurl.com/l8jo5v2
// pudelek.tv: http://tinyurl.com/klyzh6r, http://tinyurl.com/z7fr89v
// pudelek.tv (triple): http://tinyurl.com/n9b27o2
// film.wp.pl: http://tinyurl.com/q7k5bxp
var embedvideo = embedvideos [ i ] ;
var key = /key=(\w+)/ . exec ( embedvideo . src ) [ 1 ] ;
var channel = /login=(\w+)/ . exec ( embedvideo . src ) [ 1 ] ;
var autostart = /autoplay/ . test ( embedvideo . src ) ;
replacePlayerWrzuta ( key , channel , player , autostart ) ;
Aak . log ( 'embed_video.js' ) ;
} else if ( title && /mid/ . test ( title . href ) ) {
// sportowefakty.pl: http://tinyurl.com/l6zabcx
mid = title . href . match ( /mid[=,]([0-9]+)/ ) ;
Aak . log ( 'title.href' ) ;
} else if ( parent . id ) {
if ( parent . dataset . url ) {
// wp.tv: http://tinyurl.com/pzde29t
mid = parent . dataset . url . match ( /mid[=,]([0-9]+)/ ) ;
Aak . log ( 'parent.dataset.url' ) ;
} else {
if ( parent . previousSibling . innerHTML ) {
// wiadomosci.wp.pl: http://tinyurl.com/gqtt9ca
mid = parent . previousSibling . innerHTML . match ( /mid[=,]([0-9]+)/ ) ;
Aak . log ( 'script.inline.innerHTML' ) ;
} else {
// kafeteria.tv: http://tinyurl.com/nofp58a
// abczdrowie.pl: http://tinyurl.com/hx6s5et
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
mid = script . innerHTML . match ( /mid[=,]([0-9]+)/ ) ;
Aak . log ( 'script.src.innerHTML' ) ;
}
if ( mid !== null && mid . length == 2 ) {
replacePlayerWP ( mid [ 1 ] , player ) ;
}
}
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
moje _filmy _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1010
// source: http://pastebin.com/7G2RBnqq
host : [ 'moje-filmy.tk' , 'moje-filmy.live' ] ,
onIdle : function ( ) {
var searchvalue = [ 'var playerInstance' , '});' ] ;
var script = Aak . hasScript ( searchvalue [ 0 ] ) ;
if ( script ) {
var source = script . innerHTML ;
var str = source . substring ( source . lastIndexOf ( searchvalue [ 0 ] ) , source . lastIndexOf ( searchvalue [ 1 ] ) + searchvalue [ 1 ] . length ) ;
Aak . addScript ( str ) ;
}
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
tvn _pl : {
// by: Reek, Marek
// solution: http://tinyurl.com/ohbvz4r, http://tinyurl.com/jq8s462
// issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn.pl
// issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn24.pl
// issue: https://github.com/reek/anti-adblock-killer/issues?q=player.pl
// test: http://tinyurl.com/o6d9h66, http://tinyurl.com/z77m4zh
host : [ 'tvn.pl' , 'tvn24.pl' , 'player.pl' ] ,
onEnd : function ( ) {
Aak . hasElement ( 'header.detailImage' , function ( thisElement ) {
if ( Aak . getCookie ( 'country_code' ) && Aak . getSession ( 'generateToken' ) ) {
var parts = document . location . href . split ( /[.,]/ ) ;
var id = parts [ parts . length - 2 ] ;
var params = {
platform : "Mobile" ,
terminal : "Android" ,
format : "json" ,
v : "2.0" ,
authKey : "b4bc971840de63d105b3166403aa1bea" ,
type : "episode" ,
id : id ,
sort : "newest" ,
m : "getItem" ,
deviceScreenHeight : 1600 ,
deviceScreenWidth : 2560
} ;
var api = 'https://api.tvnplayer.pl/api/?' + Aak . serialize ( params ) ;
var proxy = 'http://www.proxy.xmc.pl/index.php?hl=3e5&q=' ;
// Get videoUrl
Aak . request ( {
url : Aak . getCookie ( 'country_code' ) != 'PL' ? proxy + Aak . encodeURI ( api ) : api ,
headers : {
"User-Agent" : "Mozilla/5.0 (Linux; U; Android 4.2; en-us; Nexus 10 Build/JVP15I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
} ,
onload : function ( result ) {
var res = result . responseText ;
Aak . log ( res ) ;
var o = JSON . parse ( res ) ;
var videoUrl = o . item . videos . main . video _content [ Number ( Aak . opts . videoHD ) ] . url ;
var generateToken = new Function ( 'videoUrl' , Aak . getSession ( 'generateToken' ) ) ;
var videoUrlWithSeed = generateToken ( videoUrl ) ;
var Player = new Aak . player ( ) ;
Player . videojs ( thisElement , {
source : videoUrlWithSeed ,
type : 'mp4' ,
autoplay : false
} , { } , { insert : 'inner' } ) ;
}
} ) ;
} else {
Aak . request ( { // get and store generateToken function
url : 'http://pastebin.com/raw/D9qM4DR3' ,
onload : function ( response ) {
var res = response . responseText ;
Aak . setSession ( 'generateToken' , res ) ;
Aak . request ( { // get user ip
url : 'http://ip-api.com/json' ,
onload : function ( response ) {
var res = response . responseText ;
var json = JSON . parse ( res ) ;
Aak . setCookie ( 'country_code' , json . countryCode ) ;
Aak . refresh ( ) ;
}
} ) ;
}
} ) ;
}
} ) ;
}
} ,
ipla _tv : {
// by: Marek
// solution: http://tinyurl.com/ptb4ybg
// issue. https://github.com/reek/anti-adblock-killer/issues/522
// test: http://tinyurl.com/hz7gpxx
host : [ 'ipla.tv' ] ,
onIdle : function ( ) {
Aak . addStyle ( '.html5-player-wrapper { display:none; }' ) ; // chrome/opera
var oldPlayer = document . querySelector ( '.html5-player-wrapper, #vod-player' ) ;
Aak . request ( {
url : '/VOD/play-in-ipla/' + location . href . match ( /\/vod-(\d+)/ ) [ 1 ] ,
onload : function ( result ) {
var videoURL ;
var res = result . responseText ;
var idn = res . match ( /ipla:\/\/playvod-1\|([a-z0-9]+)/ ) [ 1 ] ;
Aak . 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 ) ;
Aak . log ( o ) ;
if ( o . vod . video _hd ) {
videoURL = o . vod . video _hd ;
} else if ( o . vod . video ) {
videoURL = o . vod . video ;
} else {
videoURL = o . vod . copies [ 0 ] . url ;
}
var Player = new Aak . player ( ) ;
Player . videojs ( oldPlayer , {
source : videoURL ,
type : 'mp4' ,
width : 820 ,
height : 450 ,
autoplay : false
} ) ;
}
} ) ;
}
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
koscian _net : {
// issue: https://github.com/reek/anti-adblock-killer/issues/914
// source: http://pastebin.com/yGSPBRqe
host : [ 'koscian.net' ] ,
onIdle : function ( ) {
var elems = document . querySelectorAll ( '.ban' ) ;
for ( var i = 0 ; i < elems . length ; i ++ ) {
elems [ i ] . remove ( ) ;
//elems[i].innerHTML = '<br>';
}
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
// France
playtv _fr : { // research solution
host : [ 'play.tv' , 'playtv.fr' ] ,
onAlways : function ( ) { } ,
onEnd : function ( ) { }
} ,
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"
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
Aak . uw . swfobject . embedSWF ( "/swf/RMCLIVE.swf" , "liveplayer" , "70" , "90" , "10.0.0" , "" , flashvars , params ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
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 = '<iframe frameborder="0" width="812" height="500" src="http://www.dailymotion.com/embed/video/' + videoId + '?logo=0&autoPlay=1&autoMute=0"></iframe>' ;
} , 1000 ) ;
}
}
} ,
m6web _fr : {
// issue: https://github.com/reek/anti-adblock-killer/issues/461
// test: http://tinyurl.com/ptn2vrl
host : [ 'm6web.fr' ] ,
onEnd : function ( ) {
var player = document . querySelector ( 'object[id$="_flash_api"]' ) ;
var script = Aak . hasScript ( 'M6.Player.config' ) ;
if ( player !== null && script !== null ) {
var found = script . innerHTML . match ( /M6.Player.config = (\{.+\});/ ) ;
var config = JSON . parse ( found . pop ( ) ) ;
// Replace player
var Player = new Aak . player ( ) ;
Player . videojs ( player . parentNode , {
source : config . sources [ 1 ] . src ,
type : 'mp4' ,
autoplay : false
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
}
}
} ,
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
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 ( ) {
/ *
var Player = new Aak . player ( ) ;
Player . editing ( '#videoplayer' , {
unsetFlashvars : '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'
} ) ;
* /
}
} ,
rtl _de : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1541
// test: http://tinyurl.com/h7ccvqq
host : [ 'rtl.de' ] ,
onIdle : function ( ) {
Array . prototype . slice . call ( document . querySelectorAll ( 'div[data-widget="video"]' ) ) . map ( function ( video ) {
var cfg = Aak . intoObject ( video . dataset . playerLayerCfg ) ;
var file = cfg . videoinfo . mp4url ;
Aak . log ( video , cfg , file ) ;
// Replace player
var Player = new Aak . player ( ) ;
Player . videojs ( video , {
source : file ,
type : 'mp4' ,
autoplay : false
} ) ;
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
myspass _de : {
// issue: https://github.com/reek/anti-adblock-killer/issues/76
// test: http://tinyurl.com/lto9pyd
host : [ 'myspass.de' ] ,
onIdle : function ( ) {
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 window . 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
var Player = new Aak . player ( ) ;
Player . videojs ( '#player' , {
source : file ,
type : 'mp4' ,
autoplay : false
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
}
} ) ;
}
}
} ,
// Nederland
rtlxl _nl : {
// test: http://tinyurl.com/l2zkv3d
host : [ 'rtlxl.nl' , 'rtlnieuws.nl' ] ,
onEnd : function ( ) {
var Player = new Aak . player ( ) ;
Player . editing ( '#_rtlosmf0' , {
setFlashvars : {
adblock : false
}
} ) ;
}
} ,
// Norway
vgtv _network : {
// note: skip video ads + anti-adblock
// jwplayer: http://tinyurl.com/zyv79hg
// issue: https://github.com/reek/anti-adblock-killer/issues/1402
// issue: https://github.com/reek/anti-adblock-killer/issues/367
// test: http://tinyurl.com/nwp85t, http://tinyurl.com/nwp85t
host : [ 'vgtv.no' , 'vg.no' ] ,
onEnd : function ( ) {
var oldHash = null ;
var videoId = null ;
var videoIdRegex = /#\!\/video\/(\d+)\// ;
// check if the location hash changes
setInterval ( function ( ) {
var player = Aak . getElement ( '.video-player' ) ;
if ( player && location . hash != oldHash && videoIdRegex . test ( location . hash ) ) {
oldHash = location . hash ;
videoId = oldHash . match ( videoIdRegex ) [ 1 ] ;
/ *
var hlsurl = 'https://svpsecurehdvod-vh.akamaihd.net/i/2016/03/20160312_56e421f86af45_vg01/,1280_720_3500,960_540_1500,640_360_800,480_270_500,.mp4.csmil/master.m3u8' ;
console . log ( player )
// don't work with chrome
// player.innerHTML = '<div id="noAdPlayer">This text will be replaced with a player.</div>';
// can't load m3u8 4032 status code
//console.log(unsafeWindow.jwplayer)
Aak . request ( {
url : 'http://svp.vg.no/svp/api/v1/vgtv/assets/' + videoId + '?additional=settings|chapters|cuePoints|externalId|barrels|externalCategoryId|nextAsset&appName=vgtv-website' ,
onload : function ( result ) {
var res = result . responseText ;
var obj = JSON . parse ( res ) ;
Aak . log ( obj ) ;
// replace player
var Player = new Aak . player ( ) ;
Player . vlc ( player , {
source : obj . streamUrls . hls , // m3u8
type : 'hls' ,
autoplay : false
} ) ;
}
} , { } , {
insert : 'inner'
} ) ;
* /
}
} , 1e3 ) ;
}
} ,
mtg _radio : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1495
host : [ 'play.radio1.se' , 'play.bandit.se' , 'play.lugnafavoriter.com' , 'play.rixfm.se' ] ,
onEnd : function ( ) {
Aak . addScript ( function ( ) {
setTimeout ( function ( ) {
window . player _load _live ( window . stream _id ) ;
} , 1000 ) ;
} ) ;
}
} ,
dplay _network : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1463
host : [ 'dplay.com' , 'dplay.dk' , 'dplay.se' ] ,
onStart : function ( ) {
var date = new Date ( ) ;
date . setDate ( date . getDate ( ) + 365 ) ;
var timestamp = date . getTime ( ) . toString ( ) ;
var value = JSON . stringify ( {
"notificationSubmission" : "submitted" ,
"reportingExpiry" : timestamp ,
"notificationExpiry" : timestamp
} ) ;
Aak . setCookie ( 'dsc-adblock' , value ) ;
}
} ,
viasat _tv : {
// note: skip video ads + anti-adblock
// issue: https://github.com/reek/anti-adblock-killer/issues?q=tv3play
/* test: http:/ / www . tv3play . no / programmer / redningsskoyta hds / hls
http : //www.tv3play.dk/programmer/linse-og-didde-ekstra hds/hls
http : //www.tv3play.se/program/glamourama hds/hls
http : //www.tv6play.se/program/99-saker-man-maste-gora-innan-man-dor hds/hls
http : //www.tv8play.se/program/efterlyst--1 hds/hls
http : //www.tv10play.se/program/garpens-europa hds/hls
http : //tvplay.skaties.lv/parraides/tv3-zinas hds/hls
http : //play.tv3.lt/programos/beatos-virtuve rtmp/hls
http : //tv3play.tv3.ee/sisu/puhapaev-sepoga rtmp/hls */
host : [ 'tv3play.no' , 'tv3play.dk' , 'tv3play.se' , 'tv6play.se' , 'tv8play.se' , 'tv10play.se' , 'tvplay.skaties.lv' , 'play.tv3.lt' , 'tv3play.tv3.ee' ] ,
onIdle : function ( ) {
Aak . hasElement ( '#video-player' , function ( thisElement ) {
thisElement . id = '' ;
//var videoId = location.pathname.split('/').pop();
var videoId = thisElement . getAttribute ( 'data-video-id' ) ;
Aak . log ( thisElement , videoId ) ;
// get video sources
Aak . request ( {
url : 'http://playapi.mtgx.tv/v3/videos/stream/' + videoId ,
onload : function ( result ) {
var res = result . responseText ;
var obj = JSON . parse ( res ) ;
Aak . log ( obj ) ;
/ * I n n h o l d e t d u p r ø v e r å s e e r k u n t i l g j e n g e l i g f o r b r u k e r e i N o r g e
Programmet er blokeret for visning fra denne geografiske position .
Programą galite matyti tik jungdamiesi iš Lietuvos interneto tiekėjų tinklų * /
if ( obj . msg ) {
return thisElement . innerHTML = obj . msg ;
}
if ( location . host === 'tv3play.tv3.ee' ) {
var Player = new Aak . player ( ) ;
Player . grindplayer ( thisElement , {
source : obj . streams . medium ,
type : 'rtmp/mp4' ,
autoplay : true
} ) ;
} else {
// create video tag for new player
Aak . createElement ( {
tag : 'video' ,
id : 'noAdPlayer' ,
classid : 'video-js vjs-default-skin' ,
width : thisElement . clientWidth || 730 ,
height : thisElement . clientHeight || 410 ,
preload : 'auto' ,
controls : true ,
autoplay : true ,
replace : thisElement
} ) ;
// parse sources
var srcArray = [ ] ;
if ( obj . streams . high && obj . streams . high !== '' ) {
srcArray . push ( {
type : "video/mp4" , // mp4
src : obj . streams . high
} ) ;
} if ( obj . streams . hls && obj . streams . hls !== '' ) {
srcArray . push ( {
type : "application/x-mpegURL" , // m3u8
src : obj . streams . hls
} ) ;
} if ( obj . streams . medium && obj . streams . medium !== '' ) {
var type = obj . streams . medium . indexOf ( 'rtmp' ) === 0 ? 'rtmp/mp4' : 'application/f4m+xml' ;
srcArray . push ( {
type : type ,
src : obj . streams . medium
} ) ;
}
Aak . log ( srcArray , JSON . stringify ( srcArray ) ) ;
// initialize new player
Aak . addScript ( Aak . intoString ( function ( ) {
( function ( ) {
function onVjsReady ( ) {
if ( typeof window . videojs !== 'function' ) {
onVjsReady ( ) ;
} else {
window . videojs ( "noAdPlayer" ) . src ( /_SOURCES_/ ) ;
}
}
onVjsReady ( ) ;
} ) ( ) ;
} ) . replace ( "/_SOURCES_/" , JSON . stringify ( srcArray ) ) ) ;
}
}
} ) ;
} ) ;
}
} ,
// Russia
rutube _ru : { // research solution
/* test: http://rutube.ru/video/bd5f6047657f0bdcbfbb0edad2bb7c61/ */
host : [ 'rutube.ru' ] ,
onEnd : function ( ) {
Aak . hasElement ( '#rutubePlayerHolder' , function ( ) { //dmFyIG9wdHMgPSBBYWsuZ2V0RWxlbWVudCgiI29wdGlvbnMiKTsNCiAgICAgICAgICAgIHZhciBvID0gQWFrLmludG9PYmplY3Qob3B0cy5kYXRhc2V0LnZhbHVlKTsNCiAgICAgICAgICAgIHZhciBtM3U4VXJsID0gby52aWRlb19iYWxhbmNlci5tM3U4Ow0KICAgICAgICAgICAgY29uc29sZS5sb2cobTN1OFVybCk7DQoNCiAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOw0KICAgICAgICAgICAgUGxheWVyLnZpZGVvanMoJyNydXR1YmVQbGF5ZXJIb2xkZXInLCB7DQogICAgICAgICAgICAgICAgc291cmNlIDogbTN1OFVybCwNCiAgICAgICAgICAgICAgICB0eXBlIDogJ2hscycsDQogICAgICAgICAgICAgICAgLy9wcm94eTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBhdXRvcGxheSA6IHRydWUNCiAgICAgICAgICAgICAgfTsgKTs=
} ) ;
}
} ,
// Italy
rai _tv : { // research solution
host : [ 'rai.tv' ] ,
onStart : function ( ) { } ,
onIdle : function ( ) { }
} ,
// TV Stream
block _streams _tv : {
// note: redirect to http://block.streams.tv/
host : [ 'firstrow.co' , 'firstrows.ru' , 'firstrows.tv' , 'firstrows.org' , 'firstrows.co' , 'firstrows.biz' , 'firstrowus.eu' , 'firstrow1us.eu' , 'firstsrowsports.eu' , 'firstrowsportes.tv' , 'firstrowsportes.com' , 'justfirstrowsports.com' , 'hahasport.me' , 'wiziwig.ru' , 'wiziwig.sx' , 'wiziwig.to' , 'wiziwig.tv' , 'myp2p.biz' , 'myp2p.tv' , 'myp2p.la' , 'myp2p.ec' , 'myp2p.eu' , 'myp2p.sx' , 'myp2p.ws' , 'myp2p.com' , 'atdhe.ru' , 'atdhe.se' , 'atdhe.bz' , 'atdhe.top' , 'atdhe.to' , 'atdhe.me' , 'atdhe.mx' , ' atdhe.li' , 'atdhe.al' ] ,
onAlways : function ( ) {
Aak . setCookie ( "adb" , 1 ) ; // prevent anti-adblock
Aak . uw . open = function ( ) { } ; // prevent popup
Aak . addStyle ( "#bannerInCenter, #hiddenBannerCanvas { display: none; }" ) ; // hide ads
}
} ,
buzina _xyz : {
// note: disable refcontrol, used by firstrowsports
// issue: https://github.com/reek/anti-adblock-killer/issues/1268
// issue: https://github.com/reek/anti-adblock-killer/issues/1243
// issue: https://github.com/reek/anti-adblock-killer/issues/889
// issue: https://greasyfork.org/forum/discussion/8975
// source: http://pastebin.com/8VTrkvS9
host : [ 'buzina.xyz' , 'farmet.info' , 'rimladi.com' , 'kitorelo.com' , 'omnipola.com' , 'porosin.co.uk' , 'rimleno.com' , 'simple4alls.com' , 'arsopo.com' ] ,
onStart : function ( ) {
Aak . addStyle ( "#adsframe { height: 151px; }" ) ;
} ,
onIdle : function ( ) {
if ( /buzina.xyz/ . test ( location . host ) ) { // keeps same host stream
Aak . hasElement ( 'iframe[src*=".php?hash="]' , function ( thisElement ) {
// http://arsopo.com/w2.php?hash=panda58
// http://www.buzina.xyz/nana1v1.php?onthetop
var parts = thisElement . src . split ( '/' ) ;
parts [ 2 ] = Aak . rules . buzina _xyz . host . pop ( ) ;
Aak . log ( thisElement , parts ) ;
thisElement . src = parts . join ( '/' ) ;
/ * d m F y I G 8 g P S B 7 C g k J C S A g I C A i c G x h e W x p c 3 Q i I D o g W 3 s K C Q k J I C A g I C A g I C A i c H J v d m l k Z X I i I D o g I n J 0 b X A i L A o J C Q k g I C A g I C A g I C J 1 c m w i I D o g I n B h b m R h M T 9 l J T N E M T Q 2 N T A 3 M D M y N i U y N n N 0 J T N E U H J 0 S F l 5 d k J 6 Z D l a Z D d o R F 9 m U k h U Z z E x M T E z M C I K C Q k J I C A g I C A g f Q o J C Q k g I C A g X S w K C Q k J I C A g I C J w b H V n a W 5 z I i A 6 I H s K C Q k J I C A g I C A g I n J 0 b X A i I D o g e w o J C Q k g I C A g I C A g I C J 1 c m w i I D o g I m Z s b 3 d w b G F 5 Z X I u c n R t c C 0 z L j I u M T E u c 3 d m I i w g C g k J C Q k J L y 8 i d X J s I j o g I m h 0 d H A 6 L y 9 y Z W x l Y X N l c y 5 m b G 9 3 c G x h e W V y L m 9 y Z y 9 z d 2 Y v Z m x v d 3 B s Y X l l c i 5 y d G 1 w L T M u M i 4 x M S 5 z d 2 Y i L A o J C Q k g I C A g I C A g I C J u Z X R D b 2 5 u Z W N 0 a W 9 u V X J s I i A 6 I C J y d G 1 w O i 8 v M T g 1 L j g y L j I x N S 4 0 N T o z N T c 5 L 3 Z v Z C 8 i C g k J C S A g I C A g I H 0 s C g k J C S A g I C A g I C J j b 2 5 0 c m 9 s c y I g O i B 7 C g k J C Q k g I C A g I n V y b C I 6 I C J o d H R w O i 8 v c m V s Z W F z Z X M u Z m x v d 3 B s Y X l l c i 5 v c m c v c 3 d m L 2 Z s b 3 d w b G F 5 Z X I u Y 2 9 u d H J v b H M t M y 4 y L j E 2 L n N 3 Z i I s I C 8 v I G F k Z G V k I G J l Y 2 F 1 c 2 U g b W l z c 2 l u Z w o J C Q k g I C A g I C A g I C J w b G F 5 I i A 6 I G Z h b H N l L A o J C Q k g I C A g I C A g I C J z Y 3 J 1 Y m J l c i I g O i B m Y W x z Z Q o J C Q k g I C A g I C B 9 C g k J C S A g I C B 9 L A o J C Q k g I C A g I n B s Y X l l c k l k I i A 6 I C J w b G F 5 Z X I i L A o J C Q k g I C A g I m N s a X A i I D o g e w o J C Q k g I C A g I C A i d X J s I i A 6 I C J w Y W 5 k Y T E / Z S U z R D E 0 N j U w N z A z M j Y l M j Z z d C U z R F B y d E h Z e X Z C e m Q 5 W m Q 3 a E R f Z l J I V G c x M T E x M z A i C g k J C S A g I C B 9 C g k J C S A g f Q o K C Q k J I C B 2 Y X I g b m V 3 V X J s I D 0 g c G F y d H M u c 2 x p Y 2 U o M C w g M y k u a m 9 p b i g n L y c p I C s g J y 9 m b G 9 3 c G x h e W V y L T M u M i 4 x N i 5 z d 2 Y / Y 2 9 u Z m l n P S c g K y B l c 2 N h c G U o S l N P T i 5 z d H J p b m d p Z n k o b y k p O w o J C Q k g I C 8 v d m F y I G 5 l d 1 V y b C A 9 I C d o d H R w O i 8 v c m V s Z W F z Z X M u Z m x v d 3 B s Y X l l c i 5 v c m c v c 3 d m L 2 Z s b 3 d w b G F 5 Z X I t M y 4 y L j E 2 L n N 3 Z j 9 j b 2 5 m a W c 9 J y A r I G V z Y 2 F w Z S h K U 0 9 O L n N 0 c m l u Z 2 l m e S h v K S k 7 C g k J C S A g Y 2 9 u c 2 9 s Z S 5 s b 2 c o b m V 3 V X J s K T s K C Q k J I C B 0 a G l z R W x l b W V u d C 5 z c m M g P S B u Z X d V c m w 7
* /
} ) ;
} else { // skip anti-adblock
Aak . removeElement ( '#adsframe' ) ;
Aak . getElement ( '#remove-over' ) . click ( ) ;
}
}
} ,
allmyvideos _net : {
// note: obfuscated
// issue: https://github.com/reek/anti-adblock-killer/issues/274
host : [ 'allmyvideos.net' , 'amvtv.net' ] ,
onStart : function ( ) {
// skip fake play button
Aak . setCookie ( '_favbt33' , 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' ] ,
onStart : function ( ) {
// prevent popunder
Aak . setCookie ( 'vid_main' , true ) ;
Aak . setCookie ( 'vid_sub' , true ) ;
// remove overlay
Aak . addScript ( function ( ) {
window . onload = function ( ) {
if ( window . removeOverlayHTML )
window . removeOverlayHTML ( ) ;
} ;
} ) ;
}
} ,
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' ) ;
}
}
} ,
videomega _tv : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=videomega
host : [ 'videomega.tv' ] ,
onStart : function ( ) {
if ( /^\/view.php/ . test ( location . pathname ) ) {
// prevent popunder
Aak . setCookie ( 'vid_mainpu' , true ) ;
Aak . setCookie ( 'vid_subpu' , true ) ;
Aak . setCookie ( 'vid_delay' , true ) ;
}
} ,
onEnd : function ( ) {
// kill abc
// fix bug on firefox: The video could not be loaded, either because the server or network failed or because the format is not supported.
var script = Aak . hasScript ( 'Please disable AdBlock Plugin to watch the video' ) ;
if ( script ) {
var source = script . innerHTML ;
var substring = source . substring ( source . lastIndexOf ( 'eval(' ) , source . lastIndexOf ( ')' ) + 1 ) ;
var deobfuscated = Aak . unpackScript ( substring ) ;
var newScript = 'if(' + deobfuscated . substring ( deobfuscated . indexOf ( 'true' ) ) ;
Aak . addScript ( newScript ) ;
}
}
} ,
flowplayer _antiadblock : {
host : [ 'videofun.me' , 'videobug.net' , 'video44.net' , 'play44.net' , 'byzoo.org' , 'playbb.me' , 'videowing.me' , 'videozoo.me' , 'easyvideo.me' , 'playpanda.net' ] ,
onEnd : 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 ) ) {
var Player = new Aak . player ( ) ;
Player . editing ( '#flowplayer_api' , {
setAttributes : {
allowfullscreen : true
}
} ) ;
}
}
} ,
r3z : {
// issue: https://github.com/reek/anti-adblock-killer/issues?q=label:R3Z
// source: http://pastebin.com/C159kevn
host : [ 'cityam.com' , 'computerworlduk.com' , 'techworld.com' , 'v3.co.uk' ] ,
onStart : function ( ) {
/ * d o n ' t w o r k w i t h c h r o m e
Object . defineProperty ( Aak . uw , '_r3z' , {
enumerable : true ,
writable : false ,
value : { }
} ) ;
* /
} ,
onIdle : function ( ) {
Aak . uw . $ ( "#r3z-wait" ) . remove ( ) ;
Aak . uw . $ ( ".r3z-hide" ) . removeClass ( "r3z-hide" ) ;
Aak . uw . _r3z = null ;
}
} ,
google _jobrunner : {
// issue: https://greasyfork.org/en/forum/messages/405
// issue: https://github.com/reek/anti-adblock-killer/issues/1343
// issue: https://github.com/reek/anti-adblock-killer/issues/1342
// issue: https://github.com/reek/anti-adblock-killer/issues/831
// issue: https://github.com/reek/anti-adblock-killer/issues/1274
// issue: https://github.com/reek/anti-adblock-killer/issues/1262
// issue: https://github.com/reek/anti-adblock-killer/issues/561
host : [ 'next-episode.net' , 'kingmaker.news' , 'gamespowerita.com' , 'todayidol.com' , 'receive-a-sms.com' , 'wakeupcallme.com' , 'ringmycellphone.com' , 'faqmozilla.org' , 'thememypc.com' ] ,
onAlways : function ( ) {
Aak . uw . google _jobrunner = { } ;
}
} ,
// fuckadbock customized
fab _dawn _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1747
host : [ 'dawn.com' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'detectAdBlock' , 'DetectAdBlock' ) ;
}
} ,
fab _sports _fr : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1217
// source: http://pastebin.com/SpEN5duS
host : [ 'sports.fr' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'fabInstance' , 'FabInstance' ) ;
}
} ,
fab _europe1 _fr : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1188
// source: http://pastebin.com/ULe1vzQR
host : [ 'europe1.fr' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'fabInstance' , 'FabInstance' ) ;
}
} ,
fab _newyorker _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1177
host : [ 'newyorker.com' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'sniffAdBlock' , 'SniffAdBlock' ) ;
}
} ,
fab _wired _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1061
// issue: https://greasyfork.org/fr/forum/discussion/8235
// source: http://pastebin.com/Pq14v4FC
host : [ 'wired.com' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'sniffAdBlock' , 'SniffAdBlock' ) ;
}
} ,
fab _mangasproject _domains : {
// note: fuckadblock with custom instance name
// note: also added abp rule
// issue: https://github.com/reek/anti-adblock-killer/issues/1127
// issue: https://greasyfork.org/fr/forum/discussion/4132
// issue: https://github.com/reek/anti-adblock-killer/issues/858
// source: https://mangas.zlx.com.br/mangazord_lib/js/lib/controllers/Leitor/Leitor.min.js
host : [ 'mangasproject.com.br' , 'mangasproject.net.br' , 'mangas.zlx.com.br' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'mangasLeitorSlider' , Aak . generateID ( ) ) ;
}
} ,
fab _qnimate _com : {
// issue: https://github.com/reek/anti-adblock-killer/issues/739
// issue: https://github.com/reek/anti-adblock-killer/issues/705
// note: fuckadblock customized
host : [ 'qnimate.com' ] ,
onAlways : function ( ) {
Aak . uw . adBlockDetected = function ( ) { } ;
}
} ,
fab _eurotransport _de : {
// issue: https://github.com/reek/anti-adblock-killer/issues/858
// note: fuckadblock with custom instance name
host : [ 'eurotransport.de' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'antiAdBlock' , Aak . generateID ( ) ) ;
}
} ,
fab _cadetect : {
// by: Skr4tchGr3azyMonkiBallllllZzzz
// issue: https://github.com/reek/anti-adblock-killer/issues/784
// note: fuckadblock with custom instance name
host : [ 'tzetze.it' , 'beppegrillo.it' , 'la-cosa.it' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'cadetect' , 'CADetect' ) ;
}
} ,
fab _agar _game : {
// note: fuckadblock with custom instance name
// issue: https://github.com/reek/anti-adblock-killer/issues/1257
// issue: https://github.com/reek/anti-adblock-killer/issues/1135
host : [ 'agario.sx' , 'agarabi.com' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'agario_SX_ads' , Aak . generateID ( ) ) ;
}
} ,
fab _filespace _com : {
// note: fuckadblock with custom instance name
// source: http://pastebin.com/YAS0As87
// issue: https://github.com/reek/anti-adblock-killer/issues/1037
host : [ 'filespace.com' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'fAB' , Aak . generateID ( ) ) ;
}
} ,
fab _topserialy _sk : {
// note: fuckadblock with custom instance name
// source: http://pastebin.com/42tUQ9aV
host : [ 'topserialy.sk' ] ,
onStart : function ( ) {
Aak . fakeFuckAdBlock ( 'sratNaVas' , Aak . generateID ( ) ) ;
}
} ,
fab _customized : {
// issue: https://github.com/reek/anti-adblock-killer/issues/1455
// issue: https://github.com/reek/anti-adblock-killer/issues/1657
// source: http://pastebin.com/N42a5BjE
host : [ 'epicurious.com' , 'desktopsolution.org' , 'indiatimes.com' , 'hindustantimes.com' , 'happytrips.com' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
( function ( ) {
var _setAttribute = window . Element . prototype . setAttribute ;
window . Element . prototype . setAttribute = function ( name , value ) {
if ( name == 'class' && value . indexOf ( 'text_ads' ) != - 1 ) {
value = '' ;
console . info ( this , 'fab intercepted :-)' ) ;
}
_setAttribute . call ( this , name , value ) ;
} ;
} ) ( ) ;
} ) ;
}
} ,
d3xt3er _antiadblock : {
// site: http://d3xt3r.com/anti-adblock
// case: http://sport-show.fr/js/advertisement-AdBlock.js
// case: http://www.2site.me/advertisement-AdBlock.js
host : [ 'sport-show.fr' , 'vipflash.net' , '2site.me' ] ,
onStart : function ( ) {
Aak . addStyle ( "#blockblockA {visibility:invisible;display:none;} #blockblockA td {visibility:invisible;display:none;} #blockblockA td p {visibility:invisible;display:none;} #blockblockB {visibility:visible;display:block;}" ) ;
}
} ,
adblock _notify : {
// by: Skr4tchGr3azyMonkiBallllllZzzz
// issue: https://github.com/reek/anti-adblock-killer/issues/1766
// issue: https://github.com/reek/anti-adblock-killer/issues/1392
// issue: https://github.com/reek/anti-adblock-killer/issues/1039
// issue: https://github.com/reek/anti-adblock-killer/issues/592
// issue: https://github.com/reek/anti-adblock-killer/issues/813
host : [ 'gametransfers.com' , 'winandmac.com' , 'free-steam-giveaways.com' , 'canalwp.com' , 'alphahistory.com' , 'nordpresse.be' , 'sospc.name' , 'baboo.com.br' ] ,
onAlways : function ( ) {
Aak . setCookie ( 'anCookie' , true ) ;
Aak . uw . anOptions = { } ;
}
} ,
lutte _adblock : {
// site: http://lutteadblock.blogspot.com/2014/11/le-script.html
// issue: https://github.com/reek/anti-adblock-killer/issues/938
// issue: https://github.com/reek/anti-adblock-killer/issues/580
host : [ 'lewebtvbouquetfrancophone.overblog.com' , 'webtv.bloguez.com' , 'latelegratuite.blogspot.com' , 'totaldebrid.org' , '37.187.173.205' , 'tvgratuite.blogspot.com' ] ,
onStart : function ( ) {
Aak . addBaitElement ( 'div#my_ad_div' ) ;
Aak . uw . jabbahud = function ( ) { } ;
}
} ,
antiblock : {
// site: antiblock.org
// note: customized
// issue:
host : [ 'mybank.pl' , 'rapidgrab.pl' ] ,
onStart : function ( ) {
Aak . addScript ( function ( ) {
( function ( ) {
var _addEventListener = window . addEventListener ;
window . addEventListener = function ( type , listener , options ) {
if ( listener . toString ( ) . indexOf ( '.nextFunction()}' ) > - 1 ) {
listener = function ( ) {
console . info ( [ 'AntiAdbKiller' , location . host , 'AntiBlock{customized}' ] ) ;
} ;
}
_addEventListener . call ( this , type , listener , options ) ;
} ;
} ) ( ) ;
} ) ;
}
} ,
blockadblock : {
2017-05-24 06:14:33 +02:00
// site: blockadblock.com
// note: random instance name
// source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8
2017-05-27 06:01:52 +02:00
// issues: https://github.com/reek/anti-adblock-killer/issues?q=label:BlockAdBlock
// issue: https://greasyfork.org/forum/discussion/8273
// issue: https://greasyfork.org/forum/discussion/7625
host : [ 'blockadblock.com' , 'linkdrop.net' , 'revclouds.com' , 'leporno.org' , 'uploadshub.com' , 'dasolo.org' , 'fullstuff.net' , 'zeusnews.it' , 'cheminots.net' , 'lolsy.tv' , 'animes-mangas-ddl.com' , 'noticiasautomotivas.com.br' , 'darkstars.org' , 'corepacks.com' , 'naturalbd.com' , 'coolsoft.altervista.org' , 'openload.us' , 'cda-online.pl' , 'urbanplanet.org' , 'mamahd.com' , 'sadeempc.com' , 'avmoo.com' , 'thailande-fr.com' , 'btaia.com' , 'tusoft.org' , 'hisse.net' , 'europeup.com' , 'nrj.fr' , 'srnk.co' , 'animmex.co' , 'socketloop.com' , 'crackhex.com' , 'revealedtricks4u.com' , 'pizzamaking.com' , 'computerworm.net' , 'yourlifeupdated.net' ] ,
onStart : function ( ) {
if ( /blockadblock\.com$/ . test ( location . hostname ) ) {
try { unsafeWindow . eval = null ; } catch ( e ) { }
}
Aak . addScript ( function ( ) {
if ( /blockadblock\.com$/ . test ( location . hostname ) ) {
window . eval = null ;
window . addEventListener ( "load" , function ( ) {
window . document . getElementById ( "babasbmsgx" ) . remove ( ) ;
} ) ;
}
//return;
// variant 1
( function ( ) {
var _setTimeout = window . setTimeout ;
window . setTimeout = function ( fn , delay ) {
// console.log(fn.toString())
if ( typeof fn === 'string' && fn . indexOf ( 'bab_elementid' ) > - 1 ) {
fn = function ( ) {
console . info ( [ 'AntiAdbKiller' , location . host , 'BlockAdBlock' ] ) ;
} ;
}
_setTimeout . call ( this , fn , delay ) ;
} ;
} ) ( ) ;
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
gpt _sp : {
// by: Reek, Giwayume
// note: when adblock detected inject new ads, redirect to http://tinyurl.com/zq2z5o6
// issue: https://github.com/reek/anti-adblock-killer/issues/1636
// issue: https://github.com/reek/anti-adblock-killer/issues/1596
// issue: https://github.com/reek/anti-adblock-killer/issues/1297
// issue: https://github.com/reek/anti-adblock-killer/issues/1144
// issue: https://github.com/reek/anti-adblock-killer/issues/1542
// source: http://pastebin.com/8Ajitfb2
host : [ 'marketwatch.com' , 'deadline.com' , 'tweaktown.com' , 'nypost.com' , 'realgm.com' , 'nasdaq.com' ] ,
onStart : function ( ) {
Aak . addStyle ( ".container--bannerAd, .col--ad { display: none; }" ) ;
Aak . addScript ( function ( ) {
( function ( ) {
// Giwayume
window . _sp _ = window . _sp _ || { } ;
window . _sp _ . config = window . _sp _ . config || { } ;
Object . defineProperty ( window . _sp _ . config , "content_control_callback" , {
value : function ( ) { } ,
writable : false ,
configurable : false
} ) ;
// Reek
var _addEventListener = window . EventTarget . prototype . addEventListener ;
window . EventTarget . prototype . addEventListener = function ( type , listener , options ) {
if ( type == 'sp.blocking' ) {
listener = function ( ) {
console . info ( [ 'AntiAdbKiller' , location . host , 'GPT{sp-blocking}' ] ) ;
} ;
}
_addEventListener . call ( this , type , listener , options ) ;
} ;
} ) ( ) ;
} ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
} ,
krux _asl : {
// note: when adblock detected inject new ads
// source: http://pastebin.com/0HD7N84i
host : [ 'commentcamarche.net' , 'journaldesfemmes.com' , 'linternaute.com' ] ,
onBeforeScript : function ( ) {
return [ {
detected : 'Krux{asl}' ,
contains : 'Asl.prototype.inject' ,
external : false ,
remove : true
}
] ;
}
} ,
krux _adp : {
// note: when adblock detected inject new ads
// source:
host : [ 'fourchette-et-bikini.fr' , 'meteocity.com' ] ,
onStart : function ( ) {
Aak . uw . adProtect = 1 ;
}
} ,
phoenix _goyavelab : {
// note: when adblock detected inject new ads
// note: script anti-adblock obfuscated,
// issue: https://github.com/reek/anti-adblock-killer/issues/
// doc: http://tinyurl.com/gl3ghq2
// source: http://pastebin.com/hsAmdSuf
host : [ 'demo-phoenix.com' , 'dpstream.net' , 'gum-gum-streaming.com' , 'jeu.info' , 'sofoot.com' , 'gaara-fr.com' , 'gaytube.com' , 'tuxboard.com' , 'xstory-fr.com' , 'hentaifr.net' , 'filmstreaming-hd.com' , 'filmvf.net' , 'hentaihaven.org' , 'narutoshippudenvf.com' , 'thebadbuzz.com' , 'manga-news.com' , 'jeu.video' , 'mangas-fr.com' ] ,
onAlways : function ( ) {
//Aak.uw.__$dc = function () {};
Aak . addStyle ( 'body {visibility: visible;}' ) ;
} ,
onBeforeScript : function ( ) {
return [ {
detected : 'PhoenixGoyavelab' ,
contains : 'PHENV' ,
external : false ,
remove : true
}
] ;
}
} ,
ad _defend _uabp : {
// note: when adblock detected inject new ads
// source: http://pastebin.com/cFQCp80W
host : [ 'tvspielfilm.de' , 'finanzen.ch' ] ,
onBeforeScript : function ( ) {
return [ {
detected : 'AdDefend{UABPInject}' ,
contains : 'UABPInject' ,
external : false ,
remove : true
}
] ;
}
} ,
ad _defend _uab : {
// note: when adblock detected inject new ads
// userscript: https://openuserjs.org/scripts/schwarztee/AdDefend_Klatsche
// userscript: https://gist.github.com/anonymous/a9b9956baf1d59a107c5
// source: http://pastebin.com/1VyW0u9m, http://pastebin.com/AZqhRxWU
// issue: https://github.com/reek/anti-adblock-killer/issues?q=label:AdDefend
// pull: https://github.com/reek/anti-adblock-killer/pull/467
host : [ 'watchgeneration.fr' , 'turbo.fr' , '24matins.fr' , 'foot01.com' , 'clubic.com' , 'macg.co' , 'begeek.fr' , 'igen.fr' , 'gamestar.de' , 'focus.de' , 'stern.de' , 'sat1.' , 'prosieben.' , 'kabeleins.' , 'sat1gold.' , 'sixx.' , 'prosiebenmaxx.' , 'fem.com' , 'the-voice-of-germany.' , 'wetter.com' , 'wetteronline.de' , 'pcwelt.de' , 'boerse-online.de' , 'sportauto.de' , 'auto-motor-und-sport.de' , 'motor-klassik.de' , '4wheelfun.de' , 'autostrassenverkehr.de' , 'lustich.de' , 'spox.com' , 'shz.de' , 'transfermarkt.de' , 'rp-online.de' , 'motorradonline.de' , '20min.ch' , 'main-spitze.de' , 'wormser-zeitung.de' , 'lampertheimer-zeitung.de' , 'wiesbdener-tagblatt.de' , 'buerstaedter-zeitung.de' , 'wiesbdener-kurier.de' , 'rhein-main-presse.de' , 'allgemeine-zeitung.de' , 'ariva.de' , 'spiegel.de' , 'brigitte.de' , 'dshini.net' , 'gala.de' , 'gamepro.de' , 'gamona.de' , 'pnn.de' , 'promobil.de' , 'sportal.de' , 'webfail.com' , 'computerbild.de' , 'finanzen.net' , 'comunio.de' , 'medisite.fr' ] ,
onBeforeScript : function ( ) {
return [ {
detected : 'AdDefend{uabInject}' ,
contains : 'uabInject' ,
external : false ,
remove : true
}
] ;
}
} ,
/ * s o l v e d b y A a k L I s t
tisoomi _indirekt : {
// inline: http://pastebin.com/npmXTUHw
// external: http://pastebin.com/hvWnCuDw
host : [ 'energy.de' , 'getvids.de' , 'gewinde-normen.de' , 'podcast.de' , 'spielespielen24.de' , 'dialo.de' ] ,
onBeforeScript : function ( e ) {
var target = e . target || e . srcElement ;
var text = target . text ;
if ( Aak . contains ( text , 'n="abcdefghijklm",r="nopqrstuvwxyz",i="0123456789";var s=t==0?i:t==1?n' ) ) {
Aak . stopScript ( e ) ;
Aak . log ( 'Tisoomi Indirekt' ) ;
2017-05-24 06:14:33 +02:00
}
}
2017-05-27 06:01:52 +02:00
} ,
* /
/ * s o l v e d b y A a k L I s t
tisoomi _direkt : {
// inline: http://pastebin.com/2vq38JXY
host : [ 'autozeitung.de' , 'formel1.de' , 'fremdwort.de' , 'inside-handy.de' , 'motorsport-total.com' , 'aussenwirtschaftslupe.de' , 'donnerwetter.de' , 'wintotal.de' ] ,
onBeforeScript : function ( e ) {
var target = e . target || e . srcElement ;
var text = target . text ;
if ( Aak . contains ( text , 'function detect()' ) ) {
Aak . stopScript ( e ) ;
Aak . log ( 'Tisoomi Direkt' ) ;
}
}
} ,
* /
// --------------------------------------------------------------------------------------------
// Generic
// --------------------------------------------------------------------------------------------
generic : {
host : [ '.*?' ] ,
onRemove : function ( removedNode ) {
if ( Aak . opts . removed ) {
if ( removedNode . src ||
removedNode . id ||
removedNode . className &&
! /^firebug/ . test ( removedNode . className ) ) {
// Node removed
Aak . log ( removedNode ) ;
}
}
} ,
onStart : function ( ) {
// FuckAdBlock & BlockAdBlock v3 and v4
// 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
// demo v3: http://sh.st/vovHE
// demo v4: http://al.ly/qBbXH
// issue: https://github.com/reek/anti-adblock-killer/issues/888
// issue: https://github.com/reek/anti-adblock-killer/issues/824
Aak . fakeFuckAdBlock ( 'fuckAdBlock' , 'FuckAdBlock' ) ;
Aak . fakeFuckAdBlock ( 'blockAdBlock' , 'BlockAdBlock' ) ;
// canRunAds
// repo: https://github.com/MatthewGross/CanRunAds
// note: use externall script "/js/ads.js" -> var canRunAds = true;
Object . defineProperty ( Aak . uw , 'canRunAds' , {
enumerable : true ,
writable : false ,
value : true
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// canShowAds
// issue: https://github.com/reek/anti-adblock-killer/issues/1197
Object . defineProperty ( Aak . uw , 'canShowAds' , {
enumerable : true ,
writable : false ,
value : true
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Adblocker Detecting Scripts: Method 2
// gist: https://gist.github.com/irazasyed/3d247d3d121e781a3872
// note: use externall script "/js/ads.js" -> isAdBlockActive = false;
Object . defineProperty ( Aak . uw , 'isAdBlockActive' , {
enumerable : true ,
writable : false ,
value : false
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
/ *
window . iHaveLoadedAds = true ;
var niceAdsCheck = true ;
adblock = false
is _blocker = false ;
* /
} ,
onIdle : function ( ) {
// AdBlock Detector (XenForo Rellect)
// site: http://tinyurl.com/pa28xdn
// cloneInto: http://tinyurl.com/k6qphme
// issue: https://github.com/reek/anti-adblock-killer/issues/805
// issue: https://github.com/reek/anti-adblock-killer/issues/804
// issue: https://github.com/reek/anti-adblock-killer/issues/591
if ( Aak . uw . XenForo && typeof Aak . uw . XenForo . rellect == 'object' ) {
Aak . uw . XenForo . rellect = {
AdBlockDetector : {
start : function ( ) { }
}
} ;
Aak . detected ( 'AdBlock Detector (XenForo Rellect)' ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
/ *
// Adunblock - http://adunblock.com/
if ( Aak . getCookie ( 'adblock' ) == 1 ) {
Aak . setCookie ( 'adblock' , 0 ) ;
Aak . setCookie ( 'bar_closed' , 1 ) ;
}
* /
// Adblock Blocker
// https://wordpress.org/plugins/addblockblocker/
// http://tinyurl.com/nswn6fz
// http://pastebin.com/d65zr37m
/ * c a n c a u s e a b u g
var ads = document . getElementsByClassName ( 'afs_ads' ) ;
var ad = ads . length && ads [ ads . length - 1 ] ;
if ( ad && ad . innerHTML . length === 0 || ad . clientHeight === 0 ) {
Aak . addScript ( function ( ) {
getElementsByClassNameNative = HTMLDocument . prototype . getElementsByClassName ;
HTMLDocument . prototype . getElementsByClassName = function ( className ) {
if ( className == 'afs_ads' ) {
console . info ( [ 'AntiAdbKiller' , location . host , 'AdblockBlocker' , className ] ) ;
var uniqid = Date . now ( ) ;
var bait = document . createElement ( "div" ) ;
bait . innerHTML = '<br>' ;
bait . className = uniqid ;
document . body . appendChild ( bait ) ;
return document . getElementsByClassName ( uniqid ) ;
}
return getElementsByClassNameNative . apply ( this , arguments ) ;
} ;
} ) ;
}
* /
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Adbuddy
if ( typeof Aak . uw . closeAdbuddy === 'function' ) {
Aak . uw . closeAdbuddy ( ) ;
Aak . detected ( 'Adbuddy' ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// AdBlock Alerter (WP)
// https://github.com/wp-plugins/adblock-alerter
//
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 . detected ( 'AdBlockAlerter' ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// 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' ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Antiblock.org v2
// note: detect and store block id
// demo: http://tinyurl.com/nhyhpzk
var styles = document . querySelectorAll ( 'style' ) ;
for ( var i = 0 ; i < styles . length ; i ++ ) {
var style = styles [ i ] ;
var cssRules = style . sheet . cssRules ;
for ( var j = 0 ; j < cssRules . length ; j ++ ) {
var cssRule = cssRules [ j ] ;
var cssText = cssRule . cssText ;
var pattern = /^#([a-z0-9]{4,10}) ~ \* \{ display: none; \}/ ;
if ( pattern . test ( cssText ) ) {
var id = pattern . exec ( cssText ) [ 1 ] ;
if ( Aak . hasScript ( "w.addEventListener('load'," + id + ",false)" ) ) {
Aak . aabs . abo2 = id ;
break ;
}
}
}
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
var win = Aak . uw ;
for ( var prop in win ) {
try {
if ( ! /^webkit/ . test ( prop ) && /^[a-z0-9]{4,12}$/i . test ( prop ) && prop !== 'document' && ( win [ prop ] instanceof HTMLDocument ) === false && win . hasOwnProperty ( prop ) && typeof win [ prop ] === 'object' ) {
var method = win [ prop ] ;
// Antiblock.org v3 & BetterStopAdblock
// issue: https://github.com/reek/anti-adblock-killer/issues/833
if ( method . deferExecution &&
method . displayMessage &&
method . getElementBy &&
method . getStyle &&
method . insert &&
method . nextFunction ) {
if ( method . toggle ) {
Aak . aabs . bsa = prop ;
Aak . detected ( 'BetterStopAdblock{dom}' ) ;
} else {
Aak . aabs . abo3 = prop ;
Aak . detected ( 'Antiblock3{dom}' ) ;
}
win [ prop ] = null ; // kill instance
}
// BlockAdBlock
// site: blockadblock.com
// note: random instance name
// source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8
// issues: https://github.com/reek/anti-adblock-killer/issues?q=label%3ABlockAdBlock
if ( method . bab ) { // variant 1
Aak . detected ( 'BlockAdBlock{dom:variant1}' ) ;
win [ prop ] = null ;
} else if ( Object . keys ( method ) . length === 3 && Object . keys ( method ) . map ( function ( value , index ) {
return value ;
} ) . join ( ) . length === 32 ) { // variant 2
Aak . detected ( 'BlockAdBlock{dom:variant2}' ) ;
win [ prop ] = null ;
}
}
} catch ( e ) {
//console.log('error', prop)
}
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Anti-Adblockers
var aabs = {
// Plugins WordPress
NoAdBlock : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.js)' ,
BetterStopAdblock : '(/plugins/better-stop-adblock/|bsa-script-doctype.js|bsa-script-no-doctype.js)' ,
AdBlockBlocker : '/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' ,
AdBlockAdvertisement : '/advertisement.js' ,
AdBlockAdvert : '/advert.js' ,
AdBlockAdvCustom : '/advertisement(.+).js' ,
AdBlockAdframe : '/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'
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
var scripts = document . scripts ;
for ( var y = 0 ; y < scripts . length ; y ++ ) {
var script = scripts [ y ] ;
if ( script . src ) {
for ( var key in aabs ) {
if ( new RegExp ( aabs [ key ] , 'i' ) . test ( script . src ) ) {
Aak . detected ( [ key , script . src ] ) ;
break ;
}
}
}
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
} ,
onInsert : function ( insertedNode ) {
// All Nodes
if ( Aak . opts . inserted ) {
if ( insertedNode . src ||
insertedNode . id ||
insertedNode . className &&
! /firebug/ . test ( insertedNode . innerHTML ) ) {
// Node inserted
Aak . log ( insertedNode ) ;
}
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// 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 . detected ( 'No-Adblock' , false , location . href ) ;
Aak . removeElement ( insertedNode ) ;
//Aak.log(insertedNode);
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// 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 . detected ( 'StopAdBlock' , false , location . href ) ;
Aak . removeElement ( insertedNode ) ;
//Aak.log(insertedNode);
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// 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 . detected ( 'AntiAdblockPackerZdxd' , false , location . href ) ;
} // Variant 2
else if ( insertedNode . id == 'gd' ) {
Aak . detected ( 'AntiAdblockPackerWdgd' , false , location . href ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
// Remove
//Aak.log(insertedNode);
Aak . removeElement ( insertedNode ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Adunblock - http://adunblock.com/
var reId = /^[a-z]{8}$/ ;
var reClass = /^[a-z]{8} [a-z]{8}/ ;
var reBg = /^[a-z]{8}-bg$/ ;
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)
// <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 . detected ( "AdUnBlockPremium" ) ;
Aak . removeElement ( insertedNode . nextSibling ) ; // overlay
Aak . removeElement ( insertedNode ) ; // box
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
// 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 . detected ( "AdUnBlockFree" ) ;
Aak . removeElement ( insertedNode ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Antiblock - http://antiblock.org/
var reMsgId = /^[a-z0-9]{4,10}$/i ;
var reTag1 = /^(div|span|b|i|font|strong|center)$/i ;
var reTag2 = /^(a|b|i|s|u|q|p|strong|center)$/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|рекламе|verhindert|advert|kapatı nı z/i ;
// Antiblock.org (all version)
if ( insertedNode . parentNode &&
insertedNode . id &&
insertedNode . style &&
insertedNode . childNodes . length &&
insertedNode . firstChild &&
! insertedNode . firstChild . id &&
! insertedNode . firstChild . className &&
reMsgId . test ( insertedNode . id ) &&
reTag1 . test ( insertedNode . nodeName ) &&
reTag2 . test ( insertedNode . firstChild . nodeName ) ) {
//Aak.log(insertedNode);
// Kill audio message
var audio = insertedNode . querySelector ( "audio[loop]" ) ;
if ( audio ) {
audio . pause ( ) ;
Aak . detected ( 'Antiblock{audio}' ) ;
Aak . removeElement ( audio ) ;
}
// Antiblock.org v2
// demo: http://tinyurl.com/h3mwta4
else if ( ( Aak . aabs . abo2 && insertedNode . id == Aak . aabs . abo2 ) ||
( insertedNode . firstChild . hasChildNodes ( ) && reWords1 . test ( insertedNode . firstChild . innerHTML ) && reWords2 . test ( insertedNode . firstChild . innerHTML ) ) ) {
Aak . detected ( 'Antiblock2{insert}' ) ;
Aak . removeElement ( insertedNode ) ;
}
// Antiblock.org v3
// demo: http://tinyurl.com/qecfa7w
// case: http://tinyurl.com/zbrlr3a /* fork */
else if ( ( Aak . aabs . abo3 && insertedNode . id == Aak . aabs . abo3 ) ||
( insertedNode . firstChild . hasChildNodes ( ) && insertedNode . firstChild . firstChild . nodeName == 'IMG' && /^data:image\/png;base64/ . test ( insertedNode . firstChild . firstChild . src ) ) ) {
Aak . uw [ Aak . aabs . abo3 ] = null ;
Aak . detected ( 'Antiblock3{insert}' ) ;
Aak . removeElement ( insertedNode ) ;
}
// BetterStopAdblock
// demo: http://tinyurl.com/js9zat4
// source: http://pastebin.com/YimkrtKB
// issue: http://tinyurl.com/zetgbtx
else if ( Aak . aabs . bsa && insertedNode . id == Aak . aabs . bsa ) {
Aak . uw [ Aak . aabs . bsa ] = null ;
Aak . detected ( 'BetterStopAdblock{insert}' ) ;
Aak . removeElement ( insertedNode ) ;
}
// Many false positive
else {
//Aak.removeElement(insertedNode);
}
}
}
}
} ,
blockDetect : function ( ) {
// Exclude domains
// issue: https://github.com/reek/anti-adblock-killer/issues/1466
// issue: https://github.com/reek/anti-adblock-killer/issues/1263
// issue: https://greasyfork.org/en/forum/discussion/8422/
// issue: https://github.com/reek/anti-adblock-killer/issues/986
// issue: https://github.com/reek/anti-adblock-killer/issues/857
// issue: https://github.com/reek/anti-adblock-killer/issues/617
// issue: https://greasyfork.org/fr/forum/discussion/5426
// issue: https://github.com/reek/anti-adblock-killer/issues/419
// issue: https://github.com/reek/anti-adblock-killer/issues/377
var 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" , "stackoverflow.com" , "tampermonkey.net" , "twitter.com" , "vimeo.com" , "wikipedia.org" , "w3schools.com" , "yahoo." , "yandex.ru" , "youtu.be" , "youtube.com" , "xemvtv.net" , "vod.pl" , "agar.io" , "pandoon.info" , "fsf.org" , "adblockplus.org" , "plnkr.co" , "exacttarget.com" , "dolldivine.com" , "popmech.ru" , "calm.com" ] ;
var host = location . host ;
var excluded = false ;
excludes . forEach ( function ( exclude ) {
if ( new RegExp ( exclude ) . test ( host ) ) {
excluded = true ;
if ( Aak . opts . logExcluded ) {
Aak . warn ( 'Excluded' ) ;
}
return false ;
}
} ) ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Include domains
// IsEventupported: http://tinyurl.com/oeez8c7
if ( ! excluded ) {
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
var handlerEvents = function ( ) {
var rule = Aak . rules [ name ] ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
rule . host . forEach ( function ( host ) {
// Check host
if ( new RegExp ( host ) . test ( location . host ) ) {
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Native mode
if ( ! Aak . useGM && Aak . isTopframe ) {
Aak . warn ( 'Run natively.' ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Log rule used
if ( rule . host [ 0 ] != '.*?' ) {
Aak . detected ( 'rule' , rule ) ;
}
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
// Before DOM load
if ( rule . onStart ) {
rule . onStart ( ) ;
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
// On all statements
if ( rule . onAlways ) {
rule . onAlways ( ) ; // start
Aak . onEvent ( window , 'DOMContentLoaded' , rule . onAlways ) ; // idle
Aak . onEvent ( window , 'load' , rule . onAlways ) ; // end
2017-05-24 06:14:33 +02:00
}
2017-05-27 06:01:52 +02:00
// Before Script Executed
if ( rule . onBeforeScript ) {
// options: contains, search, replace, override, remove, external
var optionsBeforeScript = rule . onBeforeScript ( ) ;
if ( typeof optionsBeforeScript == "object" ) {
var handlerBeforeScript = function ( e , options ) {
var isEvent = e instanceof window . Event ;
var thisScript = ( e . target || e . srcElement ) || e ;
options . forEach ( function ( o ) { // hasAttribute
var src = o . external ? 'src' : 'innerHTML' ;
var search = new RegExp ( o . contains , o . flags || '' ) ;
if ( thisScript [ src ] && thisScript [ src ] . length && search . test ( thisScript [ src ] ) ) {
// Stop script execution
if ( isEvent ) {
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
}
// Create new script
var parent = thisScript . parentNode ;
var newScript = document . createElement ( 'script' ) ;
// Replace a part of the script
if ( o . replace ) {
newScript [ src ] = thisScript [ src ] . replace ( search , o . replace ) ;
parent . replaceChild ( newScript , thisScript ) ;
} // Override script
else if ( o . override ) {
newScript [ src ] = o . override ;
parent . replaceChild ( newScript , thisScript ) ;
} // Remove script
else if ( o . remove ) {
parent . removeChild ( thisScript ) ;
}
if ( o . detected ) {
Aak . detected ( o . detected ) ;
}
if ( Aak . opts . logInterceptedScripts ) {
Aak . log ( src , o , thisScript , newScript ) ;
}
}
} ) ;
} ;
// Browser supporting event beforescriptexecute
if ( 'onbeforescriptexecute' in document ) {
Aak . onEvent ( window , 'beforescriptexecute' , function ( e ) {
handlerBeforeScript ( e , optionsBeforeScript ) ;
} ) ;
} else { // Browser not suppoting beforescriptexecute
var loadDocument = function ( optionsBeforeScript ) {
//if (document.referrer === '')
//return;
Aak . warn ( 'onbeforescript-compatible' ) ;
// Stop loading
Aak . addScript ( 'window.stop();' ) ; // chrome/opera
//Aak.addScript('document.open();'); // firefox
// Get content
Aak . request ( {
url : location . href ,
headers : {
"Referer" : document . referrer
} ,
onload : function ( result ) {
var html = result . responseText ;
var parser = new window . DOMParser ( ) ;
var doc = parser . parseFromString ( html , "text/html" ) ;
var scripts = doc . scripts ;
for ( var i = 0 ; i < scripts . length ; i ++ ) {
var thisScript = scripts [ i ] ;
handlerBeforeScript ( thisScript , optionsBeforeScript ) ;
}
// Convert to string
html = doc . documentElement . outerHTML ;
// Write new content to HTML document:
Aak . addScript ( 'document.open(); document.write(unescape("' + window . escape ( html ) + '")); document.close();' ) ; // chrome/opera
//Aak.addScript('document.write(unescape("' + escape(html) + '")); document.close();'); // firefox
}
} ) ;
} ;
loadDocument ( optionsBeforeScript ) ;
}
}
} // After Script Executed
if ( rule . onAfterScript ) {
if ( 'onafterscriptexecute' in document ) { // Mozilla Firefox
Aak . onEvent ( window , 'afterscriptexecute' , rule . onAfterScript ) ;
}
}
// When DOM Load
if ( rule . onIdle ) {
if ( ! Aak . useGM ) { // Native mode
rule . onIdle ( ) ;
} else {
//Aak.onEvent(window, 'DOMContentLoaded', rule.onIdle);
Aak . onEvent ( window , 'DOMContentLoaded' , rule . onIdle ) ;
}
}
// When Window Load
if ( rule . onEnd ) {
if ( ! Aak . useGM ) { // Native mode
rule . onEnd ( ) ;
} else {
Aak . onEvent ( window , 'load' , rule . onEnd ) ;
}
}
// When DOM AttrModified
if ( rule . onAttrModified ) {
Aak . onEvent ( window , 'DOMAttrModified' , rule . onAttrModified , false ) ;
}
// When DOM SubtreeModified
if ( rule . onSubtreeModified ) {
Aak . onEvent ( window , 'DOMSubtreeModified' , rule . onSubtreeModified , false ) ;
}
// When DOM Elements are Inserted in Document
if ( rule . onInsert ) {
// Mutation Observer
// doc: http://tinyurl.com/mxxzee4
// support: http://tinyurl.com/nepn7vy
if ( typeof window . MutationObserver != 'undefined' ||
typeof WebKitMutationObserver != 'undefined' ) {
// Mutation Observer
var MutationObserver1 = window . MutationObserver || window . WebKitMutationObserver ;
// Create an observer instance
var obs1 = new MutationObserver1 ( 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 ) {
Array . prototype . forEach . call ( mutation . addedNodes , function ( addedNode ) {
if ( Aak . opts . logInsertedNodes ) {
Aak . log ( addedNode ) ;
}
rule . onInsert ( addedNode ) ;
} ) ;
}
} ) ;
} ) ;
// Observer
obs1 . observe ( document , {
childList : true ,
subtree : true
} ) ;
}
// Mutation Events (Alternative Solution)
// doc: http://tinyurl.com/op95rfy
else {
Aak . onEvent ( window , "DOMNodeInserted" , function ( e ) {
if ( Aak . opts . logInsertedNodes ) {
Aak . log ( e . target ) ;
}
rule . onInsert ( e . target ) ;
} , false ) ;
}
}
// When DOM Elements are Removed in Document
if ( rule . onRemove ) {
// Mutation Observer
// doc: http://tinyurl.com/mxxzee4
// support: http://tinyurl.com/nepn7vy
if ( typeof window . MutationObserver != 'undefined' ||
typeof WebKitMutationObserver != 'undefined' ) {
// Mutation Observer
var MutationObserver2 = window . MutationObserver || window . WebKitMutationObserver ;
// Create an observer instance
var obs2 = new MutationObserver2 ( 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 ) {
Array . prototype . forEach . call ( mutation . removedNodes , function ( removedNode ) {
if ( Aak . opts . logRemovedNodes ) {
Aak . log ( removedNode ) ;
}
rule . onRemove ( removedNode ) ;
} ) ;
}
} ) ;
} ) ;
// Observer
obs2 . observe ( document , {
childList : true ,
subtree : true
} ) ;
}
// Mutation Events (Alternative Solution)
// doc: http://tinyurl.com/op95rfy
else {
Aak . onEvent ( window , "DOMNodeRemoved" , function ( e ) {
if ( Aak . opts . logRemovedNodes ) {
Aak . log ( e . target ) ;
}
rule . onRemove ( e . target ) ;
} , false ) ;
}
}
// Aak Events
Aak . onEvent ( window , 'detected' , function ( e ) {
Aak . info ( [ 'AntiAdbKiller' , Aak . isTopframe ? 'topframe' : 'subframe' , location . host , e . detail ] ) ;
} ) ;
2017-05-24 06:14:33 +02:00
}
} ) ;
2017-05-27 06:01:52 +02:00
} ;
// Apply rules
for ( var name in Aak . rules ) {
if ( Aak . rules . hasOwnProperty ( name ) ) {
handlerEvents ( Aak , name ) ;
2017-05-24 06:14:33 +02:00
}
}
}
}
2017-05-27 06:01:52 +02:00
} ;
2017-05-24 06:14:33 +02:00
2017-05-27 06:01:52 +02:00
Aak . initialize ( ) ;
2017-05-24 06:14:33 +02:00
} ) ( window ) ;