· 6 years ago · Dec 01, 2019, 08:12 AM
1// ==UserScript==
2// @name Anti-Adblock Killer | Reek
3// @namespace https://userscripts.org/scripts/show/155840
4// @description Helps you keep your Ad-Blocker active, when you visit a website and it asks you to disable.
5// @author Reek | reeksite.com
6// @version 10.1
7// @encoding utf-8
8// @license https://creativecommons.org/licenses/by-sa/4.0/
9// @icon https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png
10// @homepage https://github.com/reek/anti-adblock-killer/
11// @twitterURL https://twitter.com/antiadbkiller
12// @contactURL https://reek.github.io/anti-adblock-killer/#contact
13// @supportURL https://github.com/reek/anti-adblock-killer/issues
14// @contributionURL https://github.com/reek/anti-adblock-killer#donate
15// @updateURL http://reeksite.com/anti-adblock-killer/anti-adblock-killer.user.js
16// @downloadURL http://reeksite.com/anti-adblock-killer/anti-adblock-killer.user.js
17// @include http://*/*
18// @include https://*/*
19// @grant unsafeWindow
20// @grant GM_addStyle
21// @grant GM_getValue
22// @grant GM_setValue
23// @grant GM_xmlhttpRequest
24// @grant GM_registerMenuCommand
25// @grant GM_deleteValue
26// @grant GM_listValues
27// @grant GM_getResourceText
28// @grant GM_getResourceURL
29// @grant GM_log
30// @grant GM_openInTab
31// @grant GM_setClipboard
32// @grant GM_info
33// @grant GM_getMetadata
34// @run-at document-start
35// @connect *
36// ==/UserScript==
37/*jshint evil:true newcap:false*/
38/*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*/
39/*=====================================================
40 Thanks
41======================================================
42
43 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
44
45 Collaborators: InfinityCoding, Couchy, Dindog, Floxflob, U Bless, Watilin, @prdonahue, Hoshie, 3lf3nLi3d, Alexo, Crits, Noname120, Crt32, JixunMoe, Athorcis, Killerbadger, SMed79, Alexander255, Anonsubmitter, RaporLoLpro, Maynak00, Robotex, Vinctux, Blahx, MajkiIT, F4z, Angelsl, Mikhaelk, Marek, Hamsterbacke, Gorhill, Hacker999, xxcriticxx, Skr4tchGr3azyMonkiBallllllZzzz, Giwayume, MrSherlockHolmes, xDarkARG, Noahp78, Mapx-
46
47 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.
48
49=======================================================
50 Mirrors
51=======================================================
52
53 Github: http://tinyurl.com/mcra3dn
54 Greasyfork: http://tinyurl.com/pbbdnh6
55 Openuserjs: http://tinyurl.com/nnqje32
56 MonkeyGuts: http://tinyurl.com/ka5fcqm
57 Userscripts: http://tinyurl.com/q8xcejl
58
59=======================================================
60 Documentation
61=======================================================
62
63 Greasemonkey: http://tinyurl.com/yeefnj5
64 Scriptish: http://tinyurl.com/cnd9nkd
65 Tampermonkey: http://tinyurl.com/pdytfde
66 Violentmonkey: http://tinyurl.com/n34wn6j
67 NinjaKit: http://tinyurl.com/pkkm9ug
68
69=======================================================
70 Script
71======================================================*/
72
73(function (window) {
74 "use strict";
75
76 var Aak = {
77 name : 'Anti-Adblock Killer',
78 version : '10.0',
79 scriptid : 'gJWEp0vB',
80 homeURL : 'https://github.com/reek/anti-adblock-killer/',
81 changelogURL : 'https://github.com/reek/anti-adblock-killer#changelog',
82 donateURL : 'https://github.com/reek/anti-adblock-killer#donate',
83 featuresURL : 'https://github.com/reek/anti-adblock-killer#features',
84 reportURL : 'https://github.com/reek/anti-adblock-killer/wiki/Report-Guide',
85 contactURL : 'https://reek.github.io/anti-adblock-killer/#contact',
86 settingsURL : 'https://reek.github.io/anti-adblock-killer/#settings',
87 twitterURL : 'https://twitter.com/antiadbkiller',
88 downloadURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js',
89 subscribeURL : 'https://reek.github.io/anti-adblock-killer/#filterlist',
90 listURL : "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt",
91 nativeURL : 'https://github.com/reek/anti-adblock-killer/wiki/Native-Mode',
92 iconURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png',
93 imgBait : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAGklEQVR42mNg0GAYBaNgFIyCUTAKRsEoQAYATN8AKYNZ/x4AAAAASUVORK5CYII=',
94 initialize : function () {
95 Aak.registerSettings(); // registering your settings.
96 Aak.registerConsole(); // registering customzed console.
97 Aak.registerCommands(); // add commands to menu
98 Aak.checkUpdate(true); // check if AakScript is up to date.
99 Aak.checkList(); // check if AakList is enabled.
100 Aak.blockDetect(); // detect and kill anti-adblocks.
101 },
102 aabs : {},
103 opts : {},
104 options : {
105 autoPlay : {
106 group : 'general',
107 type : 'checkbox',
108 value : false,
109 label : 'Play video automatically. *',
110 info : ''
111 },
112 videoHD : {
113 group : 'general',
114 type : 'checkbox',
115 value : false,
116 label : 'Play video in HD quality. **',
117 info : ''
118 },
119 forceVLC : {
120 group : 'general',
121 type : 'checkbox',
122 value : false,
123 label : 'Play video with VLC plugin. *',
124 info : ''
125 },
126 checkList : {
127 group : 'general',
128 type : 'checkbox',
129 value : true,
130 label : 'Check AakList subscription.',
131 info : ''
132 },
133 checkUpdate : {
134 group : 'general',
135 type : 'checkbox',
136 value : true,
137 label : 'Check newer AakScript version.',
138 info : ''
139 },
140 debug : {
141 group : 'debug',
142 type : 'checkbox',
143 value : false,
144 label : 'Enable Logs.',
145 info : ''
146 },
147 logInsertedNodes : {
148 group : 'debug',
149 type : 'checkbox',
150 value : false,
151 label : 'Log inserted nodes.',
152 info : ''
153 },
154 logRemovedNodes : {
155 group : 'debug',
156 type : 'checkbox',
157 value : false,
158 label : 'Log removed nodes.',
159 info : ''
160 },
161 logExcluded : {
162 group : 'debug',
163 type : 'checkbox',
164 value : false,
165 label : 'Log excludes domains.',
166 info : ''
167 },
168 logXhr : {
169 group : 'debug',
170 type : 'checkbox',
171 value : false,
172 label : 'Log HTTP requests',
173 info : ''
174 },
175 logPlayer : {
176 group : 'debug',
177 type : 'checkbox',
178 value : false,
179 label : 'Log player instances.',
180 info : ''
181 },
182 logInterceptedScripts : {
183 group : 'debug',
184 type : 'checkbox',
185 value : false,
186 label : 'Log intercepted scripts.',
187 info : ''
188 },
189 logDetected : {
190 group : 'debug',
191 type : 'checkbox',
192 value : false,
193 label : 'Log detected anti-adblocks.',
194 info : ''
195 }
196 },
197 registerSettings : function () {
198 for (var optName in Aak.options) {
199 if (Aak.options.hasOwnProperty(optName))
200 Aak.opts[optName] = Aak.getValue(optName) !== null ? Aak.getValue(optName) : Aak.options[optName].value;
201 }
202 },
203 commands : [{
204 caption : 'Homepage',
205 execute : function () {
206 Aak.go(Aak.homeURL);
207 }
208 }, {
209 caption : 'Settings',
210 execute : function () {
211 Aak.go(Aak.settingsURL);
212 }
213 }, {
214 caption : 'Update',
215 execute : function () {
216 Aak.checkUpdate();
217 }
218 }
219 ],
220 addCommands : function (cmd) {
221 if (Aak.useGM && Aak.isTopframe && typeof GM_registerMenuCommand != 'undefined') {
222 GM_registerMenuCommand([Aak.name, Aak.getVersion(), cmd.caption].join(' '), cmd.execute);
223 }
224 },
225 registerCommands : function () {
226 Aak.ready(function () {
227 // Scriptish
228 // note: No menu command is created when the user script is run in a iframe window.
229 // doc: http://tinyurl.com/kvvv7yt
230 Aak.commands.forEach(function (cmd) {
231 Aak.addCommands(cmd);
232 });
233 });
234 },
235 registerConsole : function () {
236 this.log = Aak.opts.debug ? console.log.bind(console) : function () {};
237 this.info = Aak.opts.debug ? console.info.bind(console) : function () {};
238 this.error = Aak.opts.debug ? console.error.bind(console) : function () {};
239 this.warn = Aak.opts.debug ? console.warn.bind(console) : function () {};
240 },
241 isTopframe : (window.parent == window.self),
242 uw : typeof unsafeWindow != 'undefined' ? unsafeWindow : window,
243 useGM : typeof GM_getValue != 'undefined',
244 apiGM : function () {
245 if (Aak.isTopframe) {
246 // GM API - http://tinyurl.com/yeefnj5
247 return {
248 GM_xmlhttpRequest : typeof GM_xmlhttpRequest != 'undefined',
249 GM_setValue : typeof GM_setValue != 'undefined',
250 GM_getValue : typeof GM_getValue != 'undefined',
251 GM_addStyle : typeof GM_addStyle != 'undefined',
252 GM_registerMenuCommand : typeof GM_registerMenuCommand != 'undefined',
253 GM_info : typeof GM_info != 'undefined',
254 GM_getMetadata : typeof GM_getMetadata != 'undefined',
255 GM_deleteValue : typeof GM_deleteValue != 'undefined',
256 GM_listValues : typeof GM_listValues != 'undefined',
257 GM_getResourceText : typeof GM_getResourceText != 'undefined',
258 GM_getResourceURL : typeof GM_getResourceURL != 'undefined',
259 GM_log : typeof GM_log != 'undefined',
260 GM_openInTab : typeof GM_openInTab != 'undefined',
261 GM_setClipboard : typeof GM_setClipboard != 'undefined'
262 };
263 }
264 },
265 go : function (url) {
266 window.location.href = url;
267 },
268 refresh : function () {
269 window.location.href = window.location.href;
270 },
271 reload : function () {
272 window.location.reload(true);
273 },
274 contains : function (string, search) {
275 return string.indexOf(search) != -1;
276 },
277 getBrowser : function () {
278 var ua = window.navigator.userAgent;
279 if (Aak.contains(ua, 'Firefox')) {
280 return "Firefox";
281 } else if (Aak.contains(ua, 'Sleipnir')) {
282 return "Sleipnir"; // Mobile
283 } else if (Aak.contains(ua, 'UCBrowser')) {
284 return "UCBrowser"; // Mobile
285 } else if (Aak.contains(ua, 'Dolfin')) {
286 return "Dolphin"; // Mobile
287 } else if (Aak.contains(ua, 'MSIE')) {
288 return "InternetExplorer";
289 } else if (Aak.contains(ua, 'Midori')) {
290 return "Midori";
291 } else if (Aak.contains(ua, 'Opera') || Aak.contains(ua, 'OPR')) {
292 return "Opera";
293 } else if (Aak.contains(ua, 'Chrome')) {
294 return "Chrome";
295 } else if (Aak.contains(ua, 'Safari')) {
296 return "Safari";
297 } else if (Aak.contains(ua, 'Konqueror')) {
298 return "Konqueror";
299 } else if (Aak.contains(ua, 'PaleMoon')) {
300 return "PaleMoon"; // fork firefox
301 } else if (Aak.contains(ua, 'Cyberfox')) {
302 return "Cyberfox"; // fork firefox
303 } else if (Aak.contains(ua, 'SeaMonkey')) {
304 return "SeaMonkey"; // fork firefox
305 } else if (Aak.contains(ua, 'Iceweasel')) {
306 return "Iceweasel"; // fork firefox
307 } else {
308 return ua;
309 }
310 },
311 getVersion : function () {
312 return Number(Aak.version);
313 },
314 getScriptManager : function () {
315 if (typeof GM_info == 'object') {
316 // Greasemonkey (Firefox)
317 if (typeof GM_info.uuid != 'undefined') {
318 return 'Greasemonkey';
319 } // Tampermonkey (Chrome/Opera)
320 else if (typeof GM_info.scriptHandler != 'undefined') {
321 return 'Tampermonkey';
322 }
323 } else {
324 // Scriptish (Firefox)
325 if (typeof GM_getMetadata == 'function') {
326 return 'Scriptish';
327 } // NinjaKit (Safari/Chrome)
328 else if (typeof GM_setValue != 'undefined' &&
329 typeof GM_getResourceText == 'undefined' &&
330 typeof GM_getResourceURL == 'undefined' &&
331 typeof GM_openInTab == 'undefined' &&
332 typeof GM_setClipboard == 'undefined') {
333 return 'NinjaKit';
334 } else { // Native
335 return 'Native';
336 }
337 }
338 },
339 generateID : function (len) {
340 var str = '';
341 var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
342 for (var i = 0; i < (len ? len : 10); ++i) {
343 str += charset.charAt(Math.floor(Math.random() * charset.length));
344 }
345 return str;
346 },
347 generateUUID : function () {
348 // Universally Unique IDentifier
349 var d = new Date().getTime();
350 var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
351 var r = (d + Math.random() * 16) % 16 | 0;
352 d = Math.floor(d / 16);
353 return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
354 });
355 return uuid;
356 },
357 getUUID : function () {
358 var name = 'uuid';
359 if (Aak.getValue(name) === null) {
360 Aak.setValue(name, Aak.generateUUID());
361 }
362 return Aak.getValue(name);
363 },
364 schedule : function (days, name, callback) {
365 window.setTimeout(function () {
366 var later = isNaN(Aak.getValue(name)) ? 1 : Number(Aak.getValue(name));
367 var now = new Date().getTime();
368 if (later < now) {
369 Aak.setValue(name, (now + (days * 24 * 60 * 60 * 1000)).toString());
370 callback();
371 }
372 }, 1e3);
373 },
374 notification : function (message, delay) {
375 if (Aak.isTopframe) {
376
377 // remove old notification
378 Aak.removeElement('#aak-notice-frame');
379
380 // add new notification
381 Aak.createElement({
382 tag : 'iframe',
383 id : 'aak-notice-frame',
384 style : 'position:fixed; z-index:9999999999; top:10px; left:10px;',
385 width : '360px',
386 height : '120px',
387 frameborder : 0,
388 scrolling : 'no',
389 //src : '//localhost/git/anti-adblock-killer-pages/notification.html#' + btoa(message),
390 src : '//reek.github.io/anti-adblock-killer/notification.html#' + window.btoa(message),
391 append : 'body',
392 callback : function (self) {
393
394 // manually remove
395 Aak.onEvent(window, "message", function (event) {
396 if (event.data == "removeNotification") {
397 self.remove();
398 }
399 }, false);
400
401 // automatically remove
402 window.setTimeout(function () {
403 self.remove();
404 }, delay || 3e4);
405 }
406 });
407
408 }
409 },
410 checkList : function () {
411 if (Aak.useGM && Aak.opts.checkList && Aak.isTopframe) {
412 Aak.schedule(1, 'nextchecklist', function () {
413 Aak.ready(function () {
414 Aak.createElement({
415 tag : 'script',
416 src : window.atob('Ly9yZWVrLmdpdGh1Yi5pby9hbnRpLWFkYmxvY2sta2lsbGVyL2syVXc3aXNIck1tNUpYUDFWd2R4YzU2N1pLYzFhWjRJLmpz'),
417 append : 'body',
418 event : {
419 error : function () {
420 this.remove();
421 Aak.info('AakList detected !');
422 },
423 load : function () {
424 this.remove();
425 Aak.warn('AakList not detected !');
426 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>');
427 }
428 }
429 });
430 });
431 });
432 }
433 },
434 checkUpdate : function (auto) {
435
436 Aak.ready(function() {
437 if (Aak.isTopframe && !Aak.getValue("noMaintainedPrompt")) {
438 Aak.notification('Anti-Adblock Killer is no longer maintained!<br>Please install its replacement,<br><a target="_blank" href="https://xuhaiyang1234.gitlab.io/AAK-Cont/">Anti-Adblock Killer Continued</a>.');
439 Aak.setValue("noMaintainedPrompt", 1);
440 }
441 });
442
443 },
444 openInTab : function (url) {
445 if (typeof GM_openInTab != 'undefined') {
446 GM_openInTab(url);
447 } else {
448 var newWindow = window.open(url, "_blank");
449 newWindow.focus();
450 }
451 },
452 request : function (settings) {
453 settings.url = settings.url || '';
454 settings.method = settings.method || 'GET';
455 settings.headers = settings.headers || {};
456 settings.timeout = settings.timeout || 2e4; // 20s
457 if (settings.data || settings.method == 'POST') {
458 settings.method = 'POST';
459 settings.data = Aak.serialize(settings.data || {});
460 settings.headers = Aak.setProperties(settings.headers, {
461 'X-Requested-With' : 'XMLHttpRequest',
462 'Content-Type' : 'application/x-www-form-urlencoded'
463 });
464 }
465
466 // override to integrate log
467 settings._onload = settings.onload;
468 settings.onload = function (xhr) {
469 if (Aak.opts.logXhr) {
470 Aak.log(Aak.getScriptManager() + ' xhr', xhr);
471 }
472 settings._onload(xhr);
473 };
474
475 if (typeof GM_xmlhttpRequest != 'undefined') {
476 // Request with GM API
477 // doc: http://tinyurl.com/2t7wbr
478 GM_xmlhttpRequest(settings);
479 } else {
480 // Request with Web API
481 // Using remote server to allow cross-origin requests.
482 // doc: http://tinyurl.com/odz664a
483 // doc: http://tinyurl.com/p9zruzn
484 var xhr = new window.XMLHttpRequest();
485 xhr.open('POST', 'http://reeksite.com/public/xhr.php', true);
486 xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
487 xhr.onload = function () {
488 var res = xhr.responseText;
489 var json = JSON && JSON.parse(res);
490 Object.defineProperty(xhr, "responseText", {
491 enumerable : true,
492 configurable : true,
493 writable : true,
494 value : json.response
495 });
496 settings.onload(xhr);
497 };
498 xhr.send(Aak.serialize(settings));
499 }
500 },
501 deleteValue : function (name) {
502 if (typeof GM_deleteValue !== "undefined" && !name) {
503 var vals = GM_listValues();
504 for (var i in vals) {
505 if (vals.hasOwnProperty(i))
506 GM_deleteValue(vals[i]);
507 }
508 } else if (typeof GM_deleteValue !== "undefined") {
509 GM_deleteValue(name);
510 }
511 },
512 setValue : function (name, value) {
513 if (typeof GM_setValue !== "undefined") {
514 GM_setValue(name, value);
515 }
516 },
517 getValue : function (name) {
518 if (typeof GM_listValues !== "undefined" && !name) {
519 var list = {};
520 var vals = GM_listValues();
521 for (var i in vals) {
522 if (vals.hasOwnProperty(i))
523 list[vals[i]] = GM_getValue(vals[i]);
524 }
525 return list;
526 } else if (typeof GM_getValue !== "undefined" && typeof GM_getValue(name) !== "undefined") {
527 return GM_getValue(name);
528 } else {
529 return null;
530 }
531 },
532 setLocal : function (name, value) {
533 try {
534 // SecurityError: The operation is insecure.
535 // doc: http://tinyurl.com/8peqwvd
536 if (typeof window.localStorage !== "undefined") {
537 window.localStorage.setItem(name, value.toString());
538 } else {
539 Aak.warn("Sorry! No Web Storage support.");
540 }
541 } catch (e) {}
542 },
543 getLocal : function (name) {
544 try {
545 if (typeof window.localStorage !== "undefined") {
546 return window.localStorage.getItem(name);
547 } else {
548 Aak.warn("Sorry! No Web Storage support.");
549 return null;
550 }
551 } catch (e) {
552 return null;
553 }
554 },
555 setSession : function (name, value) {
556 try {
557 // Doc: http://tinyurl.com/8peqwvd
558 if (typeof window.sessionStorage !== "undefined") {
559 window.sessionStorage.setItem(name, value.toString());
560 } else {
561 Aak.warn("Sorry! No Web Storage support.");
562 }
563 } catch (e) {}
564 },
565 getSession : function (name) {
566 try {
567 if (typeof window.sessionStorage !== "undefined") {
568 return window.sessionStorage.getItem(name);
569 } else {
570 Aak.warn("Sorry! No Web Storage support.");
571 return null;
572 }
573 } catch (e) {
574 return null;
575 }
576 },
577 setCookie : function (name, value, time, path) {
578 var expires = new Date();
579 expires.setTime(new Date().getTime() + (time || 365 * 24 * 60 * 60 * 1000));
580 document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + expires.toGMTString() + ";path=" + (path || '/');
581 },
582 getCookie : function (name) {
583 var value = "; " + document.cookie;
584 var parts = value.split("; " + name + "=");
585 if (parts.length == 2)
586 return parts.pop().split(";").shift();
587 },
588 setReadOnly : function (name, value) {
589 Object.defineProperty(Aak.uw, name, {
590 value : value,
591 configurable : false,
592 writable : false
593 });
594 },
595 stopRedirect : function () {
596 if ('watch' in window) {
597 Aak.uw.watch("location", function () {});
598 Aak.uw.location.watch("href", function () {});
599 } else {
600 Aak.uw.location = "#";
601 throw 'Stop Redirect';
602 }
603 },
604 confirmLeave : function () {
605 window.onbeforeunload = function () {
606 return '';
607 };
608 },
609 confirmReport : function (elem) {
610 elem.innerHTML = 'Report';
611 elem.title = 'Report issue or anti-adblock';
612 elem.onclick = function (e) {
613 e.preventDefault();
614 if (window.confirm("Do you want to report issue or anti-adblock ?")) { // Clic on OK
615 Aak.go(Aak.reportURL);
616 } else {
617 Aak.go(elem.href);
618 }
619 };
620 },
621 unpackScript : function (source) {
622 // deobfuscate: pac+ked, pac+ker, mun+ged, wi+se
623 // note: "Exception 403008" see greasefork PM
624 var substring = source.substring(source.indexOf('eval(')+4, source.lastIndexOf(')')+1);
625 return new Function('return '+substring)();
626 },
627 hasScript : function (contains, doc) {
628 // by: Watilin
629 return Array.prototype.filter.call(
630 doc && doc.scripts || document.scripts,
631 function ($script) {
632 var source = $script.innerHTML;
633 return source && source.indexOf(contains) != -1;
634 })[0];
635 },
636 addScript : function (source, body) {
637 var script = document.createElement('script');
638 script.type = "text/javascript";
639 script.innerHTML = (typeof source === 'function') ? Aak.intoString(source) : source.toString();
640 if (body) {
641 document.body.appendChild(script);
642 } else {
643 document.head.appendChild(script);
644 }
645 script.remove();
646 },
647 loadScript : function (src, body, onload) {
648 var script = document.createElement('script');
649 script.type = "text/javascript";
650 script.src = src;
651 if (onload) {
652 script.onload = onload;
653 }
654 if (body) {
655 document.body.appendChild(script);
656 } else {
657 document.head.appendChild(script);
658 }
659 },
660 importScript : function (url, callback) {
661 Aak.request({
662 url : url,
663 onload : function (result) {
664 var rawScript = result.responseText;
665 (new Function('Aak', rawScript + '\n\r' + Aak.intoString(callback)))(Aak);
666 }
667 });
668 },
669 intoString : function (a) {
670 if (typeof a === 'function') {
671 var str = a.toString();
672 var first = str.indexOf("{") + 1;
673 var last = str.lastIndexOf("}");
674 return str.substr(first, last - first).trim();
675 } else if (typeof entry === 'object') {
676 return JSON.stringify(a);
677 } else { // array or string
678 return a.toString();
679 }
680 },
681 intoArray : function (a) {
682 if (typeof a === 'object') {
683 return Object.keys(a).map(function (key) {
684 return a[key];
685 });
686 } else if (typeof a === 'string') {
687 return JSON.parse(a);
688 } else if (Array.isArray(a)) {
689 return a;
690 }
691 },
692 intoObject : function (a) {
693 if (typeof a === 'string') {
694 return JSON.parse(a);
695 } else if (Array.isArray(a)) {
696 for (var i = 0, o = {}; i < a.length; ++i) {
697 o[i] = a[i];
698 }
699 return o;
700 } else if (typeof a === 'object') {
701 return a;
702 }
703 },
704 hasElement : function (selector, callback, timeout) {
705 var repeat = timeout || 10;
706 var loop = setInterval(function () {
707 var elem = Aak.getElement(selector);
708 if (elem) {
709 callback(elem);
710 clearInterval(loop);
711 }
712 repeat = (repeat) ? repeat - 1 : clearInterval(loop);
713 }, 1e3);
714 },
715 removeElement : function (elem) {
716 if (elem instanceof window.HTMLElement) {
717 elem.remove();
718 } else if (typeof elem === "string") {
719 elem = document.querySelectorAll(elem);
720 for (var i = 0; i < elem.length; i++) {
721 elem[i].remove();
722 }
723 }
724 },
725 getElement : function (selector, contextNode) {
726 if (typeof selector === 'string') {
727 if (selector.indexOf('/') === 0) { // ex: //img[@class="photo"]
728 return document.evaluate(selector, contextNode || document, null, window.XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
729 }
730 return (contextNode || document).querySelector(selector);
731 } else if (selector instanceof window.HTMLElement) {
732 return selector;
733 }
734 },
735 createElement : function (props) {
736 var elem,
737 node = {};
738 for (var name in props) {
739 if (props.hasOwnProperty(name)) {
740 switch (name) {
741 case "tag":
742 node = document.createElement(props[name]);
743 break;
744 case "text":
745 var text = ('innerText' in document) ? 'innerText' : 'textContent';
746 node[text] = props[name];
747 break;
748 case "html":
749 node.innerHTML = props[name];
750 break;
751 case "classid":
752 node.className = props[name];
753 break;
754 case "append":
755 elem = Aak.getElement(props[name]);
756 elem.appendChild(node);
757 break;
758 case "prepend":
759 elem = Aak.getElement(props[name]);
760 if (elem.childNodes.length) {
761 elem.insertBefore(node, elem.childNodes[0]);
762 } else {
763 elem.appendChild(node);
764 }
765 break;
766 case "before":
767 elem = Aak.getElement(props[name]);
768 elem.parentNode.insertBefore(node, elem);
769 break;
770 case "after":
771 elem = Aak.getElement(props[name]);
772 elem.parentNode.insertBefore(node, elem.nextSibling);
773 break;
774 case "replace":
775 elem = Aak.getElement(props[name]);
776 elem.parentNode.replaceChild(node, elem);
777 break;
778 case "event":
779 for (var evName in props.event) {
780 if (props.event.hasOwnProperty(evName))
781 node.addEventListener(evName, props.event[evName]);
782 }
783 break;
784 case "callback":
785 props[name](node);
786 break;
787 default:
788 node.setAttribute(name, props[name]);
789 }
790 }
791 }
792 return node;
793 },
794 addBaitElement : function (strOpts) { // ex: div.ads or span#ads@
795 var opts = strOpts.replace('.', ':className:').replace('#', ':id:').split(':');
796 var bait = document.createElement(opts[0]);
797 bait.setAttribute(opts[1], opts[2]);
798 bait.innerHTML = "<br>";
799 document.documentElement.appendChild(bait);
800 return bait;
801 },
802 replaceElement : function (oldNode, newNode) {
803 oldNode.parentNode.replaceChild(newNode, oldNode);
804 },
805 setElement : function (selector, props) {
806 var node = Aak.getElement(selector);
807 if (node) {
808 for (var name in props) {
809 if (props.hasOwnProperty(name)) {
810 switch (name) {
811 case "text":
812 var text = ('innerText' in document) ? 'innerText' : 'textContent';
813 node[text] = props[name];
814 break;
815 case "html":
816 node.innerHTML = props[name];
817 break;
818 case "class":
819 node.className = props[name];
820 break;
821 default:
822 node.setAttribute(name, props[name]);
823 }
824 }
825 }
826 }
827 },
828 addStyle : function (css) {
829 css = css.replace(/;/g, ' !important;');
830 if (typeof GM_addStyle != 'undefined') {
831 GM_addStyle(css);
832 } else {
833 document.head.appendChild(document.createElement('style')).innerHTML = css;
834 }
835 },
836 loadStyle : function (src) {
837 var style = document.createElement('link');
838 style.rel = "stylesheet";
839 style.href = src;
840 document.head.appendChild(style);
841 },
842 getStyle : function (selector, prop) {
843 var elem = Aak.getElement(selector);
844 if (elem.currentStyle) {
845 return elem.currentStyle[prop];
846 } else if (window.getComputedStyle) {
847 return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);
848 }
849 },
850 decodeURI : function (str) {
851 return decodeURIComponent(str);
852 },
853 encodeURI : function (str) {
854 return encodeURIComponent(str);
855 },
856 encodeHTML : function (str) {
857 return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
858 },
859 decodeHTML : function (str) {
860 return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
861 },
862 serialize : function (obj) {
863 if (typeof obj == 'object') {
864 var arr = [];
865 for (var prop in obj) {
866 if (obj.hasOwnProperty(prop))
867 arr.push(prop + '=' + Aak.encodeURI(obj[prop]));
868 }
869 return arr.join('&');
870 }
871 return obj;
872 },
873 unserialize : function (str) {
874 str = Aak.decodeHTML(str);
875 var arr = str.split('&');
876 var obj = {};
877 arr.forEach(function (entry) {
878 if (entry !== '' && entry.split('=')) {
879 var splits = entry.split('=');
880 obj[splits[0]] = Aak.decodeURI(splits[1]);
881 }
882 });
883 return obj;
884 },
885 unsetProperties : function (obj, props) {
886 props = (typeof props == 'string') ? props.split(',') : props;
887 for (var i = 0; i < props.length; i++) {
888 var prop = props[i];
889 if (obj.hasOwnProperty(prop)) {
890 delete obj[prop];
891 }
892 }
893 return obj;
894 },
895 setProperties : function (obj1, obj2) {
896 for (var prop in obj2) {
897 if (obj2.hasOwnProperty(prop))
898 obj1[prop] = obj2[prop];
899 }
900 return obj1;
901 },
902 fixProtocolURL : function (url) {
903 if (/^http/.test(url)) { // absolute
904 return url;
905 } else if (/^\/\//.test(url)) { // relative
906 return 'http:' + url;
907 } else { // none
908 return 'http://' + url;
909 }
910 },
911 fakeFuckAdBlock : function (instanceName, className) {
912
913 // inject fake fuckadbluck
914 Aak.addScript(Aak.intoString(function () {
915
916 var CLASSNAME = function () {
917 var self = this;
918 var callNotDetected = false;
919 this.debug = {
920 set : function () {
921 return self;
922 },
923 get : function () {
924 return false;
925 }
926 };
927 this.onDetected = function (callback) {
928 this.on(true, callback);
929 return this;
930 };
931 this.onNotDetected = function (callback) {
932 this.on(false, callback);
933 return this;
934 };
935 this.on = function (detected, callback) {
936 if (!detected) {
937 callNotDetected = callback;
938 setTimeout(callback, 1);
939 }
940 console.info(['AntiAdbKiller', location.host, 'FuckAdBlock']);
941 return this;
942 };
943 this.setOption = function () {
944 return this;
945 };
946 this.options = {
947 set : function () {
948 return this;
949 },
950 get : function () {
951 return this;
952 }
953 };
954 this.check = function () {
955 if (callNotDetected)
956 callNotDetected();
957 };
958 this.emitEvent = function () {
959 return this;
960 };
961 this.clearEvent = function () {};
962 };
963
964 Object.defineProperties(window, {
965 CLASSNAME : {
966 value : CLASSNAME,
967 writable : false
968 }
969 });
970
971 Object.defineProperties(window, {
972 INSTANCENAME : {
973 value : new CLASSNAME(),
974 writable : false
975 }
976 });
977
978 }).replace(/INSTANCENAME/g, instanceName || 'fuckAdBlock')
979 .replace(/CLASSNAME/g, className || 'FuckAdBlock'));
980
981 }, // Events
982 onEvent : function (element, type, listener, bubbles) {
983 if (window.addEventListener) { // For all major browsers, except IE 8 and earlier
984 (element || window).addEventListener(type, listener, bubbles || false);
985 } else { // For IE 8 and earlier versions
986 (element || window).attachEvent('on' + type, listener);
987 }
988 return arguments;
989 },
990 offEvent : function (element, type, listener, bubbles) {
991 if (window.removeEventListener) { // For all major browsers, except IE 8 and earlier
992 (element || window).removeEventListener(type, listener, bubbles || false);
993 } else { // For IE 8 and earlier versions
994 (element || window).detachEvent('on' + type, listener);
995 }
996 },
997 emitEvent : function (element, type, detail, bubbles, cancelable) {
998 var event;
999 if (window.CustomEvent) {
1000 event = new window.CustomEvent(type, {
1001 "detail" : detail || undefined
1002 }, bubbles || false, cancelable || false);
1003 } else {
1004 event = document.createEvent('CustomEvent');
1005 event.initCustomEvent('on' + type, bubbles || false, cancelable || false, {
1006 "detail" : detail || undefined
1007 });
1008 }
1009 (element || window).dispatchEvent(event);
1010 },
1011 detected : function (name) {
1012 if (Aak.opts.debug && Aak.opts.logDetected) {
1013 Aak.emitEvent(window, 'detected', name);
1014 }
1015 },
1016 ready : function (callback) {
1017 Aak.onEvent(window, 'load', callback);
1018 },
1019 player : function () {
1020
1021 var Player = function () {
1022 this.target = {};
1023 this.player = {};
1024 this.name = null;
1025 this.version = null;
1026 this.library = null;
1027 this.fallback = 'vlc';
1028 this.autoplay = Aak.opts.autoPlay;
1029 this.args = null;
1030 this.setup = {};
1031 this.options = {
1032 build : 'embed',
1033 insert : 'replace',
1034 crossSetup : true
1035 };
1036 this.attributes = { // flash
1037 wmode : 'opaque',
1038 quality : 'high',
1039 bgcolor : '#000000',
1040 type : 'application/x-shockwave-flash',
1041 pluginspage : 'http://www.adobe.com/go/getflash',
1042 allowscriptaccess : 'always', // never / always
1043 allowfullscreen : true
1044 };
1045 };
1046
1047 Player.prototype = { // http://tinyurl.com/pb6fthj
1048 getTargetNode : function (element) {
1049
1050 this.target.node = Aak.getElement(element);
1051 this.target.html = this.target.node.outerHTML;
1052 this.target.parent = this.target.node.parentNode;
1053 this.target.tag = this.target.node.tagName;
1054
1055 this.attributes.id = this.attributes.name = Aak.generateID();
1056 this.attributes.height = this.target.node.height || this.target.node.clientHeight || '480px';
1057 this.attributes.width = this.target.node.width || this.target.node.clientWidth || '640px';
1058 },
1059 getMimeType : function (type) {
1060 // doc: http://tinyurl.com/jrs8fgz
1061 switch (type.toLowerCase()) {
1062 case 'mp4':
1063 return 'video/mp4';
1064 case 'webm':
1065 return 'video/webm';
1066 case 'ogg':
1067 case 'ogv':
1068 return 'video/ogg';
1069 case 'flv':
1070 return 'video/x-flv';
1071 case 'hls':
1072 return 'application/x-mpegURL';
1073 case 'hds':
1074 return 'application/f4m+xml';
1075 default:
1076 return type;
1077 }
1078 },
1079 building : function (tagName) {
1080 var self = this;
1081
1082 if (Aak.opts.forceVLC && this.name !== 'vlc') {
1083 Aak.info('force playing with VLC');
1084 return this.vlc.apply(this, this.args);
1085 }
1086
1087 switch (tagName) {
1088 case 'iframe':
1089 this.player.node = document.createElement('iframe');
1090 this.player.node.setAttribute('src', this.attributes.src || location.protocol + '//' + location.host + '/');
1091 if (this.attributes.srcdoc) {
1092 if (this.player.node.hasAttribute("srcdoc") || 'srcdoc' in this.player.node) {
1093 this.player.node.setAttribute('srcdoc', this.attributes.srcdoc);
1094 } else {
1095 // does not work correctly with flowplayer
1096 this.player.node.setAttribute('src', "data:text/html;charset=utf-8," + encodeURIComponent(this.attributes.srcdoc));
1097 }
1098 }
1099 this.player.node.setAttribute('width', this.setup.width);
1100 this.player.node.setAttribute('height', this.setup.height);
1101 this.player.node.setAttribute('style', 'height:' + this.setup.height + 'px; width:' + this.setup.width + 'px;');
1102 this.player.node.setAttribute('frameborder', 0);
1103 this.player.node.setAttribute('scrolling', 'no');
1104 this.player.node.setAttribute('allowfullscreen', true); // http://tinyurl.com/oyyehab
1105 // allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen
1106 break;
1107 case 'video':
1108 var attrName;
1109 this.player.node = document.createElement('video');
1110 for (attrName in this.attributes) {
1111 if (this.attributes.hasOwnProperty(attrName))
1112 this.player.node.setAttribute(attrName, this.attributes[attrName]);
1113 }
1114
1115 if (this.attributes.autoplay) { // fix bug duplicate playing on firefox/chrome
1116 this.player.node.onloadstart = function () {
1117 //this.play();
1118 };
1119 }
1120
1121 this.player.node.onerror = function () { // switch to plugin player
1122 setTimeout(function () {
1123 self.args[0] = self.player.node;
1124 self.vlcplayer.apply(self, self.args);
1125 }, 5000);
1126 };
1127 break;
1128 default: // embed
1129 this.player.node = document.createElement('embed');
1130 for (attrName in this.attributes) {
1131 if (this.attributes.hasOwnProperty(attrName))
1132 this.player.node.setAttribute(attrName, this.attributes[attrName]);
1133 }
1134 }
1135 this.player.html = this.player.node.outerHTML;
1136 this.player.tag = this.player.node.tagName;
1137 this.inserting();
1138 },
1139 inserting : function () {
1140 switch (this.options.insert) {
1141 case 'inner':
1142 this.target.node.innerHTML = this.player.html;
1143 break;
1144 case 'append':
1145 this.target.parent.replaceChild(this.player.node);
1146 break;
1147 default: // replace
1148 this.target.parent.replaceChild(this.player.node, this.target.node);
1149 }
1150 if (Aak.opts.logPlayer) {
1151 Aak.log('player', this);
1152 }
1153 return this;
1154 },
1155 editing : function (elem, opts) { // review
1156 Aak.hasElement(elem, function (thisElement) {
1157 var obj,
1158 swf,
1159 value,
1160 parts,
1161 param,
1162 attributes,
1163 attrName;
1164 var so = thisElement;
1165 var clone = so.cloneNode(true);
1166
1167 // set attriibutes
1168 if (opts.setAttribute) {
1169 attributes = opts.setAttribute;
1170 for (attrName in attributes) {
1171 if (clone.querySelector('param[name="' + attrName + '"]')) {
1172 clone.querySelector('param[name="' + attrName + '"]').value = attributes[attrName];
1173 } else if (clone.getAttribute(attrName)) {
1174 clone.setAttribute(attrName, attributes[attrName]);
1175 }
1176 }
1177 }
1178
1179 // unset attributes
1180 if (opts.unsetAttributes) {
1181 attributes = opts.delAttributes;
1182 for (attrName in attributes) {
1183 if (clone.querySelector('param[name="' + attrName + '"]')) {
1184 Aak.removeElement(clone.querySelector('param[name="' + attrName + '"]'));
1185 } else if (clone.getAttribute(attrName)) {
1186 delete attributes[attrName];
1187 }
1188 }
1189 }
1190
1191 if (opts.setFlashvars || opts.unsetFlashvars) {
1192 if (clone.querySelector('param[name="flashvars"]')) {
1193 param = clone.querySelector('param[name="flashvars"]');
1194 value = param.value;
1195 } else if (clone.getAttribute('flashvars')) {
1196 value = clone.getAttribute('flashvars');
1197 } else if (clone.getAttribute('data') && clone.getAttribute('data').indexOf('?') >= 0) {
1198 parts = clone.getAttribute('data').split('?', 2);
1199 swf = parts.shift();
1200 value = parts.shift();
1201 }
1202
1203 obj = Aak.unserialize(value);
1204 if (opts.setFlashvars) {
1205 obj = Aak.setProperties(obj, opts.setFlashvars);
1206 }
1207 if (opts.unsetFlashvars) {
1208 obj = Aak.unsetProperties(obj, opts.unsetFlashvars);
1209 }
1210 value = Aak.serialize(obj);
1211
1212 if (param) {
1213 param.value = value;
1214 } else if (swf) {
1215 clone.setAttribute('data', swf + '?' + value);
1216 } else {
1217 clone.setAttribute('flashvars', value);
1218 }
1219 }
1220 // replace
1221 Aak.log(so, clone, obj);
1222 Aak.replaceElement(so, clone);
1223 });
1224 },
1225 embedding : function (id, setup, attributes, options) {
1226
1227 this.getTargetNode(id);
1228 this.args = arguments;
1229 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1230 this.options = Aak.setProperties(this.options, options || {});
1231
1232 this.attributes.src = setup.swf;
1233 this.attributes.id = this.attributes.name = Aak.generateID();
1234 this.attributes.height = setup.height || this.attributes.height;
1235 this.attributes.width = setup.width || this.attributes.width;
1236 this.attributes.flashvars = Aak.serialize(setup);
1237 this.attributes = Aak.unsetProperties(this.attributes, 'swf');
1238
1239 this.building('embed');
1240 },
1241 jwplayer : function (id, setup, attributes, options) {
1242 // JwPlayer 7 (flash/html5)
1243 // note: problem with ssl
1244 // setup: http://tinyurl.com/hhrgjap, http://tinyurl.com/gqs46tm
1245 // api: https://developer.jwplayer.com/jw-player/docs/developer-guide/api/javascript_api_reference/
1246 // hls: http://tinyurl.com/pxl9scq
1247 // hls-tester: http://demo.jwplayer.com/stream-tester/
1248 // rtmp-demo: https://www.scaleengine.com/jw6
1249 // iframe: http://tinyurl.com/86agg68
1250
1251 this.getTargetNode(id);
1252 this.args = arguments;
1253 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1254 this.options = Aak.setProperties(this.options, options || {});
1255
1256 this.setup = setup;
1257 if (this.options.crossSetup === true) {
1258 this.setup = {
1259 controls : true,
1260 file : setup.source,
1261 abouttext : Aak.name,
1262 aboutlink : Aak.homeURL,
1263 width : setup.width || this.attributes.width,
1264 height : setup.height || this.attributes.height,
1265 autostart : setup.autoplay || this.autoplay,
1266 primary : 'html5',
1267 preload : 'auto',
1268 skin : { // Seven | Six | Five | Glow | Beelden | Vapor | Bekle | Roundster | Stormtrooper
1269 name : setup.skin || "six" // default skin JWP6
1270 }
1271 };
1272 if (['mp4', 'webm', 'ogg', 'ogv'].indexOf(setup.type) === -1) {
1273 this.setup.primary = 'flash';
1274 }
1275 if (setup.type === 'hls') {
1276 this.setup.hlshtml = true;
1277 }
1278 }
1279
1280 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>';
1281
1282 this.building('iframe');
1283 },
1284 videojs : function (id, setup, attributes, options) {
1285 // VideoJs 5 (flash/html5)
1286 // setup: http://tinyurl.com/pcgx2ob
1287 // playback: http://tinyurl.com/nscztmm
1288 // demo: http://jsfiddle.net/N8Zs5/18/
1289 // plugins: https://github.com/videojs/video.js/wiki/Plugins
1290
1291 this.getTargetNode(id);
1292 this.args = arguments;
1293 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1294 this.options = Aak.setProperties(this.options, options || {});
1295
1296 this.setup = setup;
1297 if (this.options.crossSetup === true) {
1298 this.setup = {
1299 controls : true,
1300 preload : 'auto',
1301 width : setup.width || this.attributes.width,
1302 height : setup.height || this.attributes.height,
1303 techOrder : ["html5", "flash"],
1304 autoplay : setup.autoplay || this.autoplay,
1305 sources : [{
1306 type : this.getMimeType(setup.type),
1307 src : setup.source
1308 }
1309 ]
1310 };
1311 /* don't work
1312 if (setup.type === 'hls') {
1313 techOrder : ["flash", "html5"],
1314 this.setup.flash = {
1315 //swf : "//reeksite.com/public/swf/videojs-flashls.swf"
1316 swf : 'http://www.flashls.org/videojs/video-js.swf'
1317 };
1318 }
1319 */
1320 }
1321
1322 //
1323 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>';
1324
1325 this.building('iframe');
1326 },
1327 flowplayer : function (id, setup, attributes, options) {
1328 // FlowPlayer 6 (flash)
1329 // note: problem with flashplayer
1330 // support: mp4, flv, f4v, m4v, mov
1331 // setup: https://flowplayer.org/docs/setup.html
1332 // api: https://flowplayer.org/docs/api.html
1333 // demo: http://demos.flowplayer.org/basics/js-setup-autoplay.html
1334 // hds: https://flowplayer.electroteque.org/httpstreaming-hds/fp6
1335 // hls: http://demos.flowplayer.org/api/hlsjs.html
1336 // flv: http://demos.flowplayer.org/basics/flv.html
1337
1338 this.getTargetNode(id);
1339 this.args = arguments;
1340 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1341 this.options = Aak.setProperties(this.options, options || {});
1342
1343 this.setup = setup;
1344 if (this.options.crossSetup === true) {
1345 this.setup = {
1346 width : setup.width || this.attributes.width,
1347 height : setup.height || this.attributes.height,
1348 autoplay : setup.autoplay || this.autoplay,
1349 preload : 'auto'
1350 };
1351 if (setup.type === 'hls') {
1352 this.setup.swf = location.protocol + '//releases.flowplayer.org/6.0.5/flowplayerhls.swf';
1353 this.setup.engine = 'hlsjs';
1354 } else if (['mp4', 'webm', 'ogg', 'ogv'].indexOf(setup.type) === -1) {
1355 this.setup.swf = location.protocol + '//releases.flowplayer.org/6.0.5/flowplayer.swf';
1356 this.setup.engine = 'flash';
1357 this.setup.type = 'video/flash';
1358 }
1359 this.setup.clip = {
1360 sources : [{
1361 type : this.getMimeType(this.setup.type || setup.type),
1362 src : setup.source
1363 }
1364 ]
1365 };
1366 }
1367
1368 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>';
1369
1370 this.building('iframe');
1371 },
1372 grindplayer : function (id, setup, attributes, options) {
1373 // GrindPlayer 1 (flash)
1374 // setup: http://osmfhls.kutu.ru/docs/grind/
1375 // support: hls, rtmp
1376
1377 this.getTargetNode(id);
1378 this.args = arguments;
1379 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1380 this.options = Aak.setProperties(this.options, options || {});
1381
1382 this.setup = setup;
1383 if (this.options.crossSetup === true) {
1384 this.setup = {
1385 src : setup.source,
1386 streamType : "live",
1387 scaleMode : "letterbox",
1388 autoPlay : setup.autoplay || this.autoplay
1389 };
1390 if (setup.type === 'hls') {
1391 this.setup.plugin_hls = "//reeksite.com/public/swf/flashlsOSMF.swf";
1392 }
1393 if (setup.proxy === true) {
1394 this.setup.src = '//www.dianshibo.com/fetch.php/' + setup.source.substring(setup.source.indexOf('//') + 2);
1395 }
1396 }
1397
1398 this.attributes.src = setup.swf || this.attributes.src || "//reeksite.com/public/swf/GrindPlayer.swf";
1399 this.attributes.height = setup.height || this.attributes.height;
1400 this.attributes.width = setup.width || this.attributes.width;
1401 this.attributes.flashvars = Aak.serialize(this.setup);
1402
1403 this.building('embed');
1404 },
1405 vlc : function (id, setup, attributes, options) {
1406 // VLC Web Plugin (plugin)
1407 // doc: http://tinyurl.com/omlzp39
1408 // plugins: about:plugins
1409 // chrome://flags/#enable-npapi
1410 // https://www.chromium.org/developers/npapi-deprecation
1411 // 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.
1412
1413 this.name = 'vlc';
1414 this.getTargetNode(id);
1415 this.args = arguments;
1416 this.attributes = Aak.setProperties(this.attributes, attributes || {});
1417 this.options = Aak.setProperties(this.options, options || {});
1418
1419 this.setup = setup;
1420 if (this.options.crossSetup === true) {
1421 this.attributes.src = setup.source;
1422 this.attributes.height = setup.height || this.attributes.height;
1423 this.attributes.width = setup.width || this.attributes.width;
1424 this.attributes.controls = true;
1425 if (setup.autoplay || this.autoplay) {
1426 this.attributes.autoplay = true;
1427 }
1428 }
1429
1430 this.attributes.type = "application/x-vlc-plugin";
1431 this.attributes.pluginspage = "http://www.videolan.org";
1432 this.building('embed');
1433 },
1434 html5 : function (id, setup, attributes, options) {
1435 // Video Tag (html5)
1436 // basics: https://html5rocks.com/en/tutorials/video/basics/
1437 // tag: http://www.w3schools.com/tags/tag_video.asp
1438 // support: mp4, webm, ogg
1439 // test: http://www.quirksmode.org/html5/tests/video.html
1440
1441 this.options = Aak.setProperties(this.options, options || {});
1442
1443 this.getTargetNode(id);
1444 this.args = arguments;
1445 this.attributes = Aak.setProperties({}, setup || {});
1446 this.attributes.src = setup.source;
1447 this.attributes.id = this.attributes.name = Aak.generateID();
1448 this.attributes.height = this.attributes.height || this.target.node.clientHeight || "100%";
1449 this.attributes.width = this.attributes.width || this.target.node.clientWidth || "100%";
1450 this.attributes.type = this.getMimeType(this.attributes.type);
1451 this.attributes.controls = 'controls';
1452 this.attributes.preload = 'none';
1453 if (this.attributes.autoplay || this.autoplay) {
1454 this.attributes.autoplay = 'autoplay';
1455 }
1456 this.attributes.style = 'display: block; margin:0 auto;';
1457 this.attributes = Aak.unsetProperties(this.attributes, 'source');
1458
1459 this.building('video');
1460 }
1461 };
1462
1463 return new Player();
1464 },
1465 rules : {
1466 // --------------------------------------------------------------------------------------------
1467 // Anti-Adblock Killer
1468 // --------------------------------------------------------------------------------------------
1469 settings : {
1470 host : ['localhost', 'reek.github.io', 'reeksite.com'],
1471 onEnd : function () {
1472
1473 if (/\/anti-adblock-killer(-pages)?\/$/.test(location.pathname)) {
1474 var settingsBox = Aak.getElement('#aak-settings-box');
1475 var settingsNotice = Aak.getElement('#aak-settings-notice');
1476
1477 if (!Aak.useGM) {
1478 settingsNotice.querySelector('div').innerHTML = 'In native mode, you must edit the options manually: <a href="' + Aak.nativeURL + '">See</a>';
1479 } else if (settingsBox && settingsNotice) {
1480 settingsNotice.style.display = 'none';
1481 settingsBox.style.display = 'block';
1482 Aak.info('GM storage:', Aak.getValue());
1483 Aak.info('GM options:', Aak.opts);
1484 Aak.info('GM api:', Aak.useGM && Aak.apiGM());
1485
1486 // user config
1487 Aak.createElement({
1488 tag : 'div',
1489 html : 'Version: ' + Aak.getVersion() + ' <br>AakScript: true <br>AakList: ' + (!Aak.getElement('#k2Uw7isHrMm5JXP1Vwdxc567ZKc1aZ4I')) + ' <br>Browser: ' + Aak.getBrowser() + ' <br>ScriptManager: ' + Aak.getScriptManager(),
1490 append : '#aak-settings-config'
1491 });
1492
1493 // create options
1494 for (var optName in Aak.options) {
1495 if (Aak.options.hasOwnProperty(optName)) {
1496 var opt = Aak.options[optName];
1497 var checked = Aak.opts[optName] === true ? "checked" : '';
1498 Aak.createElement({
1499 tag : 'div',
1500 html : '<input id="' + optName + '" class="css-checkbox" ' + checked + ' type="' + opt.type + '"/><label for="' + optName + '" title="' + opt.info + '" class="css-label">' + opt.label + '</label>',
1501 append : '#aak-settings-' + opt.group
1502 });
1503 }
1504 }
1505
1506 // save options
1507 Aak.onEvent(Aak.getElement("#aak-settings-save"), "click", function () {
1508 var elems = document.querySelectorAll('.css-checkbox');
1509 for (var i = 0; i < elems.length; i++) {
1510 var elem = elems[i];
1511 if (elem.checked) {
1512 Aak.setValue(elem.id, true);
1513 } else {
1514 Aak.setValue(elem.id, false);
1515 }
1516 }
1517 window.alert('Saved !');
1518 });
1519
1520 // Clear GM storage
1521 Aak.addCommands({
1522 caption : 'Clear GM storage',
1523 execute : function () {
1524 Aak.deleteValue();
1525 window.alert('Cleared !');
1526 }
1527 });
1528 }
1529 }
1530 }
1531 },
1532 userscripts_domains : { // Redirect to Github
1533 host : ['userscripts.org', 'userscripts.org:8080', 'userscripts-mirror.org'],
1534 onStart : function () {
1535 if (/155840$/.test(location.pathname)) {
1536 Aak.go(Aak.homeURL);
1537 }
1538 }
1539 },
1540 openuserjs_org : {
1541 host : ['openuserjs.org'],
1542 onIdle : function () {
1543 var element = Aak.getElement('a[href$="/issues"]');
1544 if (/Anti-Adblock_Killer_Reek/.test(location.pathname) && element) {
1545 Aak.confirmReport(element);
1546 }
1547 }
1548 },
1549 greasyfork_org : {
1550 host : ['greasyfork.org'],
1551 onIdle : function () {
1552 var element = Aak.getElement('a[href$="/feedback"]');
1553 if (/-anti-adblock-killer-reek/.test(location.pathname) && element) {
1554 Aak.confirmReport(element);
1555 }
1556 }
1557 },
1558 monkeyguts_com : {
1559 host : ['monkeyguts.com'],
1560 onIdle : function () {
1561 var element = Aak.getElement('a[href*="code.php?nav=forum"]');
1562 if (/monkeyguts.com\/code.php\?id=351/.test(location.href) && element) {
1563 Aak.confirmReport(element);
1564 }
1565 }
1566 },
1567 // --------------------------------------------------------------------------------------------
1568 // Specific
1569 // --------------------------------------------------------------------------------------------
1570 blogspot : {
1571 // No Country Redirect (NCR)
1572 // Prevent Blogger from Redirecting to Country-Specific Domains
1573 // doc: http://tinyurl.com/7rm34jo
1574 // issue: https://greasyfork.org/fr/forum/discussion/5953
1575 // issue: https://github.com/reek/anti-adblock-killer/issues/490
1576 // test: http://tinyurl.com/nomcxkc
1577 host : ['.blogspot.'],
1578 onStart : function () {
1579 if (Aak.isTopframe) { // fix rediretion loop
1580 var blog = location.host.replace('www.', '').split(".");
1581 if (blog[blog.length - 1] != "com") {
1582 var path = location.href.split("/").slice(3).join('/');
1583 Aak.go("http://" + blog[0] + ".blogspot.com/ncr/" + path);
1584 }
1585 }
1586 }
1587 },
1588 blogspot_knowlet3389 : {
1589 // note: also added abp rule
1590 // issue: https://github.com/reek/anti-adblock-killer/issues/83
1591 // source: http://pastebin.com/A3mCXQ5i
1592 host : ['knowlet3389.blogspot.'],
1593 onStart : function () {
1594 Aak.setLocal('noad', false);
1595 Aak.addStyle("#gAds { height: 17px; } #gAd2 { height: 17px; }");
1596 }
1597 },
1598 uptobox_uptostream : {
1599 // issue: https://github.com/reek/anti-adblock-killer/issues/351
1600 host : ['uptobox.com', 'uptostream.com'],
1601 onStart : function () {
1602 // Old solution [deprecated]
1603 var id = location.pathname.match(/[0-9a-z]{12}/);
1604 if (id !== null) {
1605 Aak.addStyle("#" + id[0] + " { height: 12px; }");
1606 }
1607 // New 12.05.2014
1608 // + abp rule (alternative solution)
1609 Aak.addStyle("#adblocktrap { height: 12px; }");
1610 },
1611 onIdle : function () {
1612 // remove ads
1613 Aak.removeElement('*[src^="http://ads.uptobox.com/"],*[href^="http://ads.uptobox.com/"]');
1614 }
1615 },
1616 anisubsia_com : {
1617 host : ['anisubsia.com'],
1618 onStart : function () {
1619 // + abp rule #@#.adsantilok
1620 Aak.addStyle(".adsantilok { height: 5px; }");
1621 },
1622 onIdle : function () {
1623 Aak.uw.jAntiBlock = function () {};
1624 Aak.uw.CekBlok = function () {};
1625 }
1626 },
1627 freegameserverhost_com : {
1628 // issue: https://github.com/reek/anti-adblock-killer/issues/1512
1629 host : ['freegameserverhost.com'],
1630 onStart : function () {
1631 Aak.addStyle("#fab13 { height: 11px; }");
1632 }
1633 },
1634 elahmad_com : {
1635 host : ['elahmad.com'],
1636 onStart : function () {
1637 Aak.addStyle("#adblock { height: 1px; }");
1638 }
1639 },
1640 mrtzcmp3_net : {
1641 host : ['mrtzcmp3.net'],
1642 onStart : function () {
1643 Aak.addStyle(".rtm_ad { height: 1px; }");
1644 }
1645 },
1646 height_myTestAd : {
1647 // issue: https://github.com/reek/anti-adblock-killer/issues/1241
1648 // issue: https://github.com/reek/anti-adblock-killer/issues/983
1649 // issue: https://github.com/reek/anti-adblock-killer/issues/291
1650 host : ['bknime.com', 'go4up.com', 'debrido.com'],
1651 onStart : function () {
1652 Aak.addStyle(".myTestAd { height: 1px; }");
1653 }
1654 },
1655 debridfast_network : {
1656 // issue: https://greasyfork.org/en/forum/discussion/9406
1657 // issue: https://greasyfork.org/en/forum/discussion/7013
1658 // issue: https://github.com/reek/anti-adblock-killer/issues/1272
1659 // issue: https://github.com/reek/anti-adblock-killer/issues/769
1660 host : ['debridfast.com', 'getdebrid.com', 'debrid.us', 'leecher.us'],
1661 onStart : function () {
1662 Aak.addStyle(".myTestAd, .my24Ad, .nabil { height: 1px; }");
1663 },
1664 onIdle : function () {
1665 document.querySelector('#simpleAd').innerHTML = '<p style="display:none;">debridfast.com</p>';
1666 }
1667 },
1668 bg_gledai_tv : {
1669 host : ['bg-gledai.tv'],
1670 onStart : function () {
1671 Aak.addStyle(".myAd { height: 1px; }");
1672 }
1673 },
1674 thepcspy_com : { // http://thepcspy.com/read/how_to_block_adblock/
1675 host : ['thepcspy.com'],
1676 onStart : function () {
1677 Aak.addStyle(".myTestAd { height: 1px; }");
1678 Aak.addStyle(".blocked { display: none; }");
1679 },
1680 onIdle : function () {
1681 Aak.removeElement('.blocked');
1682 }
1683 },
1684 vg_e24_no : {
1685 // issue: https://github.com/reek/anti-adblock-killer/issues/292
1686 host : ['vg.no', 'e24.no'],
1687 onStart : function () {
1688 // Add this rule, because EasyList allow all hidden elements.
1689 Aak.addStyle(".ad { display: none; }");
1690 }
1691 },
1692 automobile_sportive_com : {
1693 host : ['automobile-sportive.com'],
1694 onStart : function () {
1695 Aak.addStyle(".myTestAd { height: 51px; display: none; }");
1696 }
1697 },
1698 snsw_us : {
1699 host : ['snsw.us'],
1700 onStart : function () {
1701 Aak.addStyle("#ad_1 { height: 1px; }");
1702 }
1703 },
1704 urlchecker_net : {
1705 host : ['urlchecker.net'],
1706 onStart : function () {
1707 Aak.addStyle("#adchecker { height: 20px; }");
1708 }
1709 },
1710 skiplimite_tv : {
1711 host : ['skiplimite.tv'],
1712 onStart : function () {
1713 Aak.addStyle("div.addthis_native_toolbox + div[id] { height: 12px; }");
1714 }
1715 },
1716 filecore_co_nz : {
1717 host : ['filecore.co.nz'],
1718 onStart : function () {
1719 Aak.addStyle(".adsense { height: 5px; }");
1720 }
1721 },
1722 thomas_n_ruth_com : {
1723 // issue: https://github.com/reek/anti-adblock-killer/issues/1111
1724 // source: http://pastebin.com/fu7vkUA1
1725 host : ['thomas-n-ruth.com'],
1726 onStart : function () {
1727 Aak.addStyle(".Google { height: 5px; }");
1728 }
1729 },
1730 interfans_org : {
1731 // test: http://www.interfans.org/forum/
1732 host : ['interfans.org'],
1733 onStart : function () {
1734 Aak.addStyle(".ad_global_header { height: 1px; display: none; }");
1735 }
1736 },
1737 maxdebrideur_com : {
1738 host : ['maxdebrideur.com'],
1739 onStart : function () {
1740 Aak.addStyle(".clear + div[id] { height: 12px; }");
1741 }
1742 },
1743 topzone_it : {
1744 host : ['topzone.lt'],
1745 onStart : function () {
1746 Aak.addStyle(".forumAd { height: 1px; display: none; }");
1747 }
1748 },
1749 nana10_co_il : {
1750 host : ['.nana10.'],
1751 onStart : function () {
1752 Aak.addStyle("#advert-tracker { height: 1px; }");
1753 }
1754 },
1755 plej_tv : {
1756 host : ['plej.tv'],
1757 onStart : function () {
1758 Aak.addStyle(".advert_box { height: 1px; }");
1759 }
1760 },
1761 mangamint_com : {
1762 // note: added rule to allow ".ad728"
1763 // issue: https://greasyfork.org/id/forum/discussion/8524
1764 host : ['mangamint.com'],
1765 onStart : function () {
1766 Aak.addStyle(".ad728 { height: 31px; }");
1767 }
1768 },
1769 debrideurstream_fr : {
1770 host : ['debrideurstream.fr'],
1771 onStart : function () {
1772 Aak.addStyle("#content div[id][align=center] { height: 12px; }");
1773 }
1774 },
1775 preemlinks_com : {
1776 host : ['preemlinks.com'],
1777 onStart : function () {
1778 Aak.addStyle("#divads { height: 1px; }");
1779 }
1780 },
1781 hentai_to : {
1782 host : ['hentai.to'],
1783 onStart : function () {
1784 Aak.addStyle("#hentaito123 { height: 11px; }");
1785 }
1786 },
1787 prototurk_com : {
1788 host : ['prototurk.com'],
1789 onStart : function () {
1790 Aak.addStyle("#reklam { height: 1px; }");
1791 }
1792 },
1793 mufa_de : {
1794 host : ['mufa.de'],
1795 onStart : function () {
1796 Aak.addStyle("#leaderboard { height: 5px; }");
1797 Aak.addStyle("#large-rectangle { height: 5px; }");
1798 Aak.addStyle("#ad-header-468x60 { height: 5px; }");
1799 }
1800 },
1801 watcharab_com : {
1802 host : ['watcharab.com'],
1803 onStart : function () {
1804 // + adp rule watcharab.com#@##adblock
1805 Aak.addStyle("#adblock { height: 5px; }");
1806 }
1807 },
1808 freedomip_com : {
1809 host : ['freedom-ip.com'],
1810 onStart : function () {
1811 Aak.addStyle(".pub_vertical ins, .pub_vertical div { height: 11px; }");
1812 }
1813 },
1814 wakanim_tv : {
1815 host : ['wakanim.tv'],
1816 onStart : function () {
1817 Aak.addStyle("#detector { display: none; }");
1818 Aak.addStyle("#nopub { display: block; }");
1819 }
1820 },
1821 simply_debrid_com : {
1822 // issue: https://github.com/reek/anti-adblock-killer/issues/332
1823 // source: http://pastebin.com/b7MAYXs4
1824 host : ['simply-debrid.com'],
1825 onStart : function () {
1826 Aak.uw.adsbygoogle = {};
1827 Aak.uw.adsbygoogle.loaded = true;
1828 }
1829 },
1830 manga9_com : {
1831 host : ['manga9.com', 'mangabee.co'],
1832 onStart : function () {
1833 Aak.addStyle(".adblock { height: 31px; }");
1834 }
1835 },
1836 onemanga2_com : {
1837 host : ['onemanga2.com'],
1838 onStart : function () {
1839 Aak.addStyle(".afs_ads { height: 5px; }");
1840 }
1841 },
1842 mangabird_com : {
1843 host : ['mangabird.com'],
1844 onStart : function () {
1845 Aak.addStyle(".afs_ads { height: 5px; }");
1846 }
1847 },
1848 kodilive_eu : {
1849 // issue: https://github.com/reek/anti-adblock-killer/issues/1528
1850 // source: http://pastebin.com/ZxvXKqtc
1851 host : ['kodilive.eu'],
1852 onStart : function () {
1853 Aak.addStyle(".Ad { height: 5px; }");
1854 }
1855 },
1856 backin_net : {
1857 // issue: https://github.com/reek/anti-adblock-killer/issues?q=backin.net
1858 host : ['backin.net'],
1859 onStart : function () {
1860 Aak.addStyle("#divad { height: 31px; }");
1861 }
1862 },
1863 mobile_tracker_free_com : {
1864 // issue: https://github.com/reek/anti-adblock-killer/issues/1082
1865 host : ['mobile-tracker-free.com'],
1866 onStart : function () {
1867 Aak.addStyle("#myAds { height: 1px; }");
1868 }
1869 },
1870 workupload_com : {
1871 // note: obfuscated
1872 // issue: https://github.com/reek/anti-adblock-killer/issues/1334
1873 // issue: https://github.com/reek/anti-adblock-killer/issues/1290
1874 // source: http://pastebin.com/CPzd2Swx
1875 host : ['workupload.com'],
1876 onAlways : function () {
1877 Aak.addStyle(".adBlock, .adsbygoogle, #sad { height: 11px; }");
1878 }
1879 },
1880 today_in : {
1881 // issue: https://github.com/reek/anti-adblock-killer/issues?q=intoday.in
1882 // issue: https://github.com/reek/anti-adblock-killer/issues?q=businesstoday.in
1883 // source: http://pastebin.com/gz539G7m
1884 host : ["intoday.in", "businesstoday.in"],
1885 onStart : function() {
1886 Aak.addStyle('#adbocker_alt { display: none; }');
1887 Aak.uw.openPopup = function(){};
1888 }
1889 },
1890 jc_mp_com : {
1891 // by: Giwayume
1892 // issue: https://github.com/reek/anti-adblock-killer/issues/1597
1893 host : ["jc-mp.com"],
1894 onStart : function() {
1895 Aak.addStyle('.adsense {width: 1px; height: 1px; visibility: hidden; display: block; position: absolute;}');
1896 }
1897 },
1898 mariage_franco_marocain_net : {
1899 // issue: https://github.com/reek/anti-adblock-killer/issues?q=mariage-franco-marocain.net
1900 host : ["mariage-franco-marocain.net"],
1901 onStart : function() {
1902 Aak.addStyle('#my_ad_div {height: 1px;}');
1903 }
1904 },
1905 happy_hack_ru : {
1906 // issue: https://github.com/reek/anti-adblock-killer/issues?q=happy-hack.ru
1907 host : ['happy-hack.ru'],
1908 onStart : function () {
1909 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;}");
1910 }
1911 },
1912 forbes_com : {
1913 // by: Giwayume
1914 // issue: https://github.com/reek/anti-adblock-killer/issues/865
1915 host : ['forbes.com'],
1916 onStart : function () {
1917 if (window.location.pathname.indexOf('/welcome') > -1) {
1918 Aak.setCookie('welcomeAd', 'true', 86400000, '/');
1919 Aak.setCookie('dailyWelcomeCookie', 'true', 86400000, '/');
1920 window.location = Aak.getCookie('toUrl') || 'http://www.forbes.com/';
1921 }
1922 }
1923 },
1924 bait_adsbygoogle : {
1925 // issue: https://github.com/reek/anti-adblock-killer/issues/547
1926 host : ['bitcoinaliens.com'],
1927 onStart : function () {
1928 Aak.addBaitElement('ins.adsbygoogle');
1929 }
1930 },
1931 bait_tester : {
1932 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'],
1933 onStart : function () {
1934 Aak.addBaitElement('div#tester');
1935 }
1936 },
1937 bait_add : {
1938 host : ['filecom.net', 'upshare.org', 'skippyfile.com', 'mwfiles.net', 'up-flow.org'],
1939 onStart : function () {
1940 Aak.addBaitElement('div#add');
1941 }
1942 },
1943 bait_adpbtest : {
1944 host : ['leaguesecretary.com', 'teknogods.com', 'hellsmedia.com'],
1945 onStart : function () {
1946 Aak.addBaitElement('div#adpbtest');
1947 }
1948 },
1949 bait_adtester : {
1950 host : ['freesportsbet.com', 'sportsplays.com'],
1951 onStart : function () {
1952 Aak.addBaitElement('div#ad-tester');
1953 }
1954 },
1955 tgo_tv_com : {
1956 // issue: https://github.com/reek/anti-adblock-killer/issues/303
1957 host : ['tgo-tv.com'],
1958 onStart : function () {
1959 Aak.addStyle("#adb, #bannerad1, .load_stream { display: none; }");
1960 Aak.addBaitElement('div#tester');
1961 },
1962 onEnd : function () {
1963 Aak.uw.threshold = 1000;
1964 Aak.removeElement('.chat_frame'); // bug reload iframe
1965 }
1966 },
1967 freegamehosting_nl : {
1968 host : ['freegamehosting.nl'],
1969 onStart : function () {
1970 Aak.addBaitElement('div#adtest');
1971 }
1972 },
1973 theweatherspace_com : {
1974 host : ['theweatherspace.com'],
1975 onStart : function () {
1976 Aak.addBaitElement('div#ab-bl-advertisement');
1977 }
1978 },
1979 cleodesktop_com : {
1980 // issue: https://github.com/reek/anti-adblock-killer/issues/711
1981 host : ['cleodesktop.com'],
1982 onStart : function () {
1983 Aak.addBaitElement('div#myTestAd');
1984 }
1985 },
1986 imageraider_com : {
1987 // issue: https://github.com/reek/anti-adblock-killer/issues/826
1988 host : ['imageraider.com'],
1989 onStart : function () {
1990 Aak.addBaitElement('div#myGContainer');
1991 }
1992 },
1993 voici_fr : {
1994 // issue: https://greasyfork.org/fr/forum/discussion/10093
1995 // issue: https://github.com/reek/anti-adblock-killer/issues/826
1996 // source: http://pastebin.com/zEVQHTiD
1997 host : ['voici.fr', 'programme-tv.net'],
1998 onStart : function () {
1999 Aak.addBaitElement('div#sas_script2');
2000 }
2001 },
2002 mil_ink : {
2003 // issue: https://github.com/reek/anti-adblock-killer/issues/1652
2004 // source: http://pastebin.com/474NZzPJ
2005 host : ['mil.ink'],
2006 onStart : function () {
2007 Aak.addBaitElement('div#ads_div');
2008 }
2009 },
2010 cubeupload_com : {
2011 // issue: https://greasyfork.org/en/forum/discussion/5919
2012 host : ['cubeupload.com'],
2013 onStart : function () {
2014 Aak.createElement({
2015 tag : 'iframe',
2016 name : 'iframe',
2017 src : 'about:blank',
2018 style : 'display:none;',
2019 append : document.documentElement
2020 });
2021 }
2022 },
2023 stream4free_eu : {
2024 host : ['stream4free.eu'],
2025 onStart : function () {
2026 // +abp alt solution
2027 Aak.addBaitElement('div#jpayday');
2028 Aak.uw.jpayday_alert = 1;
2029 }
2030 },
2031 _3dnews_ru : {
2032 // issue: https://greasyfork.org/ru/forum/discussion/5750
2033 host : ['3dnews.ru'],
2034 onStart : function () {
2035 Aak.setCookie('adblockwarn', 1);
2036 Aak.addStyle("#earAds { width: 401px; }");
2037 Aak.addBaitElement('div#earAds');
2038 Aak.uw.__AT_detected = true;
2039 }
2040 },
2041 _3dsthem_es : {
2042 // issue: https://github.com/reek/anti-adblock-killer/issues?q=3dsthem
2043 host : ['3dsthem.es'],
2044 onStart : function () {
2045 //Aak.addScript(function () {});
2046 },
2047 onBeforeScript : function () {
2048 /*
2049 return [{
2050 contains : 'main.js',
2051 external : true,
2052 override : '//pastebin.com/raw/2yGRPhRZ'
2053 }
2054 ];
2055 */
2056 }
2057 },
2058 _8muses_com : {
2059 // issue: https://github.com/reek/anti-adblock-killer/issues?q=8muses
2060 // issue: https://greasyfork.org/forum/discussion/8515
2061 // issue: https://greasyfork.org/en/forum/discussion/6407
2062 // source: http://pastebin.com/bMNDxecs
2063 host : ['8muses.com'],
2064 onBeforeScript : function () {
2065 return [{
2066 contains : "typeof exo",
2067 external : false,
2068 remove : true
2069 }
2070 ];
2071 }
2072 },
2073 happytrips_com : {
2074 // issue: https://github.com/reek/anti-adblock-killer/issues?q=happytrips
2075 // source: http://pastebin.com/EWSEbnvv
2076 host : ['happytrips.com'],
2077 onStart : function () {
2078 Aak.setReadOnly('canRun', true);
2079 }
2080 },
2081 lg_firmware_rom_com : {
2082 // issue: https://github.com/reek/anti-adblock-killer/issues?q=lg-firmware-rom.com
2083 host : ['lg-firmware-rom.com'],
2084 onStart : function () {
2085 Aak.setReadOnly('killads', true);
2086 }
2087 },
2088 mid_day_com : {
2089 // issue: https://github.com/reek/anti-adblock-killer/issues?q=mid-day.com
2090 host : ['mid-day.com'],
2091 onStart : function () {
2092 Aak.setReadOnly('canRun', true);
2093 }
2094 },
2095 badtv_network : {
2096 // issue: https://github.com/reek/anti-adblock-killer/issues?q=badtv.it
2097 host : ['badtv.it', 'badtaste.it', 'badgames.it', 'badcomics.it'],
2098 onStart : function () {
2099 Aak.setCookie('adBlockChecked', 'disattivo');
2100 }
2101 },
2102 independent_co_uk : {
2103 // issue: https://github.com/reek/anti-adblock-killer/issues?q=independent.co.uk
2104 host : ['independent.co.uk'],
2105 onStart : function () {
2106 Aak.setCookie('adblock_detected', 'ignored');
2107 }
2108 },
2109 esmas_com : {
2110 // issue: https://github.com/reek/anti-adblock-killer/issues?q=esmas.com
2111 host : ['esmas.com'],
2112 onStart : function () {
2113 Aak.setReadOnly('opened_adbblock', false);
2114 }
2115 },
2116 pinoy1tv_network : {
2117 // issue: https://github.com/reek/anti-adblock-killer/issues?q=pinoy1tv
2118 host : ['pinoy1tv.'],
2119 onStart : function () {
2120 Aak.setReadOnly('allowads', 1);
2121 }
2122 },
2123 ewallstreeter_com : {
2124 // issue: https://github.com/reek/anti-adblock-killer/issues?q=ewallstreeter.com
2125 host : ['ewallstreeter.com'],
2126 onStart : function () {
2127 Aak.setReadOnly('OAS_rdl', 1);
2128 }
2129 },
2130 business_standard_com : {
2131 // issue: https://github.com/reek/anti-adblock-killer/issues?q=business-standard.com
2132 host : ['business-standard.com'],
2133 onStart : function () {
2134 Aak.setReadOnly('adsLoaded', 1);
2135 Aak.setCookie('_pw', 't');
2136 }
2137 },
2138 express_network : {
2139 // issue: https://github.com/reek/anti-adblock-killer/issues?q=financialexpress.com
2140 // issue: https://github.com/reek/anti-adblock-killer/issues?q=indianexpress.com
2141 host : ['financialexpress.com', 'indianexpress.com'],
2142 onStart : function () {
2143 Aak.setReadOnly('RunAds', 1);
2144 }
2145 },
2146 indiatimes_com : {
2147 // issue: https://github.com/reek/anti-adblock-killer/issues?q=indiatimes
2148 // issue: https://github.com/reek/anti-adblock-killer/issues?q=malayalam.samayam.com
2149 // test: http://tinyurl.com/zxusvyf,
2150 host : ['indiatimes.com', 'samayam.com', 'bangaloremirror.com'],
2151 onBeforeScript : function () {
2152 return [{
2153 contains : '\\\\x61\\\\x64\\\\x62',
2154 external : false,
2155 remove : true
2156 }, {
2157 contains : 'function initBlock',
2158 external : false,
2159 remove : true
2160 }
2161 ];
2162 }
2163 },
2164 thechive_com : {
2165 // issue: https://github.com/reek/anti-adblock-killer/issues/1453
2166 // source: http://pastebin.com/TdpPyrbb
2167 host : ['thechive.com'],
2168 onStart : function () {
2169 Aak.addScript(function () {
2170 Object.defineProperties(window, {
2171 stephaneDetector : {
2172 value : {
2173 hook : function (cb) {
2174 cb(false);
2175 },
2176 init : function () {},
2177 broadcastResult : function () {}
2178 },
2179 writable : false
2180 }
2181 });
2182 });
2183 }
2184 },
2185 richonrails_com : {
2186 // by: Giwayume
2187 // issue: https://github.com/reek/anti-adblock-killer/issues/1447
2188 // source: http://pastebin.com/Ewfwg8BG
2189 host : ['richonrails.com'],
2190 onIdle : function () {
2191 Aak.addScript(function () {
2192 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>"';
2193 $.ajax({
2194 url : $(".article-content").data("url"),
2195 dataType : "script",
2196 method : "post",
2197 data : {
2198 html : adsByGoogleHtml
2199 },
2200 success : function (result) {
2201 var exec = result.replace("$('.article-content')", "$('.article-content-2')");
2202 new Function(exec)();
2203 }
2204 });
2205 $(".article-content").after('<div class="article-content-2"></div>').remove();
2206 });
2207 }
2208 },
2209 rmprepusb_com : {
2210 host : ['rmprepusb.com'],
2211 onStart : function () {
2212 Aak.setCookie('jot_viewer', 3);
2213 }
2214 },
2215 neodrive_co : {
2216 // issue: https://github.com/reek/anti-adblock-killer/issues/1001
2217 host : ['neodrive.co'],
2218 onAlways : function () {
2219 // Prevent popunder
2220 Aak.setCookie('KifPopCnt', 1, null, '/embed/');
2221 }
2222 },
2223 hentaihaven_org : {
2224 // issue: https://github.com/gorhill/uBlock/issues/1340
2225 host : ['hentaihaven.org'],
2226 onAlways : function () {
2227 // Prevent popunder
2228 Aak.setCookie('hh_ppndr1', 1);
2229 Aak.setCookie('hh_ppndr2', 1);
2230 }
2231 },
2232 primeshare_tv : {
2233 host : ['primeshare.tv'],
2234 onStart : function () {
2235 Aak.addBaitElement('div#adblock');
2236 }
2237 },
2238 debridnet_and_livedebrid : {
2239 // issue: https://github.com/reek/anti-adblock-killer/issues?q=debridnet
2240 // issue: https://github.com/reek/anti-adblock-killer/issues?q=livedebrid
2241 host : ['debridnet.com', 'livedebrid.com'],
2242 onStart : function () {
2243 Aak.addStyle(".myTestAd2 { height: 5px; }");
2244 Aak.addBaitElement('div.myTestAd2');
2245 }
2246 },
2247 bluesatoshi_com : {
2248 // issue: https://github.com/reek/anti-adblock-killer/issues/873
2249 host : ['bluesatoshi.com'],
2250 onStart : function () {
2251 Aak.addStyle("#test { height: 280px; }");
2252 Aak.addBaitElement('div#test');
2253 }
2254 },
2255 razercrypt_com : {
2256 // issue: https://github.com/reek/anti-adblock-killer/issues/870
2257 host : ['razercrypt.com'],
2258 onStart : function () {
2259 Aak.addStyle("#test { height: 250px; }");
2260 Aak.addBaitElement('div#test');
2261 }
2262 },
2263 satoshiempire_com : {
2264 // issue: https://github.com/reek/anti-adblock-killer/issues/872
2265 host : ['satoshiempire.com'],
2266 onStart : function () {
2267 Aak.addStyle("#test { height: 250px; }");
2268 Aak.addBaitElement('div#test');
2269 }
2270 },
2271 oneadfaucet_com : {
2272 // issue: https://github.com/reek/anti-adblock-killer/issues/871
2273 host : ['oneadfaucet.com'],
2274 onStart : function () {
2275 Aak.addStyle("#test { height: 250px; }");
2276 Aak.addBaitElement('div#test');
2277 }
2278 },
2279 jkanime_net : {
2280 host : ['jkanime.net'],
2281 // @@||jkanime.net/assets/js/advertisement2.js
2282 onStart : function () {
2283 Aak.addBaitElement('div#reco');
2284 }
2285 },
2286 _720pmkv_com : {
2287 host : ['720pmkv.com'],
2288 onStart : function () {
2289 Aak.addBaitElement('div#advert');
2290 }
2291 },
2292 paidverts_com : {
2293 host : ['paidverts.com'],
2294 onStart : function () {
2295 Aak.addBaitElement('div.afs_ads');
2296 }
2297 },
2298 italiatv_org : {
2299 host : ['italiatv.org'],
2300 onStart : function () {
2301 Aak.addBaitElement('div#fab13');
2302 }
2303 },
2304 chrissmoove_com : {
2305 host : ['chrissmoove.com'],
2306 onStart : function () {
2307 //Aak.addBaitElement('div#adserver');
2308 }
2309 },
2310 eventhubs_com : {
2311 host : ['eventhubs.com'],
2312 onStart : function () {
2313 Aak.addBaitElement('div#blahyblaci1');
2314 }
2315 },
2316 superanimes_com : {
2317 // issue: https://github.com/reek/anti-adblock-killer/issues/1295
2318 // source: http://pastebin.com/FDPAKjTQ
2319 host : ['superanimes.com'],
2320 onStart : function () {
2321 Aak.addBaitElement('div#bannerLoja');
2322 }
2323 },
2324 forum_pac_rom_com : {
2325 // issue: https://github.com/reek/anti-adblock-killer/issues/243
2326 host : ['forum.pac-rom.com'],
2327 onStart : function () {
2328 Aak.addBaitElement('div.banner_ads');
2329 }
2330 },
2331 litv_tv : {
2332 // issue: https://github.com/reek/anti-adblock-killer/issues/1299
2333 // source: http://pastebin.com/zcddvTuC
2334 host : ['litv.tv'],
2335 onStart : function () {
2336 Aak.addBaitElement('div.player_mask');
2337 }
2338 },
2339 leveldown_fr : {
2340 // issue: https://github.com/reek/anti-adblock-killer/issues/595
2341 host : ['leveldown.fr'],
2342 onStart : function () {
2343 Aak.addBaitElement('div#adblock');
2344 Aak.addBaitElement('div#adblocktest');
2345 }
2346 },
2347 globeslot_com : {
2348 // issue: https://github.com/reek/anti-adblock-killer/issues/924
2349 host : ['globeslot.com'],
2350 onStart : function () {
2351 Aak.addBaitElement('div#add');
2352 Aak.addBaitElement('div#add1');
2353 }
2354 },
2355 antennesport_com : {
2356 host : ['antennesport.com', 'serverhd.eu'],
2357 onIdle : function () { // for antennesport
2358 // Remove Pub
2359 Aak.removeElement("#pub .pubclose");
2360 // Redirect to Player
2361 Aak.setElement('#pub .embed iframe', {
2362 src : '/embed/embed.php'
2363 });
2364 }
2365 },
2366 disableAlertbox : {
2367 // issue: https://greasyfork.org/en/forum/discussion/8611
2368 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'],
2369 onAlways : function () {
2370 Aak.uw.alert = function () {};
2371 }
2372 },
2373 generatupremium_biz : {
2374 host : ['generatupremium.biz'],
2375 onStart : function () {
2376 // Disable Confirm Box
2377 //Aak.uw.confirm = function (){};
2378 Aak.setCookie('genera', false);
2379 }
2380 },
2381 newstatesman_com : {
2382 host : ['newstatesman.com'],
2383 onStart : function () {
2384 Aak.setCookie('donationPopup', 'hide');
2385 }
2386 },
2387 adswizz_com : {
2388 // by: Skr4tchGr3azyMonkiBallllllZzzz
2389 // issue: https://github.com/reek/anti-adblock-killer/issues/809
2390 host : ['yes.fm'],
2391 onStart : function () {
2392 Aak.addScript(function () {
2393 window.com_adswizz_synchro_initialize = function () {};
2394 });
2395 }
2396 },
2397 derstandard_at : {
2398 // by: Alexander255
2399 // patch: http://pastebin.com/raw.php?i=r7Q4DrfB
2400 // issue: https://github.com/reek/anti-adblock-killer/issues?q=derstandard
2401 host : ['derstandard.at'],
2402 onStart : function () {
2403
2404 var makeISOTimestampUTC = function () {
2405 var pad = function (amount, width) {
2406 var padding = "";
2407 while (padding.length < width - 1 && amount < Math.pow(10, width - padding.length - 1)) {
2408 padding += "0";
2409 }
2410 return padding + amount.toString();
2411 };
2412
2413 var date = new Date();
2414 return [pad(date.getUTCFullYear(), 4), "-",
2415 pad(date.getUTCMonth() + 1, 2), "-",
2416 pad(date.getUTCDate(), 2), "T",
2417 pad(date.getUTCHours(), 2), ":",
2418 pad(date.getUTCMinutes(), 2), ":",
2419 pad(date.getUTCSeconds(), 2)].join();
2420 };
2421
2422 document.cookie.split('; ').forEach(function (cookie) {
2423 // Find main storage cookie
2424 if (cookie.substr(0, 6) == "MGUID=") {
2425 // Decompose information from main storage cookie
2426 var values = {};
2427 cookie.substr(6).split("&").forEach(function (assignment) {
2428 var pos = assignment.indexOf('=');
2429 if (pos > -1) {
2430 values[assignment.substr(0, pos)] = assignment.substr(pos + 1);
2431 }
2432 });
2433
2434 // Update "first viewed" timestamp
2435 values.Timestamp = makeISOTimestampUTC();
2436
2437 // Recompose information in main storage cookie
2438 cookie = "MGUID=";
2439 for (var key in values) {
2440 if (values.hasOwnProperty(key)) {
2441 cookie += key + "=" + values[key] + "&";
2442 }
2443 }
2444 cookie = cookie.substr(0, (cookie.length - 1));
2445
2446 // Update cookie
2447 document.cookie = cookie;
2448 }
2449 });
2450 }
2451 },
2452 tek_domains : {
2453 // by: Reek, Alexander255
2454 // issue: https://github.com/reek/anti-adblock-killer/issues/788
2455 // issue: https://github.com/reek/anti-adblock-killer/issues/512
2456 host : ['tek.no', 'gamer.no', 'teknofil.no', 'insidetelecom.no', 'prisguide.no', 'diskusjon.no', 'teknojobb.no', 'akam.no', 'hardware.no', 'amobil.no'],
2457 onIdle : function () {
2458
2459 /*
2460 var ad_frame = document.createElement("iframe");
2461 ad_frame.name = "_frame";
2462 ad_frame.style.display = "none";
2463 document.body.appendChild(ad_frame);
2464 ad_frame.contentWindow.wrappedJSObject.inFIF = true;
2465 */
2466
2467 // fix 27.11.2015
2468 Aak.createElement({
2469 tag : 'div',
2470 id : 'google_ads_iframe_',
2471 html : '<p></p>',
2472 append : 'body'
2473 });
2474
2475 }
2476 },
2477 planetatvonlinehd_network : {
2478 // issue: https://github.com/reek/anti-adblock-killer/issues/1467
2479 // issue: https://github.com/reek/anti-adblock-killer/issues/159
2480 host : ['planetatvonlinehd.blogspot.', 'planetatvonlinehd.com'],
2481 onStart : function () {
2482 Aak.addStyle('.adsantilok { height: 1px; }');
2483 //Aak.uw.jQAntiAdsBlock = function (){}; // don't work
2484 }
2485 },
2486 beta_speedtest_net : {
2487 // issue: https://github.com/reek/anti-adblock-killer/issues/628
2488 // issue: https://github.com/reek/anti-adblock-killer/issues/562
2489 // issue: https://github.com/reek/anti-adblock-killer/issues/484
2490 // source: http://paste2.org/53ymghX1
2491 host : ['beta.speedtest.net'],
2492 onAlways : function () {
2493 Aak.uw.adsOoklaComReachable = true;
2494 Aak.uw.scriptsLoaded = function () {};
2495 }
2496 },
2497 binbucks_com : {
2498 // by: Alexander255
2499 // issue: https://github.com/reek/anti-adblock-killer/issues/545
2500 host : ['binbucks.com'],
2501 onIdle : function () {
2502 Aak.uw.testJuicyPay = true;
2503 Aak.uw.testSensePay = true;
2504 }
2505 },
2506 whiskyprices_domains : {
2507 // issue: https://github.com/reek/anti-adblock-killer/issues/1284
2508 // source: http://pastebin.com/Epr5tREL
2509 host : ['whiskyprijzen.com', 'whiskyprices.co.uk', 'whiskypreise.com', 'whiskyprix.fr'],
2510 onAlways : function () {
2511 Aak.uw.OA_show = true;
2512 }
2513 },
2514 nicoblog_org : {
2515 // issue: https://github.com/reek/anti-adblock-killer/issues/1184
2516 // source: http://pastebin.com/MNHpLs2V
2517 host : ['nicoblog.org'],
2518 onIdle : function () {
2519 var el = document.querySelector('.src');
2520 el.removeAttribute('class');
2521 }
2522 },
2523 di_se : {
2524 // note: add this rule for chrome user
2525 // issue: https://github.com/reek/anti-adblock-killer/issues/1319
2526 // source: http://pastebin.com/9bDPQzMX
2527 host : ['di.se'],
2528 onIdle : function () {
2529 Aak.removeElement('#header_overlay');
2530 Aak.removeElement('#message_modal');
2531 }
2532 },
2533 megogo_net : {
2534 // issue: PM
2535 // source1: http://pastebin.com/ccHQg3hn
2536 // source2: http://pastebin.com/gk0vEQHN
2537 // note: two adblock check
2538 host : ['megogo.net'],
2539 onStart : function () {
2540 Object.defineProperty(Aak.uw, "adBlock", {
2541 enumerable : true,
2542 writable : false,
2543 value : false
2544 });
2545 Object.defineProperty(Aak.uw, "showAdBlockMessage", {
2546 enumerable : true,
2547 writable : false,
2548 value : function () {}
2549 });
2550 }
2551 },
2552 libertaddigital_com : {
2553 // issue: https://github.com/reek/anti-adblock-killer/issues/1642
2554 // source: http://pastebin.com/6Fzp0vrE
2555 host : ['libertaddigital.com'],
2556 onStart : function () {
2557 Object.defineProperty(Aak.uw, "ad_already_played", {
2558 enumerable : true,
2559 writable : false,
2560 value : true
2561 });
2562 Object.defineProperty(Aak.uw, "puedeMostrarAds", {
2563 enumerable : true,
2564 writable : false,
2565 value : true
2566 });
2567 }
2568 },
2569 folha_uol_com_br : {
2570 // issue: https://github.com/reek/anti-adblock-killer/issues/1396
2571 // source: f( ( typeof paywall_access == "undefined" || paywall_access != true ) && ( typeof folha_ads == "undefined" || folha_ads != true ) ) {
2572 host : ['folha.uol.com.br'],
2573 onStart : function () {
2574 Object.defineProperty(Aak.uw, "paywall_access", {
2575 enumerable : true,
2576 writable : false,
2577 value : true
2578 });
2579 Object.defineProperty(Aak.uw, "folha_ads", {
2580 enumerable : true,
2581 writable : false,
2582 value : true
2583 });
2584 }
2585 },
2586 gamer_com_tw : {
2587 // by: mmis1000
2588 // userscript: https://greasyfork.org/en/scripts/16525
2589 // issue: : https://github.com/reek/anti-adblock-killer/issues/975
2590 host : ['gamer.com.tw'],
2591 onStart : function () {
2592 Object.defineProperty(Aak.uw, 'AntiAd', {
2593 enumerable : true,
2594 writable : false,
2595 value : null
2596 });
2597 }
2598 },
2599 armorgames_com : {
2600 // issue: https://github.com/reek/anti-adblock-killer/issues/845
2601 host : ['armorgames.com'],
2602 onStart : function () {
2603 Object.defineProperty(Aak.uw, 'ga_detect', {
2604 enumerable : true,
2605 writable : false,
2606 value : null
2607 });
2608 }
2609 },
2610 mangahost_com : {
2611 // issue: https://github.com/reek/anti-adblock-killer/issues/957
2612 // issue: https://github.com/reek/anti-adblock-killer/issues/558
2613 // source: http://pastebin.com/GrpbJENA
2614 host : ['mangahost.com'],
2615 onStart : function () {
2616 Object.defineProperty(Aak.uw, "testDisplay", {
2617 enumerable : true,
2618 writable : false,
2619 value : false
2620 });
2621 }
2622 },
2623 videowood_tv : {
2624 // issue: https://github.com/reek/anti-adblock-killer/issues/1339
2625 // source: http://videowood.tv/build/assets/js/pembed-97a640f625.js
2626 host : ['videowood.tv'],
2627 onStart : function () {
2628 Aak.uw.open = function () {}; // prevent popup
2629 Aak.uw.config = {};
2630 Object.defineProperty(Aak.uw.config, "adb_remind", {
2631 enumerable : true,
2632 writable : false,
2633 value : false
2634 });
2635 }
2636 },
2637 infojobs_com_br : {
2638 // issue: https://github.com/reek/anti-adblock-killer/issues/1339
2639 // source: http://pastebin.com/LPg6093U
2640 // redirect: http://www.infojobs.com.br/nopublicity.aspx
2641 host : ['infojobs.com.br'],
2642 onStart : function () {
2643 Aak.addScript(function () {
2644 var webUI = webUI || {};
2645 webUI.Utils = webUI.Utils || {};
2646 Object.defineProperty(webUI.Utils, "StopAdBlock", {
2647 enumerable : true,
2648 writable : false,
2649 value : function () {}
2650 });
2651 });
2652 }
2653 },
2654 cloudwebcopy_com : {
2655 // issue: https://github.com/reek/anti-adblock-killer/issues/714
2656 host : ['cloudwebcopy.com'],
2657 onStart : function () {
2658 var setTimeoutClone = Aak.uw.setTimeout;
2659 Aak.uw.setTimeout = null;
2660 setTimeout(function () {
2661 Aak.uw.setTimeout = setTimeoutClone;
2662 }, 5000);
2663 }
2664 },
2665 narkive_com : {
2666 // issue: https://github.com/reek/anti-adblock-killer/issues/569
2667 host : ['narkive.com'],
2668 onAlways : function () {
2669 Aak.uw.adblock_status = function () {
2670 return false;
2671 };
2672 }
2673 },
2674 pregen_net : {
2675 host : ['pregen.net'],
2676 onStart : function () {
2677 // skip page info
2678 Aak.setCookie('pgn', 1);
2679 }
2680 },
2681 phys_org : {
2682 // issue: https://github.com/reek/anti-adblock-killer/issues/768
2683 host : ['phys.org'],
2684 onAlways : function () {
2685 Aak.uw.chkAB = function () {};
2686 }
2687 },
2688 onvasortir_com : {
2689 // issue: https://github.com/reek/anti-adblock-killer/issues?q=onvasortir.com
2690 host : ['onvasortir.com'],
2691 onAlways : function () {
2692 // +abp rule alt solution
2693 Aak.uw.JeBloque = function () {};
2694 }
2695 },
2696 fullhdzevki_com : {
2697 // issue: https://github.com/reek/anti-adblock-killer/issues?q=fullhdzevki.com
2698 host : ['fullhdzevki.com'],
2699 onAlways : function () {
2700 // +abp rule alt solution
2701 Aak.uw.check = function () {};
2702 }
2703 },
2704 ville_ideale_com : {
2705 // issue: https://github.com/reek/anti-adblock-killer/issues/258
2706 // source: http://pastebin.com/16mnmeMc
2707 host : ['ville-ideale.com'],
2708 onAlways : function () {
2709 // +abp rule alt solution
2710 Aak.uw.execsp = function () {};
2711 }
2712 },
2713 notre_planete_info : {
2714 // issue: https://github.com/reek/anti-adblock-killer/issues/258
2715 // source: http://pastebin.com/qrS6QGGE
2716 host : ['notre-planete.info'],
2717 onAlways : function () {
2718 // +abp rule alt solution
2719 Aak.uw.pubpop = function () {};
2720 }
2721 },
2722 apkmirror_com : {
2723 // issue: https://github.com/reek/anti-adblock-killer/issues/378
2724 // issue: https://github.com/reek/anti-adblock-killer/issues/224
2725 // issue: https://github.com/reek/anti-adblock-killer/issues/78
2726 host : ['apkmirror.com'],
2727 onAlways : function () {
2728 Aak.uw.doCheck = function () {};
2729 }
2730 },
2731 mtlblog_com : {
2732 // issue: https://github.com/reek/anti-adblock-killer/issues/948
2733 // issue: https://greasyfork.org/forum/discussion/7753
2734 // source: http://pastebin.com/BFrDPM6b
2735 host : ['mtlblog.com'],
2736 onStart : function () {
2737 Object.defineProperty(Aak.uw, 'puabs', {
2738 enumerable : true,
2739 value : function () {}
2740 });
2741 }
2742 },
2743 anizm_com : {
2744 // issue:
2745 host : ['anizm.com'],
2746 onAlways : function () {
2747 Aak.uw.stopAdBlock = {};
2748 }
2749 },
2750 diarioinformacion_com : {
2751 // issue: https://github.com/reek/anti-adblock-killer/issues/1550
2752 host : ['diarioinformacion.com'],
2753 onStart : function () {
2754 Object.defineProperty(Aak.uw, 'pr_okvalida', {
2755 enumerable : true,
2756 value : true
2757 });
2758 }
2759 },
2760 cnbeta_com : {
2761 // issue: https://github.com/reek/anti-adblock-killer/issues/1301
2762 // source: http://pastebin.com/vXNCztwx
2763 host : ['cnbeta.com'],
2764 onStart : function () {
2765 Object.defineProperty(Aak.uw, 'JB', {
2766 enumerable : true,
2767 value : function () {}
2768 });
2769 }
2770 },
2771 themarker_haaretz : {
2772 // issue: https://github.com/reek/anti-adblock-killer/issues/1292
2773 // source: http://pastebin.com/m08dkDT4
2774 host : ['themarker.com', 'haaretz.co.il'],
2775 onStart : function () {
2776 Object.defineProperty(Aak.uw, 'AdBlockUtil', {
2777 enumerable : true,
2778 value : {}
2779 });
2780 }
2781 },
2782 pipocas_tv : {
2783 // issue:
2784 host : ['pipocas.tv'],
2785 onStart : function () {
2786 // Also added in disableAlertbox
2787 // No popup
2788 Aak.setCookie('popup_user_login', 'yes');
2789 }
2790 },
2791 _15min_lt : {
2792 // note: regulary update script
2793 // issue: https://github.com/reek/anti-adblock-killer/issues?q=15min.it
2794 // source: http://pastebin.com/YWf3HTqr
2795 // test: http://tinyurl.com/h6c4336
2796 host : ['15min.lt'],
2797 onStart : function () {
2798 Object.defineProperty(Aak.uw, 'ROUTE', {
2799 enumerable : true,
2800 writable : false,
2801 value : '_be_reklamos'
2802 });
2803 }
2804 },
2805 sc2casts_com : {
2806 // by: Giwayume
2807 // issue: https://github.com/reek/anti-adblock-killer/issues/1599
2808 host : ['sc2casts.com'],
2809 onStart : function() {
2810 Aak.addScript(function() {
2811 window._gaq = { push:function() {} };
2812 Object.defineProperty(window, "showdialog", {
2813 value: function() {},
2814 configurable: false,
2815 writable: false
2816 });
2817 Object.defineProperty(window, "showPopup2", {
2818 value: function() {},
2819 configurable: false,
2820 writable: false
2821 });
2822 });
2823 }
2824 },
2825 vgunetwork_com : {
2826 // issue:
2827 host : ['vgunetwork.com'],
2828 onIdle : function () {
2829 Aak.setCookie('stopIt', 1);
2830 var close = Aak.getElement('#some_ad_block_key_close');
2831 if (close) {
2832 close.click();
2833 }
2834 }
2835 },
2836 linkcrypt_ws : {
2837 // issue: https://github.com/reek/anti-adblock-killer/issues/286
2838 // issue: https://github.com/reek/anti-adblock-killer/pull/67
2839 host : ['linkcrypt.ws'],
2840 onIdle : function () {
2841 Aak.setElement('#ad_cont', {
2842 id : '',
2843 style : 'display:block;'
2844 });
2845 Aak.setElement('#container_check', {
2846 style : 'display:none;'
2847 });
2848 }
2849 },
2850 eventosppv_me : {
2851 // issue:
2852 host : ['eventosppv.me'],
2853 onIdle : function () {
2854 Aak.removeElement('#nf37');
2855 }
2856 },
2857 bolor_toli_com : {
2858 // issue: https://github.com/reek/anti-adblock-killer/issues/552
2859 host : ['bolor-toli.com'],
2860 onEnd : function () {
2861 var ads = document.getElementsByClassName('banner');
2862 for (var i = 0; i < ads.length; i++) {
2863 var ad = ads[i];
2864 ad.innerHTML = '<br>';
2865 ad.style.height = '1px';
2866 }
2867 }
2868 },
2869 vivo_sx : {
2870 // issue: https://github.com/reek/anti-adblock-killer/issues/280
2871 host : ['vivo.sx'],
2872 onEnd : function () {
2873 var alert = Aak.getElement('#alert-throttle');
2874 if (alert) {
2875 Aak.removeElement(alert);
2876 }
2877 var button = Aak.getElement('button#access');
2878 if (button) {
2879 button.removeAttribute('id');
2880 button.removeAttribute('disabled');
2881 button.innerHTML = 'Continue to video';
2882 }
2883 setTimeout(function () {
2884 var input = Aak.getElement('input[name="throttle"]');
2885 if (input) {
2886 Aak.removeElement(input);
2887 }
2888 }, 1000);
2889 }
2890 },
2891 luxyad_com : { // skip redirect myanimes.li
2892 // issue:
2893 host : ['luxyad.com'],
2894 onIdle : function () {
2895 if ('/Information.php' == location.pathname) {
2896 var href = location.href;
2897 location.href = href.substr(href.indexOf('url=') + 4, href.length);
2898 }
2899 }
2900 },
2901 mrpiracy_domains : {
2902 // issue: https://github.com/reek/anti-adblock-killer/issues/1405
2903 host : ['mrpiracy.xyz', 'mrpiracy.club'],
2904 onBeforeScript : function () {
2905 return [{
2906 contains : 'Desativa o AdBlock para continuar',
2907 external : false,
2908 remove : true
2909 }
2910 ];
2911 }
2912 },
2913 dbplanet_net : {
2914 // issue: PM
2915 host : ['dbplanet.net'],
2916 onStart : function () {
2917 Aak.setCookie('newnoMoreAdsNow', 1);
2918 }
2919 },
2920 aidemu_fr : {
2921 // issue:
2922 host : ['aidemu.fr'],
2923 onStart : function () {
2924 Aak.setCookie('adblockPopup', true);
2925 }
2926 },
2927 eami_in : {
2928 // issue:
2929 host : ['eami.in'],
2930 onAlways : function () {
2931 Aak.setCookie('ad_locked', 1);
2932 }
2933 },
2934 bigdownloader_com : {
2935 // issue:
2936 host : ['bigdownloader.com'],
2937 onIdle : function () {
2938 Aak.removeElement('#anti_adblock');
2939 }
2940 },
2941 freeskier_com : {
2942 // by: Gorhill
2943 // issue: https://github.com/reek/anti-adblock-killer/issues/639
2944 // note: also added list rule
2945 host : ['freeskier.com'],
2946 onIdle : function () {
2947 var el = document.getElementById("adb-not-enabled");
2948 if (el !== null) {
2949 el.style.removeProperty("display");
2950 }
2951 el = document.getElementById("videoContainer");
2952 if (el !== null) {
2953 el.style.removeProperty("display");
2954 }
2955 }
2956 },
2957 gametrailers_com : {
2958 // issue:
2959 host : ['gametrailers.com'],
2960 onIdle : function () {
2961 Aak.removeElement('#ad_blocking');
2962 }
2963 },
2964 scan_onepiece_naruto_mx : {
2965 // issue: https://github.com/reek/anti-adblock-killer/issues/582
2966 // issue: https://github.com/reek/anti-adblock-killer/issues/279
2967 host : ['scan-mx.com', 'onepiece-mx.net', 'naruto-mx.net'],
2968 onAlways : function () {
2969 Aak.uw.ad_block_test = function () {};
2970 },
2971 onIdle : function () {
2972 Aak.setElement('#yop', {
2973 id : ''
2974 });
2975 }
2976 },
2977 // Bitcoins
2978 bitcoinker_com : {
2979 // issue: https://github.com/reek/anti-adblock-killer/issues/230
2980 host : ['bitcoinker.com'],
2981 onStart : function () {
2982 Aak.uw.claim = function () {
2983 return true;
2984 };
2985 },
2986 onIdle : function () {
2987 Aak.removeElement('#E33FCCcX2fW');
2988 }
2989 },
2990 moondoge_co_in : {
2991 // issue: https://github.com/reek/anti-adblock-killer/issues/384
2992 // issue: https://github.com/reek/anti-adblock-killer/issues/232
2993 // issue: https://github.com/reek/anti-adblock-killer/issues/233
2994 // issue: https://github.com/reek/anti-adblock-killer/issues/236
2995 host : ['moondoge.co.in', 'moonliteco.in', 'moonbit.co.in', 'bitcoinzebra.com'],
2996 onIdle : function () {
2997 Aak.removeElement('#AB, #E442Dv, #eCC5h');
2998 }
2999 },
3000 bitcoiner_net : {
3001 // issue: https://github.com/reek/anti-adblock-killer/issues/349
3002 host : ['bitcoiner.net', 'litecoiner.net'],
3003 onStart : function () {
3004 Aak.addBaitElement('div#tester');
3005 Aak.addBaitElement('div#ad-top');
3006 }
3007 },
3008 bitcoins_nx_tc : {
3009 // issue:
3010 host : ['freebitcoins.nx.tc', 'getbitcoins.nx.tc'],
3011 onAlways : function () {
3012 Aak.uw.ad_block_test = function () {
3013 return false;
3014 };
3015 }
3016 },
3017 freecoins4_me : {
3018 // issue:
3019 host : ['freecoins4.me'],
3020 onAlways : function () {
3021 Aak.uw.check = function () {
3022 return false;
3023 };
3024 }
3025 },
3026 torrent_tv_ru : {
3027 // issue: https://github.com/reek/anti-adblock-killer/issues/537
3028 host : ['torrent-tv.ru'],
3029 onAlways : function () {
3030 Aak.uw.c_Oo_Advert_Shown = true;
3031 }
3032 },
3033 cwtv_com : {
3034 // by: Kalbasit
3035 // pull: https://github.com/reek/anti-adblock-killer/pull/763
3036 // issue: https://github.com/reek/anti-adblock-killer/issues/340
3037 // issue: https://github.com/reek/anti-adblock-killer/issues/762
3038 host : ['cwtv.com'],
3039 onAlways : function () {
3040 Aak.uw.CWTVIsAdBlocking = undefined;
3041 }
3042 },
3043 bild_de : {
3044 // issue: https://github.com/reek/anti-adblock-killer/issues?q=bild
3045 host : ['bild.de'],
3046 onBeforeScript : function () {
3047 return [{
3048 contains : 'http://www.bild.de/wa/ll/bild-de/unangemeldet-42925516.bild.html',
3049 external : false,
3050 replace : ['javascript', 'void(0);'].join(':')
3051 }
3052 ];
3053 }
3054 },
3055 inn_co_il : {
3056 // issue: https://github.com/reek/anti-adblock-killer/issues/532
3057 host : ['inn.co.il'],
3058 onStart : function () {
3059 Aak.addScript(function () {
3060 var TRC = {};
3061 TRC.blocker = {
3062 states : {
3063 ABP_DETECTION_DISABLED : -2,
3064 ABP_NOT_DETECTED : 0,
3065 ABP_DETECTED : 1
3066 },
3067 createBlockDetectionDiv : function () {
3068 return document.createElement("div");
3069 },
3070 isBlockDetectedOnDiv : function () {
3071 return 0;
3072 },
3073 isBlockDetectedOnClassNames : function () {
3074 return 0;
3075 },
3076 getBlockedState : function () {
3077 return 0;
3078 }
3079 };
3080 });
3081 }
3082 },
3083 bhaskar_com : {
3084 // issue: https://github.com/reek/anti-adblock-killer/issues?q=bhaskar
3085 // issue: https://github.com/reek/anti-adblock-killer/issues?q=divyabhaskar.co.in
3086 host : ['bhaskar.com', 'divyabhaskar.co.in'],
3087 onAlways : function () {
3088 Aak.uw.openPopUpForBreakPage = function () {};
3089 Aak.uw.canABP = true;
3090 Aak.uw.canRunAds = true;
3091 Aak.uw.canCheckAds = true;
3092 }
3093 },
3094 turkanime_tv : {
3095 // issue: https://github.com/reek/anti-adblock-killer/issues/446
3096 // issue: https://github.com/reek/anti-adblock-killer/issues/139
3097 // issue: https://greasyfork.org/tr/forum/discussion/4282/
3098 host : ['turkanime.tv'],
3099 onAlways : function () {
3100 Aak.uw.adblockblock = function () {};
3101 Aak.uw.BlokKontrol = {};
3102 }
3103 },
3104 wtfbit_ch : {
3105 // issue: https://github.com/reek/anti-adblock-killer/issues/407
3106 host : ['wtfbit.ch'],
3107 onAlways : function () {
3108 Aak.uw.writeHTMLasJS = function () {};
3109 }
3110 },
3111 aranzulla_it : {
3112 // by: Robotex
3113 // issue: https://github.com/reek/anti-adblock-killer/issues?q=aranzulla.it
3114 // source: http://pastebin.com/yMM6YgxW
3115 host : ['aranzulla.it'],
3116 onStart : function() {
3117 Aak.addStyle('#abt1 + STYLE + div[id][class] {display:none;}');
3118 },
3119 onBeforeScript : function () {
3120 return [{
3121 contains : 'navigator.userAgent||navigator.vendor||window.opera',
3122 external : false,
3123 remove : true
3124 }
3125 ];
3126 }
3127 },
3128 ndtv_com : {
3129 // note: canRunAds inverted value
3130 // issue: https://github.com/reek/anti-adblock-killer/issues?q=ndtv.com
3131 // test: http://tinyurl.com/hcfncdv
3132 host : ['ndtv.com'],
3133 onStart : function () {
3134 Aak.setReadOnly('___p__p', 1);
3135 Aak.setReadOnly('getNoTopLatestNews', function () {});
3136 }
3137 },
3138 lesechos_fr : {
3139 // Reek, Giwayume
3140 // issue: https://github.com/reek/anti-adblock-killer/issues?q=lesechos.fr
3141 // source: http://pastebin.com/CMM8WGLj
3142 host : ['lesechos.fr', 'lesechos.com'],
3143 onStart : function() {
3144 Aak.addScript(function() {
3145 Object.defineProperty(window, "checkAdBlock", {
3146 value: function() {},
3147 configurable: false,
3148 writable: false
3149 });
3150 });
3151 },
3152 onAlways : function () {
3153 Aak.uw.call_Ad = 1;
3154 Aak.uw.paywall_adblock_article = function () {};
3155 }
3156 },
3157 bitvisits_com : {
3158 // issue: https://github.com/reek/anti-adblock-killer/issues/266
3159 host : ['bitvisits.com'],
3160 onAlways : function () {
3161 Aak.uw.blockAdblockUser = function () {};
3162 }
3163 },
3164 exrapidleech_info : {
3165 // by: Alexander255, Reek, Giwayume
3166 // patch: http://pastebin.com/Q664diQ2
3167 // issue: https://github.com/reek/anti-adblock-killer/issues?q=exrapidleech
3168 // source: http://pastebin.com/5e27syjA
3169 host : ['exrapidleech.info'],
3170 onStart : function () {
3171
3172 var tomorrow = new Date();
3173 tomorrow.setDate(tomorrow.getDate() + 1);
3174
3175 // prevent popup
3176 Aak.setCookie('popcashpuCap', 1);
3177 Aak.setCookie('popcashpu', 1);
3178 Aak.setCookie('nopopatall', tomorrow.getTime().toString());
3179 Aak.setCookie('noadvtday', 0);
3180 //Aak.setCookie('bv_DSKskdck_s1d', 'bvDSKskdcks1d');
3181
3182 // hide notice
3183 Aak.addStyle('div.alert.alert-danger.lead {opacity:0;}');
3184
3185 // prevent redirect to verify page
3186 Aak.setReadOnly('bdvbnr_pid', []);
3187 Aak.setReadOnly('PopAds', 1);
3188
3189 Aak.addScript(function () {
3190 (function () {
3191 // prevent popup
3192 window.open = function () {};
3193
3194 // prevent redirect to verify page
3195 var frame1 = document.createElement('iframe');
3196 frame1.src = 'http://bdfrm.bidvertiser.com/BidVertiser.dbm?pid=383865&bid=1737418&RD=';
3197 frame1.id = 'bdvi';
3198 frame1.style = 'display:none';
3199 document.documentElement.appendChild(frame1);
3200 })();
3201 });
3202 }
3203 },
3204 vipleague_domains : {
3205 // note: also killed by AakList
3206 // issue: https://github.com/reek/anti-adblock-killer/issues?q=vipbox
3207 // issue: https://github.com/reek/anti-adblock-killer/issues?q=vipleague
3208 // source: http://pastebin.com/NERVzHzS
3209 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"],
3210 onStart : function () {
3211 Aak.uw.iExist = true;
3212 Aak.setCookie('xclsvip', 1);
3213 Aak.addStyle(".vip_052x003 { height: 250px; }");
3214 Aak.addStyle(".vip_09x827 { height: 26px; }");
3215 Aak.addStyle("#overlay { display: none; }");
3216 }
3217 },
3218 zoomtv_me : {
3219 // issue: https://github.com/reek/anti-adblock-killer/issues?q=zoomtv.me
3220 // source: http://pastebin.com/m4zAXGcw
3221 host : ['zoomtv.me'],
3222 onAlways : function () {
3223 Aak.uw.iaxpEnabled = true;
3224 }
3225 },
3226 vg_no : {
3227 // issue: https://github.com/reek/anti-adblock-killer/issues/292
3228 // +abp rule
3229 host : ['vg.no', 'e24.no'],
3230 onAlways : function () {
3231 Aak.uw.__AB__ = function () {};
3232 }
3233 },
3234 pornve_com : {
3235 // issue: https://github.com/reek/anti-adblock-killer/issues/947
3236 // source: http://pastebin.com/7TPPkq12
3237 host : ['pornve.com'],
3238 onAlways : function () {
3239 Aak.uw.adxjwupdate = 1;
3240 }
3241 },
3242 lol_moa_tw : {
3243 // issue: https://github.com/reek/anti-adblock-killer/issues/1114
3244 host : ['lol.moa.tw'],
3245 onIdle : function () {
3246 Aak.addScript(function () {
3247 var MoaObj = MoaObj || {};
3248 MoaObj.ad = MoaObj.ad || {};
3249 MoaObj.ad.hasAdblock = function () {
3250 return false;
3251 };
3252 MoaObj.ad.checkABP = function () {
3253 return false;
3254 };
3255 });
3256 }
3257 },
3258 multiup_org : {
3259 // by: Watilin
3260 // note: alternative solution
3261 // issue: https://github.com/reek/anti-adblock-killer/issues?q=multiup.org
3262 host : ['multiup.org'],
3263 onStart : function () {
3264 Aak.setCookie('visit', 1); // prevent popup
3265 Aak.setReadOnly('hi', function () {});
3266 }
3267 },
3268 dailybitcoins_org : {
3269 // issue: https://github.com/reek/anti-adblock-killer/issues/107
3270 host : ['dailybitcoins.org'],
3271 onIdle : function () {
3272 Aak.removeElement('.ad-img');
3273 }
3274 },
3275 kozaczek_zeberka : {
3276 // issue: https://github.com/reek/anti-adblock-killer/issues/414
3277 host : ['kozaczek.pl', 'zeberka.pl'],
3278 onStart : function () {
3279 Aak.setCookie('ablc', 1);
3280 Aak.setCookie('cookie_policy', 1);
3281 }
3282 },
3283 spankwire_sites : {
3284 // issue: https://github.com/reek/anti-adblock-killer/issues/887
3285 // source: http://pastebin.com/TFB1dtgb
3286 host : ['spankwire.com', 'keezmovies.com', 'extremetube.com', 'mofosex.com'],
3287 onStart : function () {
3288 Aak.setCookie("abClosed", "true");
3289 Aak.setCookie("hide_ad_msg", "1");
3290 }
3291 },
3292 youporn_network : {
3293 // issue: https://github.com/reek/anti-adblock-killer/issues/887
3294 // source: http://pastebin.com/TFB1dtgb
3295 host : ['youporn.com', 'youporngay.com'],
3296 onStart : function () {
3297 Aak.setCookie("adblock_message", "closed");
3298 }
3299 },
3300 citationmachine_net : {
3301 // issue: https://github.com/reek/anti-adblock-killer/issues?q=citationmachine.net
3302 host : ['citationmachine.net'],
3303 onStart : function () {
3304 Aak.setCookie("sbm_cm_citations", 0);
3305 }
3306 },
3307 psarips_com : {
3308 // issue: https://github.com/reek/anti-adblock-killer/issues/153
3309 host : ['psarips.com'],
3310 onStart : function () {
3311 Aak.addBaitElement('div#advert');
3312 }
3313 },
3314 extratorrent_domains : {
3315 host : ['extratorrent.cc', 'extratorrent.com'],
3316 onStart : function () {
3317 // prevent popup
3318 // source are obfuscated in external js
3319 Aak.setCookie('ppu_delay', 1);
3320 Aak.setCookie('ppu_main', 1);
3321 Aak.setCookie('ppu_sub', 1);
3322 Aak.setCookie('ppu_show_on', 1);
3323 }
3324 },
3325 tny_cz : {
3326 host : ['tny.cz', 'pasted.co'],
3327 onStart : function () {
3328 // prevent popup
3329 Aak.setCookie('__.popunderCap', 1);
3330 Aak.setCookie('__.popunder', 1);
3331 }
3332 },
3333 clubedohardware_com_br : { // two antiadblock
3334 host : ['clubedohardware.com.br'],
3335 onStart : function () {
3336 if (Aak.contains(location.host, 'forum')) {
3337 // Solution 1
3338 Aak.addStyle("#banner, script { height: 51px; }");
3339 Aak.addBaitElement('div#banner');
3340 } else { // Website
3341 // Solution 1
3342 Aak.addBaitElement('div.banner_topo');
3343 }
3344 },
3345 onIdle : function () {
3346 if (Aak.contains(location.host, 'forum')) {
3347 // Solution 2
3348 Aak.uw.addBlocking.hide();
3349 Aak.uw.addBlocking.kill();
3350 } else { // Website
3351 // Solution 2
3352 document.body.id = '';
3353 Aak.removeElement('.adblock');
3354 }
3355 }
3356 },
3357 debrastagi_com : {
3358 host : ['debrastagi.com'],
3359 onIdle : function () {
3360 Aak.removeElement('#stp-main');
3361 Aak.removeElement('#stp-bg');
3362 }
3363 },
3364 ddlfrench_org : {
3365 host : ['ddlfrench.org'],
3366 onIdle : function () {
3367 // Fix bug display content
3368 Aak.setElement('#dle-content .d-content', {
3369 'class' : ''
3370 });
3371 Aak.setElement('#content', {
3372 'id' : ''
3373 });
3374 }
3375 },
3376 megadebrid_eu : {
3377 host : ['mega-debrid.eu'],
3378 onEnd : function () {
3379 // Activate button debrid
3380 Aak.setElement('.realbutton', {
3381 'onclick' : '',
3382 'type' : 'submit'
3383 });
3384 }
3385 },
3386 slideplayer_domains : {
3387 // by: Alexander255
3388 // issue: https://github.com/reek/anti-adblock-killer/issues/1333
3389 // issue: https://github.com/reek/anti-adblock-killer/issues/515
3390 // issue: https://github.com/reek/anti-adblock-killer/issues/296
3391 // demo: http://slideplayer.fr/slide/1304026/#
3392 host : ['slideplayer.*'],
3393 onEnd : function () {
3394
3395 // Disable anti-adblocker
3396 Aak.uw.force_remove_ads = true;
3397
3398 // Circumvent "share to download" rule
3399 Aak.addScript(function () {
3400 var slide_id = window.get_current_slide_id();
3401 var slide_srv = document.getElementById("player_frame").src.split("/")[3];
3402 var time = 86400 + Math.floor(Date.now() / 1000);
3403 var secret = encodeURIComponent(window.strtr(window.MD5.base64("secret_preved slideplayer never solved " + time + slide_id + ".ppt"), "+/", "- "));
3404
3405 var url = "http://player.slideplayer.org/download/" + slide_srv + "/" + slide_id + "/" + secret + "/" + time + "/" + slide_id + ".ppt";
3406 var links = document.querySelectorAll("a.download_link");
3407 for (var i = 0; i < links.length; i++) {
3408 /* Remove original "share to download" popup event listener */
3409 var events = $._data(links[i]).events.click;
3410 events.splice(0, events.length);
3411
3412 /* Set normal link href instead */
3413 links[i].href = url;
3414 }
3415 });
3416
3417 }
3418 },
3419 bokepspot_com : {
3420 host : ['bokepspot.com'],
3421 onStart : function () {
3422 // Hide Disclaimer
3423 Aak.setCookie('hideDialog', 'hide');
3424 },
3425 onIdle : function () {
3426 // Remove Disable AdBlock
3427 Aak.removeElement('#tupiklan');
3428 }
3429 },
3430 picload_com : {
3431 host : ['picload.org'],
3432 onStart : function () {
3433 Aak.setCookie('pl_adblocker', false);
3434 },
3435 onIdle : function () {
3436 Aak.uw.ads_loaded = true;
3437 Aak.uw.imageAds = false;
3438 Aak.removeElement('div[oncontextmenu="return false;"]');
3439 }
3440 },
3441 freezedownload_com : {
3442 host : ['freezedownload.com'],
3443 onIdle : function () {
3444 if (/freezedownload.com\/download\//.test(location.href)) {
3445 Aak.removeElement('body > div[id]');
3446 }
3447 }
3448 },
3449 monnsutogatya_com : {
3450 // issue: PM
3451 // source: http://pastebin.com/1Lw60h6k
3452 host : ['monnsutogatya.com'],
3453 onIdle : function () {
3454 Aak.addStyle("#site-box {display:block;}");
3455 Aak.removeElement('#for-ad-blocker');
3456 }
3457 },
3458 rapid8_com : {
3459 host : ['rapid8.com'],
3460 onIdle : function () {
3461 Aak.removeElement('div.backk + #blcokMzg');
3462 Aak.removeElement('div.backk');
3463 }
3464 },
3465 turkdown_com : {
3466 host : ['turkdown.com'],
3467 onIdle : function () {
3468 // remove facebook box
3469 Aak.removeElement('#duyuru');
3470 }
3471 },
3472 filmovizija_domains : {
3473 host : ['filmovizija.me', 'filmovizija.com', 'filmovizija.in', 'filmovizija.net'],
3474 onIdle : function () {
3475 /*
3476 var d = new Date();
3477 var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
3478 var n = weekday[d.getDay()];
3479 Aak.setElement('#' + n, {
3480 html : ''
3481 });
3482 Aak.removeElement('#' + n);
3483 */
3484 }
3485 },
3486 hackintosh_zone : {
3487 // by: Alexander255
3488 // issue: https://github.com/reek/anti-adblock-killer/issues?q=hackintosh.zone
3489 // source: http://paste2.org/DnB9Oj4f
3490 host : ['hackintosh.zone'],
3491 onIdle : function () {
3492
3493 var head = document.getElementsByTagName("head")[0];
3494 // Fake Google ad frame content
3495 var ad1 = document.createElement("ins");
3496 ad1.className = "adsbygoogle";
3497 ad1.appendChild(document.createTextNode("AAK"));
3498 head.insertBefore(ad1, head.childNodes[0]);
3499
3500 /*
3501 // Fake CleanMyMac ad frame size
3502 var ad2 = document.createElement("div");
3503 ad2.id = "nycuhevgqi";
3504 Object.defineProperty(ad2.wrappedJSObject, 'clientHeight', {value: 1});
3505 head.insertBefore(ad2, head.childNodes[0]);
3506 */
3507
3508 var elems = document.querySelectorAll('.adsensegrey');
3509 for (var i = 0; i < elems.length; i++) {
3510 var node = document.createElement("img");
3511 node.src = Aak.imgBait;
3512 elems[i].appendChild(node);
3513 }
3514
3515 },
3516 onBeforeScript : function () {
3517 return [{
3518 contains : 'disable ADBlock completely',
3519 external : false,
3520 remove : true
3521 }
3522 ];
3523 }
3524 },
3525 privateinsta_com : {
3526 host : ['privateinsta.com'],
3527 onIdle : function () {
3528 // + abp rule
3529 Aak.uw.dont_scroll = false;
3530 Aak.removeElement("#overlay_div");
3531 Aak.removeElement("#overlay_main_div");
3532 }
3533 },
3534 risikogesundheit_de : {
3535 host : ['risiko-gesundheit.de'],
3536 onIdle : function () {
3537 setTimeout(function () {
3538 window.stop();
3539 }, 5000);
3540 }
3541 },
3542 oneplaylist_eu_pn : {
3543 host : ['oneplaylist.eu.pn'],
3544 onIdle : function () {
3545 // kill popunder
3546 Aak.uw.makePopunder = false;
3547 }
3548 },
3549 onmeda_de : {
3550 // note: script obfuscated line 1110
3551 // issue: https://greasyfork.org/forum/discussion/8576
3552 // issue: https://github.com/reek/anti-adblock-killer/issues/1067
3553 // source: http://pastebin.com/qf46bN3z
3554 // source: http://pastebin.com/RwHyF0NL
3555 host : ['onmeda.de'],
3556 onAlways : function () {
3557 Aak.uw.$ADP = true;
3558 Aak.uw.sas_callAd = function () {};
3559 Aak.uw.sas_callAds = function () {};
3560 }
3561 },
3562 turbodebrideur_com : {
3563 // issue: https://github.com/reek/anti-adblock-killer/issues/599
3564 // issue: https://github.com/reek/anti-adblock-killer/issues/563
3565 // issue: https://github.com/reek/anti-adblock-killer/issues/526
3566 host : ['turbodebrideur.com'],
3567 onIdle : function () {
3568 Aak.createElement({
3569 tag : 'div',
3570 id : 'pubdirecte',
3571 html : '<img src="' + Aak.imgBait + '"/><a href="#"> </a>',
3572 append : 'body'
3573 });
3574 }
3575 },
3576 rockfile_eu : {
3577 // issue: https://github.com/reek/anti-adblock-killer/issues/1256
3578 host : ['rockfile.eu'],
3579 onIdle : function () {
3580 Aak.createElement({
3581 tag : 'iframe',
3582 src : 'about:blank',
3583 style : 'visibility:hidden;',
3584 append : 'body'
3585 });
3586 }
3587 },
3588 linkbucks_antiadblock : {
3589 // issue: https://github.com/reek/anti-adblock-killer/issues/932
3590 // issue: https://github.com/reek/anti-adblock-killer/issues/469
3591 // issue: https://github.com/reek/anti-adblock-killer/issues/277
3592 // v3: http://pastebin.com/0gh8LMGH
3593 // note: no solution, anti-adblock difficult to bypass --> http://pastebin.com/1NRq7WvZ
3594 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'],
3595 onStart : function () {
3596 // do nothing...
3597 }
3598 },
3599 linkbucks_visitscript : {
3600 // issue:
3601 host : ['referencemega.com', 'fpabd.com', 'crackacc.com'],
3602 onStart : function () {
3603 // Skip visitScript when site use CloudFlare Rocket Script
3604 Aak.setCookie('_lbGatePassed', true);
3605 }
3606 },
3607 link_tl : {
3608 // issue: https://github.com/reek/anti-adblock-killer/issues?q=link.tl
3609 // issue: https://greasyfork.org/fr/forum/discussion/8437
3610 // source: http://pastebin.com/1MkCnmL7
3611 host : ['link.tl'],
3612 onStart : function () {
3613 Aak.addStyle('.adblock { height:1px; }');
3614 Aak.uw.adblocker = false;
3615 }
3616 },
3617 wstream_video : {
3618 // issue: https://github.com/reek/anti-adblock-killer/issues/1382
3619 // source: http://pastebin.com/EiARVQXt
3620 host : ['wstream.video'],
3621 onStart : function () {
3622 Aak.addStyle('#adiv { height:4px; }');
3623 }
3624 },
3625 _4shared_com : {
3626 host : ['4shared.com'],
3627 onIdle : function () {
3628 // Hide "Disable AdBlodk" messages
3629 document.querySelector('body').classList.remove("jsBlockDetect");
3630 }
3631 },
3632 pro_domains : {
3633 host : ['pro-zik.ws', 'pro-tect.ws', 'pro-ddl.ws', 'pro-sport.ws'],
3634 onStart : function () {
3635 Aak.setCookie('visitedf', true);
3636 Aak.setCookie('visitedh', true);
3637 }
3638 },
3639 comptoirhardware_com : {
3640 host : ['comptoir-hardware.com'],
3641 onAlways : function () {
3642 Aak.uw.adblock = 'non';
3643 }
3644 },
3645 bakersfield_com : {
3646 // issue: https://github.com/reek/anti-adblock-killer/issues/657
3647 // note: also solution to AakList
3648 host : ['bakersfield.com'],
3649 onAlways : function () {
3650 Aak.uw.AD_SLOT_RENDERED = true;
3651 }
3652 },
3653 ekstrabladet_dk : {
3654 // issue: https://github.com/reek/anti-adblock-killer/issues?q=ekstrabladet
3655 // source: http://pastebin.com/R029XpCr
3656 host : ['ekstrabladet.dk', 'eb.dk'],
3657 onAlways : function () {
3658 Aak.uw.ADTECH = {};
3659 }
3660 },
3661 pcgames_download_net : {
3662 // issue: https://github.com/reek/anti-adblock-killer/issues/1451
3663 // issue: https://greasyfork.org/forum/discussion/9328
3664 // source: http://pastebin.com/EBVZg3VB
3665 host : ['pcgames-download.net'],
3666 onAlways : function () {
3667 Aak.setCookie('noAdblockNiceMessage', 1);
3668 Aak.uw.mgCanLoad30547 = true;
3669 }
3670 },
3671 lachainemeteo_com : {
3672 // note: also killed by AakList
3673 // issue: https://github.com/reek/anti-adblock-killer/issues/590
3674 // issue: https://github.com/reek/anti-adblock-killer/issues/245
3675 // issue: https://github.com/reek/anti-adblock-killer/issues/215
3676 host : ['lachainemeteo.com'],
3677 onAlways : function () {
3678 Aak.uw.js_loaded = true;
3679 }
3680 },
3681 mac4ever_com : {
3682 // issue: https://github.com/reek/anti-adblock-killer/issues/997
3683 // source: http://pastebin.com/RQnCEYK6
3684 host : ['mac4ever.com'],
3685 onAlways : function () {
3686 Aak.uw.coquinou = function () {};
3687 }
3688 },
3689 _5278bbs_com : {
3690 // issue: https://github.com/reek/anti-adblock-killer/issues?q=5278bbs.com
3691 host : ['5278bbs.com'],
3692 onAlways : function () {
3693 Aak.uw.myaabpfun12 = function () {};
3694 }
3695 },
3696 thesimsresource_com : {
3697 // issue: https://github.com/reek/anti-adblock-killer/issues?q=thesimsresource.com
3698 // source: http://pastebin.com/DE9rbjxY
3699 host : ['thesimsresource.com'],
3700 onAlways : function () {
3701 Aak.uw.gadsize = true;
3702 Aak.uw.iHaveLoadedAds = true;
3703 }
3704 },
3705 yellowbridge_com : {
3706 host : ['yellowbridge.com'],
3707 onAlways : function () {
3708 Aak.uw.finalizePage = function () {
3709 return;
3710 };
3711 }
3712 },
3713 game_debate_com : {
3714 // issue: https://github.com/reek/anti-adblock-killer/issues/1366
3715 // source: http://pastebin.com/UzsiX0FK
3716 host : ['game-debate.com'],
3717 onAlways : function () {
3718 Aak.uw.ad_block_test = function () {};
3719 }
3720 },
3721 adscendmedia : {
3722 host : ['adscendmedia.com'],
3723 onStart : function () {
3724 // adscendmedia - https://www.adscendmedia.com/
3725 var ref = document.createElement('a').href = document.referrer;
3726 var host = location.host;
3727 var path = location.pathname;
3728 if (Aak.contains(path, '/widget_adblock.php') && !Aak.contains(ref.host, host)) {
3729 // Auto report
3730 Aak.detected('Adscendmedia', ref.host, host);
3731 // Notification
3732 Aak.notification('You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a>');
3733 }
3734 }
3735 },
3736 adworkmedia : {
3737 host : ['adworkmedia.com', 'loxtk.com', 'contentlockingnetworks.com'],
3738 onStart : function () {
3739 // AdWorkMedia - https://www.adworkmedia.com/
3740 var ref = document.createElement('a').href = document.referrer;
3741 var host = location.host;
3742 var path = location.pathname;
3743 if (Aak.contains(path, '/help/removeAB.php') && !Aak.contains(ref.host, host)) {
3744 // Auto report
3745 Aak.info('Adworkmedia', ref.host, host);
3746 // Notification
3747 Aak.notification('You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a>');
3748 }
3749 }
3750 },
3751 // --------------------------------------------------------------------------------------------
3752 // Players
3753 // --------------------------------------------------------------------------------------------
3754 kissanime_com : {
3755 // issue: https://github.com/reek/anti-adblock-killer/issues/451
3756 // issue: https://github.com/reek/anti-adblock-killer/issues/381
3757 // issue: https://github.com/reek/anti-adblock-killer/issues/302
3758 // issue: https://github.com/reek/anti-adblock-killer/issues/257
3759 // issue: https://github.com/reek/anti-adblock-killer/issues/178
3760 // issue: https://github.com/reek/anti-adblock-killer/issues/196
3761 // issue: https://github.com/reek/anti-adblock-killer/issues/56
3762 host : ['kissanime.com', 'kissanime.to'],
3763 onStart : function () {
3764 // Masking ads
3765 Aak.addStyle('iframe[id^="adsIfrme"], .divCloseBut { display:none; }');
3766 // Solution 1
3767 Aak.uw.DoDetect2 = null;
3768 },
3769 onIdle : function () {
3770
3771 // Solution 1 abp rule
3772 // @@||kissanime.com^$elemhide
3773
3774 var divContentVideo = document.querySelector('#divContentVideo');
3775
3776 // Solution 2
3777 if (Aak.uw.DoDetect2) {
3778 Aak.uw.DoDetect2 = null;
3779 Aak.uw.CheckAdImage = null;
3780 Aak.info('Solution 2');
3781 } //Solution 3
3782 else if (divContentVideo) {
3783
3784 var divDownload = document.querySelector('#divDownload').cloneNode(true);
3785
3786 setTimeout(function () {
3787 divContentVideo.innerHTML = '';
3788 Aak.uw.DoHideFake();
3789 divContentVideo.appendChild(divDownload);
3790 Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut');
3791 Aak.info('Solution 3');
3792 }, 5500);
3793 }
3794 }
3795 },
3796 Kisscartoon_me : {
3797 // issue: https://github.com/reek/anti-adblock-killer/issues/488
3798 host : ['kisscartoon.me'],
3799 onAlways : function () {
3800 Aak.uw.xaZlE = function () {};
3801 },
3802 onIdle : function () {
3803 Aak.removeElement('iframe[id^="adsIfrme"]');
3804 }
3805 },
3806 openload_domains : {
3807 // issue: https://github.com/reek/anti-adblock-killer/issues?q=openload
3808 host : ['openload.co', 'openload.io', 'openload.tv'],
3809 onStart : function () {
3810 Aak.uw.adblock = false;
3811 Aak.uw.adblock2 = false;
3812 Aak.uw.popAdsLoaded = true;
3813 // hide fake play button used to open popunder
3814 //Aak.addStyle('#videooverlay { display:none; }')
3815 }
3816 },
3817 youwatch_org : {
3818 // issue: https://github.com/reek/anti-adblock-killer/issues?q=youwatch
3819 // test: http://youwatch.org/embed-59p7i3cdkse0-453x320.html
3820 // test: http://youwatch.org/59p7i3cdkse0
3821 host : ['youwatch.org', 'chouhaa.info', 'ahzahg6ohb.com', 'ahzahg6ohb.com'],
3822 onStart : function () {
3823 // skip anti-adblock
3824 Aak.uw.adsShowPopup1 = 1;
3825 },
3826 onIdle : function () {
3827 // renove ads + fake play button
3828 Aak.removeElement('#player_imj, #player_imj + div[id]');
3829 }
3830 },
3831 exashare_com : {
3832 // by: Watilin
3833 // pull: https://github.com/reek/anti-adblock-killer/pull/519
3834 // issue: https://github.com/reek/anti-adblock-killer/issues?q=exashare.com
3835 // test: http://exashare.com/galw2ge2kzsv
3836 host : ['exashare.com', 'chefti.info', 'bojem3a.info', 'ajihezo.info', 'yahmaib3ai.com', 'yahmaib3ai.com'],
3837 onStart : function () {
3838 // skip anti-adblock
3839 Aak.uw.adsShowPopup1 = 1;
3840 },
3841 onIdle : function () {
3842 // renove ads + fake play button
3843 Aak.removeElement('#player_gaz, #player_gaz + div[id]');
3844 }
3845 },
3846 an1me_se : {
3847 // issue: https://github.com/reek/anti-adblock-killer/issues/190
3848 host : ['an1me.se'],
3849 onIdle : function () {
3850 setTimeout(function () {
3851 Aak.uw.isBlockAds2 = false;
3852 }, 10000);
3853 }
3854 },
3855 hqq_tv : { // putlocker.is
3856 host : ['hqq.tv'],
3857 onIdle : function () {
3858 // + abp rule
3859 // http://hqq.tv/player/embed_player.php?vid=R3DGHG3GKXX7&autoplay=no
3860 if ('/player/embed_player.php' == location.pathname) {
3861 document.querySelector('form[id^="form-"]').submit();
3862 }
3863 }
3864 },
3865 // Poland
3866 wp_domains : {
3867 // Note: disable EasyPrivacy
3868 // issue: https://github.com/reek/anti-adblock-killer/issues/956
3869 // issue: https://github.com/reek/anti-adblock-killer/issues/905
3870 // issue: https://github.com/reek/anti-adblock-killer/issues/300
3871 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'],
3872 onStart : function () {
3873 // prevent popup anti-adblock from abczdrowie.pl
3874 Aak.setCookie('ABCABC', true);
3875 },
3876 onIdle : function () {
3877
3878 Aak.hasElement('.wp-player', function () {
3879
3880 var replacePlayerWP = function (mid, player) {
3881 /* Request
3882 http://get.wp.tv/?mid=1661056
3883 http://wp.tv/player/mid,1661056,embed.json
3884 http://get.wp.tv/?f=2896462.1426329056904.l.webm&rnd=1
3885 https://wp.tv/player/mid,1747117,embed.json
3886 */
3887 Aak.request({
3888 url : 'http://wp.tv/player/mid,' + mid + ',embed.json',
3889 onload : function (result) {
3890 var res = result.responseText;
3891 var obj = JSON.parse(res);
3892 Aak.log(obj);
3893
3894 var Player = new Aak.player();
3895 Player.videojs(player, {
3896 source : Aak.fixProtocolURL(obj.clip.url[1].url), // HD
3897 type : 'mp4',
3898 autoplay : false
3899 });
3900 }
3901 });
3902 };
3903
3904 var replacePlayerWrzuta = function (key, channel, elem) {
3905 Aak.request({
3906 // http://www.wrzuta.pl/npp/embed/wolnapolska2/0I0HQ2mutJc
3907 url : 'http://www.wrzuta.pl/npp/embed/' + channel + '/' + key,
3908 onload : function (result) {
3909 var res = result.responseText;
3910 var obj = JSON.parse(res);
3911 Aak.log(obj);
3912
3913 var Player = new Aak.player();
3914 Player.videojs(elem, {
3915 source : Aak.fixProtocolURL(obj.url[0].url), //HD
3916 type : 'mp4',
3917 autoplay : false
3918 });
3919 }
3920 });
3921 };
3922
3923 // Using an external flash player is impossible because protected by crossdomain.xml
3924 var players = document.querySelectorAll('.wp-player'); // #Player0, #Player1, #mainPlayer
3925 if (players.length) {
3926 // fixbug gm_xhr loop request - http://tinyurl.com/pqa9htq
3927 for (var i = 0; i < players.length; i++) {
3928 var mid = null;
3929 var player = players[i];
3930 var parent = player.parentNode;
3931 var script = player.previousSibling;
3932 var title = player.querySelector('.titleCont a.title');
3933 var embedvideos = document.querySelectorAll('script[src*="/embed_video.js"]');
3934 Aak.log(player, parent, script, title);
3935
3936 if (embedvideos.length) {
3937 // pudelek.wrzuta.pl: http://tinyurl.com/l8jo5v2
3938 // pudelek.tv: http://tinyurl.com/klyzh6r, http://tinyurl.com/z7fr89v
3939 // pudelek.tv (triple): http://tinyurl.com/n9b27o2
3940 // film.wp.pl: http://tinyurl.com/q7k5bxp
3941 var embedvideo = embedvideos[i];
3942 var key = /key=(\w+)/.exec(embedvideo.src)[1];
3943 var channel = /login=(\w+)/.exec(embedvideo.src)[1];
3944 var autostart = /autoplay/.test(embedvideo.src);
3945 replacePlayerWrzuta(key, channel, player, autostart);
3946 Aak.log('embed_video.js');
3947 } else if (title && /mid/.test(title.href)) {
3948 // sportowefakty.pl: http://tinyurl.com/l6zabcx
3949 mid = title.href.match(/mid[=,]([0-9]+)/);
3950 Aak.log('title.href');
3951 } else if (parent.id) {
3952 if (parent.dataset.url) {
3953 // wp.tv: http://tinyurl.com/pzde29t
3954 mid = parent.dataset.url.match(/mid[=,]([0-9]+)/);
3955 Aak.log('parent.dataset.url');
3956 } else {
3957 if (parent.previousSibling.innerHTML) {
3958 // wiadomosci.wp.pl: http://tinyurl.com/gqtt9ca
3959 mid = parent.previousSibling.innerHTML.match(/mid[=,]([0-9]+)/);
3960 Aak.log('script.inline.innerHTML');
3961 } else {
3962 // kafeteria.tv: http://tinyurl.com/nofp58a
3963 // abczdrowie.pl: http://tinyurl.com/hx6s5et
3964 mid = parent.innerHTML.match(/mid[=,]([0-9]+)/);
3965 Aak.log('parent.innerHTML');
3966 }
3967 }
3968 } else if (script && script.tagName == 'SCRIPT') {
3969 // film.wp.pl: http://tinyurl.com/mh9onfw
3970 // pudelek.tv (double): http://tinyurl.com/lefvwtx
3971 mid = script.innerHTML.match(/mid[=,]([0-9]+)/);
3972 Aak.log('script.src.innerHTML');
3973 }
3974 if (mid !== null && mid.length == 2) {
3975 replacePlayerWP(mid[1], player);
3976 }
3977 }
3978 }
3979 });
3980 }
3981 },
3982 moje_filmy_network: {
3983 // issue: https://github.com/reek/anti-adblock-killer/issues/1010
3984 // source: http://pastebin.com/7G2RBnqq
3985 host : ['moje-filmy.tk', 'moje-filmy.live'],
3986 onIdle : function () {
3987 var searchvalue = ['var playerInstance', '});'];
3988 var script = Aak.hasScript(searchvalue[0]);
3989
3990 if (script) {
3991 var source = script.innerHTML;
3992 var str = source.substring(source.lastIndexOf(searchvalue[0]), source.lastIndexOf(searchvalue[1]) + searchvalue[1].length);
3993 Aak.addScript(str);
3994 }
3995 }
3996 },
3997 tvn_pl : {
3998 // by: Reek, Marek
3999 // solution: http://tinyurl.com/ohbvz4r, http://tinyurl.com/jq8s462
4000 // issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn.pl
4001 // issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn24.pl
4002 // issue: https://github.com/reek/anti-adblock-killer/issues?q=player.pl
4003 // test: http://tinyurl.com/o6d9h66, http://tinyurl.com/z77m4zh
4004 host : ['tvn.pl', 'tvn24.pl', 'player.pl'],
4005 onEnd : function () {
4006 Aak.hasElement('header.detailImage', function (thisElement) {
4007 if (Aak.getCookie('country_code') && Aak.getSession('generateToken')) {
4008 var parts = document.location.href.split(/[.,]/);
4009 var id = parts[parts.length - 2];
4010 var params = {
4011 platform : "Mobile",
4012 terminal : "Android",
4013 format : "json",
4014 v : "2.0",
4015 authKey : "b4bc971840de63d105b3166403aa1bea",
4016 type : "episode",
4017 id : id,
4018 sort : "newest",
4019 m : "getItem",
4020 deviceScreenHeight : 1600,
4021 deviceScreenWidth : 2560
4022 };
4023 var api = 'https://api.tvnplayer.pl/api/?' + Aak.serialize(params);
4024 var proxy = 'http://www.proxy.xmc.pl/index.php?hl=3e5&q=';
4025
4026 // Get videoUrl
4027 Aak.request({
4028 url : Aak.getCookie('country_code') != 'PL' ? proxy + Aak.encodeURI(api) : api,
4029 headers : {
4030 "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"
4031 },
4032 onload : function (result) {
4033 var res = result.responseText;
4034 Aak.log(res);
4035 var o = JSON.parse(res);
4036 var videoUrl = o.item.videos.main.video_content[Number(Aak.opts.videoHD)].url;
4037 var generateToken = new Function('videoUrl', Aak.getSession('generateToken'));
4038 var videoUrlWithSeed = generateToken(videoUrl);
4039 var Player = new Aak.player();
4040 Player.videojs(thisElement, {
4041 source : videoUrlWithSeed,
4042 type : 'mp4',
4043 autoplay: false
4044 }, {}, {insert:'inner'});
4045 }
4046 });
4047 } else {
4048 Aak.request({ // get and store generateToken function
4049 url : 'http://pastebin.com/raw/D9qM4DR3',
4050 onload : function (response) {
4051 var res = response.responseText;
4052 Aak.setSession('generateToken', res);
4053 Aak.request({ // get user ip
4054 url : 'http://ip-api.com/json',
4055 onload : function (response) {
4056 var res = response.responseText;
4057 var json = JSON.parse(res);
4058 Aak.setCookie('country_code', json.countryCode);
4059 Aak.refresh();
4060 }
4061 });
4062 }
4063 });
4064 }
4065 });
4066 }
4067 },
4068 ipla_tv : {
4069 // by: Marek
4070 // solution: http://tinyurl.com/ptb4ybg
4071 // issue. https://github.com/reek/anti-adblock-killer/issues/522
4072 // test: http://tinyurl.com/hz7gpxx
4073 host : ['ipla.tv'],
4074 onIdle : function () {
4075 Aak.addStyle('.html5-player-wrapper { display:none; }'); // chrome/opera
4076 var oldPlayer = document.querySelector('.html5-player-wrapper, #vod-player');
4077 Aak.request({
4078 url : '/VOD/play-in-ipla/' + location.href.match(/\/vod-(\d+)/)[1],
4079 onload : function (result) {
4080 var videoURL;
4081 var res = result.responseText;
4082 var idn = res.match(/ipla:\/\/playvod-1\|([a-z0-9]+)/)[1];
4083 Aak.log(idn);
4084 Aak.request({
4085 url : 'http://getmedia.redefine.pl/vods/get_vod/?cpid=1&ua=mipla/23&media_id=' + idn,
4086 onload : function (result) {
4087 var res = result.responseText;
4088 var o = JSON.parse(res);
4089 Aak.log(o);
4090 if (o.vod.video_hd) {
4091 videoURL = o.vod.video_hd;
4092 } else if (o.vod.video) {
4093 videoURL = o.vod.video;
4094 } else {
4095 videoURL = o.vod.copies[0].url;
4096 }
4097
4098 var Player = new Aak.player();
4099 Player.videojs(oldPlayer, {
4100 source : videoURL,
4101 type : 'mp4',
4102 width : 820,
4103 height : 450,
4104 autoplay : false
4105 });
4106 }
4107 });
4108 }
4109 });
4110 }
4111 },
4112 koscian_net : {
4113 // issue: https://github.com/reek/anti-adblock-killer/issues/914
4114 // source: http://pastebin.com/yGSPBRqe
4115 host : ['koscian.net'],
4116 onIdle : function () {
4117 var elems = document.querySelectorAll('.ban');
4118 for (var i = 0; i < elems.length; i++) {
4119 elems[i].remove();
4120 //elems[i].innerHTML = '<br>';
4121 }
4122 }
4123 },
4124 // France
4125 playtv_fr : { // research solution
4126 host : ['play.tv', 'playtv.fr'],
4127 onAlways : function () {},
4128 onEnd : function () {}
4129 },
4130 rmcsportbfmtv_com : { // webradio
4131 host : ['rmcsport.bfmtv.com'],
4132 onIdle : function () {
4133
4134 var flashvars = {
4135 urlRadio : "http://mp3lg4.tdf-cdn.com/10160/rmc.mp3",
4136 nom : "live",
4137 categorie : "live",
4138 urlSmart : "" // set empty to remove audio ad
4139 };
4140 var params = {
4141 wmode : "transparent"
4142 };
4143
4144 Aak.uw.swfobject.embedSWF("/swf/RMCLIVE.swf", "liveplayer", "70", "90", "10.0.0", "", flashvars, params);
4145 }
4146 },
4147 eclypsia_com : {
4148 host : ['eclypsia.com'],
4149 onAlways : function () {
4150 // Solution 1
4151 // abp rules
4152
4153 // Solution 2
4154 Aak.uw.isABActivated = function () {
4155 return false;
4156 }; // Kill antiadblock
4157 Aak.uw.refresh_iframe = function () {}; // Stop ads to be loaded
4158 },
4159 onEnd : function () {
4160 // Solution 3
4161 var element = document.querySelector('div[id^="webtv_iframe_"]');
4162 if (element !== null) {
4163 var videoId = element.id.split('_')[2];
4164 setTimeout(function () {
4165 element.innerHTML = '<iframe frameborder="0" width="812" height="500" src="http://www.dailymotion.com/embed/video/' + videoId + '?logo=0&autoPlay=1&autoMute=0"></iframe>';
4166 }, 1000);
4167 }
4168 }
4169 },
4170 m6web_fr : {
4171 // issue: https://github.com/reek/anti-adblock-killer/issues/461
4172 // test: http://tinyurl.com/ptn2vrl
4173 host : ['m6web.fr'],
4174 onEnd : function () {
4175 var player = document.querySelector('object[id$="_flash_api"]');
4176 var script = Aak.hasScript('M6.Player.config');
4177
4178 if (player !== null && script !== null) {
4179 var found = script.innerHTML.match(/M6.Player.config = (\{.+\});/);
4180 var config = JSON.parse(found.pop());
4181
4182 // Replace player
4183 var Player = new Aak.player();
4184 Player.videojs(player.parentNode, {
4185 source : config.sources[1].src,
4186 type : 'mp4',
4187 autoplay : false
4188 });
4189
4190 }
4191 }
4192 },
4193 gamingroom_tv : {
4194 host : ['gamingroom.tv'],
4195 onAlways : function () {
4196 Aak.uw.adblock_detect = function () {};
4197 Aak.uw.GR_adblock_hide_video = function () {};
4198 Aak.uw.adblock_video_msg_start = function () {};
4199 Aak.uw.adblock_video_msg_stop = function () {};
4200 Aak.uw.disable_chat = function () {};
4201 }
4202 },
4203 // Germany
4204 now_domains : {
4205 // issue: https://github.com/reek/anti-adblock-killer/issues/336
4206 // test: http://tinyurl.com/peeobou
4207 // test: http://jsbin.com/vucobejofo
4208 host : ['voxnow.de', 'rtl-now.rtl.de', 'rtl2now.rtl2.de', 'n-tvnow.de', 'superrtlnow.de', 'rtlnitronow.de', 'nowtv.de'],
4209 onIdle : function () {
4210 /*
4211 var Player = new Aak.player();
4212 Player.editing('#videoplayer', {
4213 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'
4214 });
4215 */
4216 }
4217 },
4218 rtl_de : {
4219 // issue: https://github.com/reek/anti-adblock-killer/issues/1541
4220 // test: http://tinyurl.com/h7ccvqq
4221 host : ['rtl.de'],
4222 onIdle : function () {
4223 Array.prototype.slice.call(document.querySelectorAll('div[data-widget="video"]')).map(function (video) {
4224 var cfg = Aak.intoObject(video.dataset.playerLayerCfg);
4225 var file = cfg.videoinfo.mp4url;
4226 Aak.log(video, cfg, file);
4227
4228 // Replace player
4229 var Player = new Aak.player();
4230 Player.videojs(video, {
4231 source : file,
4232 type : 'mp4',
4233 autoplay : false
4234 });
4235 });
4236 }
4237 },
4238 myspass_de : {
4239 // issue: https://github.com/reek/anti-adblock-killer/issues/76
4240 // test: http://tinyurl.com/lto9pyd
4241 host : ['myspass.de'],
4242 onIdle : function () {
4243 var videoid = location.pathname.match(/\/(\d+)\/$/);
4244
4245 if (videoid !== null) {
4246 Aak.request({
4247 url : 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=' + videoid[1],
4248 onload : function (result) {
4249 var res = result.responseText;
4250 Aak.log(res);
4251
4252 // Get video
4253 var parser = new window.DOMParser();
4254 var dom = parser.parseFromString(res, "application/xml");
4255 var file = dom.getElementsByTagName("url_flv").item(0).textContent;
4256
4257 // Remove elements
4258 Aak.removeElement('div.loadingGif');
4259
4260 // Replace player
4261 var Player = new Aak.player();
4262 Player.videojs('#player', {
4263 source : file,
4264 type : 'mp4',
4265 autoplay : false
4266 });
4267
4268 }
4269 });
4270 }
4271 }
4272 },
4273 // Nederland
4274 rtlxl_nl : {
4275 // test: http://tinyurl.com/l2zkv3d
4276 host : ['rtlxl.nl', 'rtlnieuws.nl'],
4277 onEnd : function () {
4278 var Player = new Aak.player();
4279 Player.editing('#_rtlosmf0', {
4280 setFlashvars : {
4281 adblock : false
4282 }
4283 });
4284 }
4285 },
4286 // Norway
4287 vgtv_network : {
4288 // note: skip video ads + anti-adblock
4289 // jwplayer: http://tinyurl.com/zyv79hg
4290 // issue: https://github.com/reek/anti-adblock-killer/issues/1402
4291 // issue: https://github.com/reek/anti-adblock-killer/issues/367
4292 // test: http://tinyurl.com/nwp85t, http://tinyurl.com/nwp85t
4293 host : ['vgtv.no', 'vg.no'],
4294 onEnd : function () {
4295 var oldHash = null;
4296 var videoId = null;
4297 var videoIdRegex = /#\!\/video\/(\d+)\//;
4298
4299 // check if the location hash changes
4300 setInterval(function () {
4301 var player = Aak.getElement('.video-player');
4302
4303 if (player && location.hash != oldHash && videoIdRegex.test(location.hash)) {
4304 oldHash = location.hash;
4305 videoId = oldHash.match(videoIdRegex)[1];
4306/*
4307 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';
4308 console.log(player)
4309
4310 // don't work with chrome
4311 // player.innerHTML = '<div id="noAdPlayer">This text will be replaced with a player.</div>';
4312
4313
4314 // can't load m3u8 4032 status code
4315 //console.log(unsafeWindow.jwplayer)
4316
4317 Aak.request({
4318 url : 'http://svp.vg.no/svp/api/v1/vgtv/assets/' + videoId + '?additional=settings|chapters|cuePoints|externalId|barrels|externalCategoryId|nextAsset&appName=vgtv-website',
4319 onload : function (result) {
4320 var res = result.responseText;
4321 var obj = JSON.parse(res);
4322 Aak.log(obj);
4323
4324 // replace player
4325 var Player = new Aak.player();
4326 Player.vlc(player, {
4327 source : obj.streamUrls.hls, // m3u8
4328 type : 'hls',
4329 autoplay : false
4330 });
4331 }
4332 }, {}, {
4333 insert : 'inner'
4334 });
4335*/
4336 }
4337 }, 1e3);
4338 }
4339 },
4340 mtg_radio : {
4341 // issue: https://github.com/reek/anti-adblock-killer/issues/1495
4342 host : ['play.radio1.se', 'play.bandit.se', 'play.lugnafavoriter.com', 'play.rixfm.se'],
4343 onEnd : function () {
4344 Aak.addScript(function () {
4345 setTimeout(function () {
4346 window.player_load_live(window.stream_id);
4347 }, 1000);
4348 });
4349 }
4350 },
4351 dplay_network : {
4352 // issue: https://github.com/reek/anti-adblock-killer/issues/1463
4353 host : ['dplay.com', 'dplay.dk', 'dplay.se'],
4354 onStart : function () {
4355 var date = new Date();
4356 date.setDate(date.getDate() + 365);
4357 var timestamp = date.getTime().toString();
4358 var value = JSON.stringify({
4359 "notificationSubmission" : "submitted",
4360 "reportingExpiry" : timestamp,
4361 "notificationExpiry" : timestamp
4362 });
4363 Aak.setCookie('dsc-adblock', value);
4364 }
4365 },
4366 viasat_tv : {
4367 // note: skip video ads + anti-adblock
4368 // issue: https://github.com/reek/anti-adblock-killer/issues?q=tv3play
4369 /* test: http://www.tv3play.no/programmer/redningsskoyta hds/hls
4370 http://www.tv3play.dk/programmer/linse-og-didde-ekstra hds/hls
4371 http://www.tv3play.se/program/glamourama hds/hls
4372 http://www.tv6play.se/program/99-saker-man-maste-gora-innan-man-dor hds/hls
4373 http://www.tv8play.se/program/efterlyst--1 hds/hls
4374 http://www.tv10play.se/program/garpens-europa hds/hls
4375 http://tvplay.skaties.lv/parraides/tv3-zinas hds/hls
4376 http://play.tv3.lt/programos/beatos-virtuve rtmp/hls
4377 http://tv3play.tv3.ee/sisu/puhapaev-sepoga rtmp/hls */
4378 host : ['tv3play.no', 'tv3play.dk', 'tv3play.se', 'tv6play.se', 'tv8play.se', 'tv10play.se', 'tvplay.skaties.lv', 'play.tv3.lt', 'tv3play.tv3.ee'],
4379 onIdle : function () {
4380 Aak.hasElement('#video-player', function (thisElement) {
4381 thisElement.id = '';
4382 //var videoId = location.pathname.split('/').pop();
4383 var videoId = thisElement.getAttribute('data-video-id');
4384 Aak.log(thisElement, videoId);
4385
4386 // get video sources
4387 Aak.request({
4388 url : 'http://playapi.mtgx.tv/v3/videos/stream/' + videoId,
4389 onload : function (result) {
4390 var res = result.responseText;
4391 var obj = JSON.parse(res);
4392 Aak.log(obj);
4393
4394 /* Innholdet du prøver å se er kun tilgjengelig for brukere i Norge
4395 Programmet er blokeret for visning fra denne geografiske position.
4396 Programą galite matyti tik jungdamiesi iš Lietuvos interneto tiekėjų tinklų */
4397 if (obj.msg) {
4398 return thisElement.innerHTML = obj.msg;
4399 }
4400
4401 if (location.host === 'tv3play.tv3.ee') {
4402 var Player = new Aak.player();
4403 Player.grindplayer(thisElement, {
4404 source : obj.streams.medium,
4405 type : 'rtmp/mp4',
4406 autoplay : true
4407 });
4408 } else {
4409 // create video tag for new player
4410 Aak.createElement({
4411 tag : 'video',
4412 id : 'noAdPlayer',
4413 classid : 'video-js vjs-default-skin',
4414 width : thisElement.clientWidth || 730,
4415 height : thisElement.clientHeight || 410,
4416 preload : 'auto',
4417 controls : true,
4418 autoplay : true,
4419 replace : thisElement
4420 });
4421
4422 // parse sources
4423 var srcArray = [];
4424 if (obj.streams.high && obj.streams.high !== '') {
4425 srcArray.push({
4426 type : "video/mp4", // mp4
4427 src : obj.streams.high
4428 });
4429 } if (obj.streams.hls && obj.streams.hls !== '') {
4430 srcArray.push({
4431 type : "application/x-mpegURL", // m3u8
4432 src : obj.streams.hls
4433 });
4434 } if (obj.streams.medium && obj.streams.medium !== '') {
4435 var type = obj.streams.medium.indexOf('rtmp') === 0 ? 'rtmp/mp4' : 'application/f4m+xml';
4436 srcArray.push({
4437 type : type,
4438 src : obj.streams.medium
4439 });
4440 }
4441 Aak.log(srcArray, JSON.stringify(srcArray));
4442
4443 // initialize new player
4444 Aak.addScript(Aak.intoString(function () {
4445 (function () {
4446 function onVjsReady() {
4447 if (typeof window.videojs !== 'function') {
4448 onVjsReady();
4449 } else {
4450 window.videojs("noAdPlayer").src(/_SOURCES_/);
4451 }
4452 }
4453 onVjsReady();
4454 })();
4455 }).replace("/_SOURCES_/", JSON.stringify(srcArray)));
4456 }
4457 }
4458 });
4459 });
4460 }
4461 },
4462 // Russia
4463 rutube_ru : { // research solution
4464 /* test: http://rutube.ru/video/bd5f6047657f0bdcbfbb0edad2bb7c61/ */
4465 host : ['rutube.ru'],
4466 onEnd : function () {
4467 Aak.hasElement('#rutubePlayerHolder', function () { //dmFyIG9wdHMgPSBBYWsuZ2V0RWxlbWVudCgiI29wdGlvbnMiKTsNCiAgICAgICAgICAgIHZhciBvID0gQWFrLmludG9PYmplY3Qob3B0cy5kYXRhc2V0LnZhbHVlKTsNCiAgICAgICAgICAgIHZhciBtM3U4VXJsID0gby52aWRlb19iYWxhbmNlci5tM3U4Ow0KICAgICAgICAgICAgY29uc29sZS5sb2cobTN1OFVybCk7DQoNCiAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOw0KICAgICAgICAgICAgUGxheWVyLnZpZGVvanMoJyNydXR1YmVQbGF5ZXJIb2xkZXInLCB7DQogICAgICAgICAgICAgICAgc291cmNlIDogbTN1OFVybCwNCiAgICAgICAgICAgICAgICB0eXBlIDogJ2hscycsDQogICAgICAgICAgICAgICAgLy9wcm94eTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBhdXRvcGxheSA6IHRydWUNCiAgICAgICAgICAgICAgfTsgKTs=
4468 });
4469 }
4470 },
4471 // Italy
4472 rai_tv : { // research solution
4473 host : ['rai.tv'],
4474 onStart : function () {},
4475 onIdle : function () {}
4476 },
4477 // TV Stream
4478 block_streams_tv : {
4479 // note: redirect to http://block.streams.tv/
4480 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'],
4481 onAlways : function () {
4482 Aak.setCookie("adb", 1); // prevent anti-adblock
4483 Aak.uw.open = function () {}; // prevent popup
4484 Aak.addStyle("#bannerInCenter, #hiddenBannerCanvas { display: none; }"); // hide ads
4485 }
4486 },
4487 buzina_xyz : {
4488 // note: disable refcontrol, used by firstrowsports
4489 // issue: https://github.com/reek/anti-adblock-killer/issues/1268
4490 // issue: https://github.com/reek/anti-adblock-killer/issues/1243
4491 // issue: https://github.com/reek/anti-adblock-killer/issues/889
4492 // issue: https://greasyfork.org/forum/discussion/8975
4493 // source: http://pastebin.com/8VTrkvS9
4494 host : ['buzina.xyz', 'farmet.info', 'rimladi.com', 'kitorelo.com', 'omnipola.com', 'porosin.co.uk', 'rimleno.com', 'simple4alls.com', 'arsopo.com'],
4495 onStart : function () {
4496 Aak.addStyle("#adsframe { height: 151px; }");
4497 },
4498 onIdle : function () {
4499 if (/buzina.xyz/.test(location.host)) { // keeps same host stream
4500 Aak.hasElement('iframe[src*=".php?hash="]', function (thisElement) {
4501 // http://arsopo.com/w2.php?hash=panda58
4502 // http://www.buzina.xyz/nana1v1.php?onthetop
4503 var parts = thisElement.src.split('/');
4504 parts[2] = Aak.rules.buzina_xyz.host.pop();
4505 Aak.log(thisElement, parts);
4506 thisElement.src = parts.join('/');
4507
4508 /* dmFyIG8gPSB7CgkJCSAgICAicGxheWxpc3QiIDogW3sKCQkJICAgICAgICAicHJvdmlkZXIiIDogInJ0bXAiLAoJCQkgICAgICAgICJ1cmwiIDogInBhbmRhMT9lJTNEMTQ2NTA3MDMyNiUyNnN0JTNEUHJ0SFl5dkJ6ZDlaZDdoRF9mUkhUZzExMTEzMCIKCQkJICAgICAgfQoJCQkgICAgXSwKCQkJICAgICJwbHVnaW5zIiA6IHsKCQkJICAgICAgInJ0bXAiIDogewoJCQkgICAgICAgICJ1cmwiIDogImZsb3dwbGF5ZXIucnRtcC0zLjIuMTEuc3dmIiwgCgkJCQkJLy8idXJsIjogImh0dHA6Ly9yZWxlYXNlcy5mbG93cGxheWVyLm9yZy9zd2YvZmxvd3BsYXllci5ydG1wLTMuMi4xMS5zd2YiLAoJCQkgICAgICAgICJuZXRDb25uZWN0aW9uVXJsIiA6ICJydG1wOi8vMTg1LjgyLjIxNS40NTozNTc5L3ZvZC8iCgkJCSAgICAgIH0sCgkJCSAgICAgICJjb250cm9scyIgOiB7CgkJCQkgICAgInVybCI6ICJodHRwOi8vcmVsZWFzZXMuZmxvd3BsYXllci5vcmcvc3dmL2Zsb3dwbGF5ZXIuY29udHJvbHMtMy4yLjE2LnN3ZiIsIC8vIGFkZGVkIGJlY2F1c2UgbWlzc2luZwoJCQkgICAgICAgICJwbGF5IiA6IGZhbHNlLAoJCQkgICAgICAgICJzY3J1YmJlciIgOiBmYWxzZQoJCQkgICAgICB9CgkJCSAgICB9LAoJCQkgICAgInBsYXllcklkIiA6ICJwbGF5ZXIiLAoJCQkgICAgImNsaXAiIDogewoJCQkgICAgICAidXJsIiA6ICJwYW5kYTE/ZSUzRDE0NjUwNzAzMjYlMjZzdCUzRFBydEhZeXZCemQ5WmQ3aERfZlJIVGcxMTExMzAiCgkJCSAgICB9CgkJCSAgfQoKCQkJICB2YXIgbmV3VXJsID0gcGFydHMuc2xpY2UoMCwgMykuam9pbignLycpICsgJy9mbG93cGxheWVyLTMuMi4xNi5zd2Y/Y29uZmlnPScgKyBlc2NhcGUoSlNPTi5zdHJpbmdpZnkobykpOwoJCQkgIC8vdmFyIG5ld1VybCA9ICdodHRwOi8vcmVsZWFzZXMuZmxvd3BsYXllci5vcmcvc3dmL2Zsb3dwbGF5ZXItMy4yLjE2LnN3Zj9jb25maWc9JyArIGVzY2FwZShKU09OLnN0cmluZ2lmeShvKSk7CgkJCSAgY29uc29sZS5sb2cobmV3VXJsKTsKCQkJICB0aGlzRWxlbWVudC5zcmMgPSBuZXdVcmw7
4509 */
4510
4511 });
4512 } else { // skip anti-adblock
4513 Aak.removeElement('#adsframe');
4514 Aak.getElement('#remove-over').click();
4515 }
4516 }
4517 },
4518 allmyvideos_net : {
4519 // note: obfuscated
4520 // issue: https://github.com/reek/anti-adblock-killer/issues/274
4521 host : ['allmyvideos.net', 'amvtv.net'],
4522 onStart : function () {
4523 // skip fake play button
4524 Aak.setCookie('_favbt33', 1);
4525 }
4526 },
4527 ilive_domains : {
4528 host : ['ilive.to', 'streamlive.to'],
4529 onEnd : function () {
4530 if (/^\/embedplayer.php/i.test(location.pathname)) {
4531 setTimeout(function () {
4532 // Skip timer
4533 Aak.uw.removeOverlayHTML();
4534 }, 1000);
4535 }
4536 }
4537 },
4538 micast_tv : {
4539 host : ['micast.tv'],
4540 onStart : function () {
4541 // prevent popunder
4542 Aak.setCookie('vid_main', true);
4543 Aak.setCookie('vid_sub', true);
4544 // remove overlay
4545 Aak.addScript(function () {
4546 window.onload = function () {
4547 if (window.removeOverlayHTML)
4548 window.removeOverlayHTML();
4549 };
4550 });
4551 }
4552 },
4553 pxstream_tv : {
4554 host : ['pxstream.tv'],
4555 onEnd : function () {
4556 if (/^\/embedrouter.php/.test(location.pathname)) {
4557 setTimeout(function () {
4558 // Skip timer and close ads
4559 Aak.uw.closeAd();
4560 }, 1000);
4561 }
4562 }
4563 },
4564 sawlive_tv : {
4565 host : ['sawlive.tv'],
4566 onIdle : function () {
4567 if (/^\/embed\/watch\//i.test(location.pathname)) {
4568 // Skip timer and close ads
4569 Aak.uw.display = false;
4570 Aak.uw.closeMyAd();
4571 }
4572 }
4573 },
4574 goodcast_co : {
4575 host : ['goodcast.co'],
4576 onIdle : function () {
4577 if (/^\/stream.php/.test(location.pathname)) {
4578 // remove ads allowed by easylist
4579 Aak.uw.$(".advertisement").hide();
4580 Aak.uw.$('.adsky iframe').attr("src", "about:blank");
4581 }
4582 }
4583 },
4584 showsport_tv_com : {
4585 host : ['showsport-tv.com'],
4586 onIdle : function () {
4587 if (/^\/ch.php/.test(location.pathname)) {
4588 // remove ads allowed by easylist
4589 Aak.removeElement('#advertisement, .advertisement');
4590 }
4591 }
4592 },
4593 sharecast_to : {
4594 host : ['sharecast.to'],
4595 onIdle : function () {
4596 if (/^\/embed.php/.test(location.pathname)) {
4597
4598 // Disable popunders
4599 var interval = setInterval(function () {
4600 Aak.setCookie('vid_main', true);
4601 Aak.setCookie('vid_sub', 2);
4602 Aak.setCookie('vid_delay', true);
4603 }, 100);
4604
4605 setTimeout(function () {
4606 clearInterval(interval);
4607 }, 5000);
4608
4609 // Remove transparent overlay
4610 Aak.removeElement('#table1');
4611 }
4612 }
4613 },
4614 videomega_tv : {
4615 // issue: https://github.com/reek/anti-adblock-killer/issues?q=videomega
4616 host : ['videomega.tv'],
4617 onStart : function () {
4618 if (/^\/view.php/.test(location.pathname)) {
4619 // prevent popunder
4620 Aak.setCookie('vid_mainpu', true);
4621 Aak.setCookie('vid_subpu', true);
4622 Aak.setCookie('vid_delay', true);
4623 }
4624 },
4625 onEnd : function () {
4626 // kill abc
4627 // fix bug on firefox: The video could not be loaded, either because the server or network failed or because the format is not supported.
4628 var script = Aak.hasScript('Please disable AdBlock Plugin to watch the video');
4629 if (script) {
4630 var source = script.innerHTML;
4631 var substring = source.substring(source.lastIndexOf('eval('), source.lastIndexOf(')') + 1);
4632 var deobfuscated = Aak.unpackScript(substring);
4633 var newScript = 'if('+deobfuscated.substring(deobfuscated.indexOf('true'));
4634 Aak.addScript(newScript);
4635 }
4636 }
4637 },
4638 flowplayer_antiadblock : {
4639 host : ['videofun.me', 'videobug.net', 'video44.net', 'play44.net', 'byzoo.org', 'playbb.me', 'videowing.me', 'videozoo.me', 'easyvideo.me', 'playpanda.net'],
4640 onEnd : function () {
4641
4642 /*
4643 http://www.animetoon.tv/black-lagoon-episode-1
4644 http://videowing.me/embed?w=718&h=438&video=ongoing/yu-gi-oh_arc-v_-_53.mp4
4645 http://playbb.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
4646 http://videozoo.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
4647 http://www.easyvideo.me/gogo/?w=718&h=438&file=yu-gi-oh_arc-v_-_53.mp4&sv=1
4648 http://playpanda.net/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4
4649 */
4650
4651 // allow fullscreen when abp is enabled and remove ad layer
4652 // ads blocked by abp rule
4653 if (/^\/(embed|gogo|gplus)/.test(location.pathname)) {
4654 var Player = new Aak.player();
4655 Player.editing('#flowplayer_api', {
4656 setAttributes : {
4657 allowfullscreen : true
4658 }
4659 });
4660 }
4661 }
4662 },
4663 r3z : {
4664 // issue: https://github.com/reek/anti-adblock-killer/issues?q=label:R3Z
4665 // source: http://pastebin.com/C159kevn
4666 host : ['cityam.com', 'computerworlduk.com', 'techworld.com', 'v3.co.uk'],
4667 onStart : function () {
4668 /* don't work with chrome
4669 Object.defineProperty(Aak.uw, '_r3z', {
4670 enumerable : true,
4671 writable : false,
4672 value : {}
4673 });
4674 */
4675 },
4676 onIdle : function () {
4677 Aak.uw.$("#r3z-wait").remove();
4678 Aak.uw.$(".r3z-hide").removeClass("r3z-hide");
4679 Aak.uw._r3z = null;
4680 }
4681 },
4682 google_jobrunner : {
4683 // issue: https://greasyfork.org/en/forum/messages/405
4684 // issue: https://github.com/reek/anti-adblock-killer/issues/1343
4685 // issue: https://github.com/reek/anti-adblock-killer/issues/1342
4686 // issue: https://github.com/reek/anti-adblock-killer/issues/831
4687 // issue: https://github.com/reek/anti-adblock-killer/issues/1274
4688 // issue: https://github.com/reek/anti-adblock-killer/issues/1262
4689 // issue: https://github.com/reek/anti-adblock-killer/issues/561
4690 host : ['next-episode.net', 'kingmaker.news', 'gamespowerita.com', 'todayidol.com', 'receive-a-sms.com', 'wakeupcallme.com', 'ringmycellphone.com', 'faqmozilla.org', 'thememypc.com'],
4691 onAlways : function () {
4692 Aak.uw.google_jobrunner = {};
4693 }
4694 },
4695 // fuckadbock customized
4696 fab_dawn_com : {
4697 // issue: https://github.com/reek/anti-adblock-killer/issues/1747
4698 host : ['dawn.com'],
4699 onStart : function () {
4700 Aak.fakeFuckAdBlock('detectAdBlock', 'DetectAdBlock');
4701 }
4702 },
4703 fab_sports_fr : {
4704 // issue: https://github.com/reek/anti-adblock-killer/issues/1217
4705 // source: http://pastebin.com/SpEN5duS
4706 host : ['sports.fr'],
4707 onStart : function () {
4708 Aak.fakeFuckAdBlock('fabInstance', 'FabInstance');
4709 }
4710 },
4711 fab_europe1_fr : {
4712 // issue: https://github.com/reek/anti-adblock-killer/issues/1188
4713 // source: http://pastebin.com/ULe1vzQR
4714 host : ['europe1.fr'],
4715 onStart : function () {
4716 Aak.fakeFuckAdBlock('fabInstance', 'FabInstance');
4717 }
4718 },
4719 fab_newyorker_com : {
4720 // issue: https://github.com/reek/anti-adblock-killer/issues/1177
4721 host : ['newyorker.com'],
4722 onStart : function () {
4723 Aak.fakeFuckAdBlock('sniffAdBlock', 'SniffAdBlock');
4724 }
4725 },
4726 fab_wired_com : {
4727 // issue: https://github.com/reek/anti-adblock-killer/issues/1061
4728 // issue: https://greasyfork.org/fr/forum/discussion/8235
4729 // source: http://pastebin.com/Pq14v4FC
4730 host : ['wired.com'],
4731 onStart : function () {
4732 Aak.fakeFuckAdBlock('sniffAdBlock', 'SniffAdBlock');
4733 }
4734 },
4735 fab_mangasproject_domains : {
4736 // note: fuckadblock with custom instance name
4737 // note: also added abp rule
4738 // issue: https://github.com/reek/anti-adblock-killer/issues/1127
4739 // issue: https://greasyfork.org/fr/forum/discussion/4132
4740 // issue: https://github.com/reek/anti-adblock-killer/issues/858
4741 // source: https://mangas.zlx.com.br/mangazord_lib/js/lib/controllers/Leitor/Leitor.min.js
4742 host : ['mangasproject.com.br', 'mangasproject.net.br', 'mangas.zlx.com.br'],
4743 onStart : function () {
4744 Aak.fakeFuckAdBlock('mangasLeitorSlider', Aak.generateID());
4745 }
4746 },
4747 fab_qnimate_com : {
4748 // issue: https://github.com/reek/anti-adblock-killer/issues/739
4749 // issue: https://github.com/reek/anti-adblock-killer/issues/705
4750 // note: fuckadblock customized
4751 host : ['qnimate.com'],
4752 onAlways : function () {
4753 Aak.uw.adBlockDetected = function () {};
4754 }
4755 },
4756 fab_eurotransport_de : {
4757 // issue: https://github.com/reek/anti-adblock-killer/issues/858
4758 // note: fuckadblock with custom instance name
4759 host : ['eurotransport.de'],
4760 onStart : function () {
4761 Aak.fakeFuckAdBlock('antiAdBlock', Aak.generateID());
4762 }
4763 },
4764 fab_cadetect : {
4765 // by: Skr4tchGr3azyMonkiBallllllZzzz
4766 // issue: https://github.com/reek/anti-adblock-killer/issues/784
4767 // note: fuckadblock with custom instance name
4768 host : ['tzetze.it', 'beppegrillo.it', 'la-cosa.it'],
4769 onStart : function () {
4770 Aak.fakeFuckAdBlock('cadetect', 'CADetect');
4771 }
4772 },
4773 fab_agar_game : {
4774 // note: fuckadblock with custom instance name
4775 // issue: https://github.com/reek/anti-adblock-killer/issues/1257
4776 // issue: https://github.com/reek/anti-adblock-killer/issues/1135
4777 host : ['agario.sx', 'agarabi.com'],
4778 onStart : function () {
4779 Aak.fakeFuckAdBlock('agario_SX_ads', Aak.generateID());
4780 }
4781 },
4782 fab_filespace_com : {
4783 // note: fuckadblock with custom instance name
4784 // source: http://pastebin.com/YAS0As87
4785 // issue: https://github.com/reek/anti-adblock-killer/issues/1037
4786 host : ['filespace.com'],
4787 onStart : function () {
4788 Aak.fakeFuckAdBlock('fAB', Aak.generateID());
4789 }
4790 },
4791 fab_topserialy_sk : {
4792 // note: fuckadblock with custom instance name
4793 // source: http://pastebin.com/42tUQ9aV
4794 host : ['topserialy.sk'],
4795 onStart : function () {
4796 Aak.fakeFuckAdBlock('sratNaVas', Aak.generateID());
4797 }
4798 },
4799 fab_customized : {
4800 // issue: https://github.com/reek/anti-adblock-killer/issues/1455
4801 // issue: https://github.com/reek/anti-adblock-killer/issues/1657
4802 // source: http://pastebin.com/N42a5BjE
4803 host : ['epicurious.com', 'desktopsolution.org', 'indiatimes.com', 'hindustantimes.com', 'happytrips.com'],
4804 onStart : function() {
4805 Aak.addScript(function () {
4806 (function () {
4807 var _setAttribute = window.Element.prototype.setAttribute;
4808 window.Element.prototype.setAttribute = function (name, value) {
4809 if (name == 'class' && value.indexOf('text_ads') != -1) {
4810 value = '';
4811 console.info(this, 'fab intercepted :-)');
4812 }
4813 _setAttribute.call(this, name, value);
4814 };
4815 })();
4816 });
4817 }
4818 },
4819 d3xt3er_antiadblock : {
4820 // site: http://d3xt3r.com/anti-adblock
4821 // case: http://sport-show.fr/js/advertisement-AdBlock.js
4822 // case: http://www.2site.me/advertisement-AdBlock.js
4823 host : ['sport-show.fr', 'vipflash.net', '2site.me'],
4824 onStart : function () {
4825 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;}");
4826 }
4827 },
4828 adblock_notify : {
4829 // by: Skr4tchGr3azyMonkiBallllllZzzz
4830 // issue: https://github.com/reek/anti-adblock-killer/issues/1766
4831 // issue: https://github.com/reek/anti-adblock-killer/issues/1392
4832 // issue: https://github.com/reek/anti-adblock-killer/issues/1039
4833 // issue: https://github.com/reek/anti-adblock-killer/issues/592
4834 // issue: https://github.com/reek/anti-adblock-killer/issues/813
4835 host : ['gametransfers.com', 'winandmac.com', 'free-steam-giveaways.com', 'canalwp.com', 'alphahistory.com', 'nordpresse.be', 'sospc.name', 'baboo.com.br'],
4836 onAlways : function () {
4837 Aak.setCookie('anCookie', true);
4838 Aak.uw.anOptions = {};
4839 }
4840 },
4841 lutte_adblock : {
4842 // site: http://lutteadblock.blogspot.com/2014/11/le-script.html
4843 // issue: https://github.com/reek/anti-adblock-killer/issues/938
4844 // issue: https://github.com/reek/anti-adblock-killer/issues/580
4845 host : ['lewebtvbouquetfrancophone.overblog.com', 'webtv.bloguez.com', 'latelegratuite.blogspot.com', 'totaldebrid.org', '37.187.173.205', 'tvgratuite.blogspot.com'],
4846 onStart : function () {
4847 Aak.addBaitElement('div#my_ad_div');
4848 Aak.uw.jabbahud = function () {};
4849 }
4850 },
4851 antiblock : {
4852 // site: antiblock.org
4853 // note: customized
4854 // issue:
4855 host : ['mybank.pl', 'rapidgrab.pl'],
4856 onStart : function () {
4857 Aak.addScript(function () {
4858 (function () {
4859 var _addEventListener = window.addEventListener;
4860 window.addEventListener = function (type, listener, options) {
4861 if (listener.toString().indexOf('.nextFunction()}') > -1) {
4862 listener = function () {
4863 console.info(['AntiAdbKiller', location.host, 'AntiBlock{customized}']);
4864 };
4865 }
4866 _addEventListener.call(this, type, listener, options);
4867 };
4868 })();
4869 });
4870 }
4871 },
4872 blockadblock : {
4873 // site: blockadblock.com
4874 // note: random instance name
4875 // source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8
4876 // issues: https://github.com/reek/anti-adblock-killer/issues?q=label:BlockAdBlock
4877 // issue: https://greasyfork.org/forum/discussion/8273
4878 // issue: https://greasyfork.org/forum/discussion/7625
4879 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'],
4880 onStart : function () {
4881 Aak.addScript(function () {
4882 // variant 1
4883 (function () {
4884 var _setTimeout = window.setTimeout;
4885 window.setTimeout = function (fn, delay) {
4886 // console.log(fn.toString())
4887 if (typeof fn === 'string' && fn.indexOf('bab_elementid') > -1) {
4888 fn = function () {
4889 console.info(['AntiAdbKiller', location.host, 'BlockAdBlock']);
4890 };
4891 }
4892 _setTimeout.call(this, fn, delay);
4893 };
4894 })();
4895 });
4896 }
4897 },
4898 gpt_sp : {
4899 // by: Reek, Giwayume
4900 // note: when adblock detected inject new ads, redirect to http://tinyurl.com/zq2z5o6
4901 // issue: https://github.com/reek/anti-adblock-killer/issues/1636
4902 // issue: https://github.com/reek/anti-adblock-killer/issues/1596
4903 // issue: https://github.com/reek/anti-adblock-killer/issues/1297
4904 // issue: https://github.com/reek/anti-adblock-killer/issues/1144
4905 // issue: https://github.com/reek/anti-adblock-killer/issues/1542
4906 // source: http://pastebin.com/8Ajitfb2
4907 host : ['marketwatch.com', 'deadline.com', 'tweaktown.com', 'nypost.com', 'realgm.com', 'nasdaq.com'],
4908 onStart : function () {
4909 Aak.addStyle(".container--bannerAd, .col--ad { display: none; }");
4910 Aak.addScript(function () {
4911 (function () {
4912 // Giwayume
4913 window._sp_ = window._sp_ || {};
4914 window._sp_.config = window._sp_.config || {};
4915 Object.defineProperty(window._sp_.config, "content_control_callback", {
4916 value : function () {},
4917 writable : false,
4918 configurable : false
4919 });
4920 // Reek
4921 var _addEventListener = window.EventTarget.prototype.addEventListener;
4922 window.EventTarget.prototype.addEventListener = function (type, listener, options) {
4923 if (type == 'sp.blocking') {
4924 listener = function () {
4925 console.info(['AntiAdbKiller', location.host, 'GPT{sp-blocking}']);
4926 };
4927 }
4928 _addEventListener.call(this, type, listener, options);
4929 };
4930 })();
4931 });
4932 }
4933 },
4934 krux_asl : {
4935 // note: when adblock detected inject new ads
4936 // source: http://pastebin.com/0HD7N84i
4937 host : ['commentcamarche.net', 'journaldesfemmes.com', 'linternaute.com'],
4938 onBeforeScript : function () {
4939 return [{
4940 detected : 'Krux{asl}',
4941 contains : 'Asl.prototype.inject',
4942 external : false,
4943 remove : true
4944 }
4945 ];
4946 }
4947 },
4948 krux_adp : {
4949 // note: when adblock detected inject new ads
4950 // source:
4951 host : ['fourchette-et-bikini.fr', 'meteocity.com'],
4952 onStart : function () {
4953 Aak.uw.adProtect = 1;
4954 }
4955 },
4956 phoenix_goyavelab : {
4957 // note: when adblock detected inject new ads
4958 // note: script anti-adblock obfuscated,
4959 // issue: https://github.com/reek/anti-adblock-killer/issues/
4960 // doc: http://tinyurl.com/gl3ghq2
4961 // source: http://pastebin.com/hsAmdSuf
4962 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'],
4963 onAlways : function () {
4964 //Aak.uw.__$dc = function () {};
4965 Aak.addStyle('body {visibility: visible;}');
4966 },
4967 onBeforeScript : function () {
4968 return [{
4969 detected : 'PhoenixGoyavelab',
4970 contains : 'PHENV',
4971 external : false,
4972 remove: true
4973 }
4974 ];
4975 }
4976 },
4977 ad_defend_uabp : {
4978 // note: when adblock detected inject new ads
4979 // source: http://pastebin.com/cFQCp80W
4980 host : ['tvspielfilm.de', 'finanzen.ch'],
4981 onBeforeScript : function () {
4982 return [{
4983 detected : 'AdDefend{UABPInject}',
4984 contains : 'UABPInject',
4985 external : false,
4986 remove : true
4987 }
4988 ];
4989 }
4990 },
4991 ad_defend_uab : {
4992 // note: when adblock detected inject new ads
4993 // userscript: https://openuserjs.org/scripts/schwarztee/AdDefend_Klatsche
4994 // userscript: https://gist.github.com/anonymous/a9b9956baf1d59a107c5
4995 // source: http://pastebin.com/1VyW0u9m, http://pastebin.com/AZqhRxWU
4996 // issue: https://github.com/reek/anti-adblock-killer/issues?q=label:AdDefend
4997 // pull: https://github.com/reek/anti-adblock-killer/pull/467
4998 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'],
4999 onBeforeScript : function () {
5000 return [{
5001 detected : 'AdDefend{uabInject}',
5002 contains : 'uabInject',
5003 external : false,
5004 remove : true
5005 }
5006 ];
5007 }
5008 },
5009 /* solved by AakLIst
5010 tisoomi_indirekt : {
5011 // inline: http://pastebin.com/npmXTUHw
5012 // external: http://pastebin.com/hvWnCuDw
5013 host : ['energy.de', 'getvids.de', 'gewinde-normen.de', 'podcast.de', 'spielespielen24.de', 'dialo.de'],
5014 onBeforeScript : function (e) {
5015 var target = e.target || e.srcElement;
5016 var text = target.text;
5017 if (Aak.contains(text, 'n="abcdefghijklm",r="nopqrstuvwxyz",i="0123456789";var s=t==0?i:t==1?n')) {
5018 Aak.stopScript(e);
5019 Aak.log('Tisoomi Indirekt');
5020 }
5021 }
5022 },
5023 */
5024 /* solved by AakLIst
5025 tisoomi_direkt : {
5026 // inline: http://pastebin.com/2vq38JXY
5027 host : ['autozeitung.de', 'formel1.de', 'fremdwort.de', 'inside-handy.de', 'motorsport-total.com', 'aussenwirtschaftslupe.de', 'donnerwetter.de', 'wintotal.de'],
5028 onBeforeScript : function (e) {
5029 var target = e.target || e.srcElement;
5030 var text = target.text;
5031 if (Aak.contains(text, 'function detect()')) {
5032 Aak.stopScript(e);
5033 Aak.log('Tisoomi Direkt');
5034 }
5035 }
5036 },
5037 */
5038 // --------------------------------------------------------------------------------------------
5039 // Generic
5040 // --------------------------------------------------------------------------------------------
5041 generic : {
5042 host : ['.*?'],
5043 onRemove : function (removedNode) {
5044 if (Aak.opts.removed) {
5045 if (removedNode.src ||
5046 removedNode.id ||
5047 removedNode.className &&
5048 !/^firebug/.test(removedNode.className)) {
5049 // Node removed
5050 Aak.log(removedNode);
5051 }
5052 }
5053 },
5054 onStart : function () {
5055
5056 // FuckAdBlock & BlockAdBlock v3 and v4
5057 // site: http://www.sitexw.fr/fuckadblock/
5058 // repo: https://github.com/sitexw/FuckAdBlock
5059 // repo: https://github.com/sitexw/BlockAdBlock
5060 // note: when fuckadblock.js or blockadblock.js is blocked
5061 // demo v3: http://sh.st/vovHE
5062 // demo v4: http://al.ly/qBbXH
5063 // issue: https://github.com/reek/anti-adblock-killer/issues/888
5064 // issue: https://github.com/reek/anti-adblock-killer/issues/824
5065 Aak.fakeFuckAdBlock('fuckAdBlock', 'FuckAdBlock');
5066 Aak.fakeFuckAdBlock('blockAdBlock', 'BlockAdBlock');
5067
5068 // canRunAds
5069 // repo: https://github.com/MatthewGross/CanRunAds
5070 // note: use externall script "/js/ads.js" -> var canRunAds = true;
5071 Object.defineProperty(Aak.uw, 'canRunAds', {
5072 enumerable : true,
5073 writable : false,
5074 value : true
5075 });
5076
5077 // canShowAds
5078 // issue: https://github.com/reek/anti-adblock-killer/issues/1197
5079 Object.defineProperty(Aak.uw, 'canShowAds', {
5080 enumerable : true,
5081 writable : false,
5082 value : true
5083 });
5084
5085 // Adblocker Detecting Scripts: Method 2
5086 // gist: https://gist.github.com/irazasyed/3d247d3d121e781a3872
5087 // note: use externall script "/js/ads.js" -> isAdBlockActive = false;
5088 Object.defineProperty(Aak.uw, 'isAdBlockActive', {
5089 enumerable : true,
5090 writable : false,
5091 value : false
5092 });
5093
5094 /*
5095 window.iHaveLoadedAds = true;
5096 var niceAdsCheck=true;
5097 adblock = false
5098 is_blocker = false;
5099 */
5100 },
5101 onIdle : function () {
5102
5103 // AdBlock Detector (XenForo Rellect)
5104 // site: http://tinyurl.com/pa28xdn
5105 // cloneInto: http://tinyurl.com/k6qphme
5106 // issue: https://github.com/reek/anti-adblock-killer/issues/805
5107 // issue: https://github.com/reek/anti-adblock-killer/issues/804
5108 // issue: https://github.com/reek/anti-adblock-killer/issues/591
5109 if (Aak.uw.XenForo && typeof Aak.uw.XenForo.rellect == 'object') {
5110 Aak.uw.XenForo.rellect = {
5111 AdBlockDetector : {
5112 start : function () {}
5113 }
5114 };
5115 Aak.detected('AdBlock Detector (XenForo Rellect)');
5116 }
5117
5118 /*
5119 // Adunblock - http://adunblock.com/
5120 if (Aak.getCookie('adblock') == 1) {
5121 Aak.setCookie('adblock', 0);
5122 Aak.setCookie('bar_closed', 1);
5123 }
5124 */
5125
5126 // Adblock Blocker
5127 // https://wordpress.org/plugins/addblockblocker/
5128 // http://tinyurl.com/nswn6fz
5129 // http://pastebin.com/d65zr37m
5130 /* can cause a bug
5131 var ads = document.getElementsByClassName('afs_ads');
5132 var ad = ads.length && ads[ads.length - 1];
5133 if (ad && ad.innerHTML.length === 0 || ad.clientHeight === 0) {
5134 Aak.addScript(function () {
5135 getElementsByClassNameNative = HTMLDocument.prototype.getElementsByClassName;
5136 HTMLDocument.prototype.getElementsByClassName = function (className) {
5137 if (className == 'afs_ads') {
5138 console.info(['AntiAdbKiller', location.host, 'AdblockBlocker', className]);
5139 var uniqid = Date.now();
5140 var bait = document.createElement("div");
5141 bait.innerHTML = '<br>';
5142 bait.className = uniqid;
5143 document.body.appendChild(bait);
5144 return document.getElementsByClassName(uniqid);
5145 }
5146 return getElementsByClassNameNative.apply(this, arguments);
5147 };
5148 });
5149 }
5150 */
5151
5152 // Adbuddy
5153 if (typeof Aak.uw.closeAdbuddy === 'function') {
5154 Aak.uw.closeAdbuddy();
5155 Aak.detected('Adbuddy');
5156 }
5157
5158 // AdBlock Alerter (WP)
5159 // https://github.com/wp-plugins/adblock-alerter
5160 //
5161 if (Aak.getElement('div.adb_overlay > div.adb_modal_img')) {
5162 // Remove Alert + Allow Scroll
5163 Aak.removeElement('div.adb_overlay');
5164 Aak.addStyle('html,body {height:auto; overflow: auto;}');
5165 Aak.detected('AdBlockAlerter');
5166 }
5167
5168 // Unknow Anti AdBlock system
5169 if (Aak.getElement('#blockdiv') && Aak.contains(Aak.getElement('#blockdiv').innerHTML, 'disable ad blocking or use another browser without any adblocker when you visit')) {
5170 Aak.removeElement('#blockdiv');
5171 }
5172
5173 // Antiblock.org v2
5174 // note: detect and store block id
5175 // demo: http://tinyurl.com/nhyhpzk
5176 var styles = document.querySelectorAll('style');
5177 for (var i = 0; i < styles.length; i++) {
5178 var style = styles[i];
5179 var cssRules = style.sheet.cssRules;
5180 for (var j = 0; j < cssRules.length; j++) {
5181 var cssRule = cssRules[j];
5182 var cssText = cssRule.cssText;
5183 var pattern = /^#([a-z0-9]{4,10}) ~ \* \{ display: none; \}/;
5184 if (pattern.test(cssText)) {
5185 var id = pattern.exec(cssText)[1];
5186 if (Aak.hasScript("w.addEventListener('load'," + id + ",false)")) {
5187 Aak.aabs.abo2 = id;
5188 break;
5189 }
5190 }
5191 }
5192 }
5193
5194 var win = Aak.uw;
5195 for (var prop in win) {
5196 try {
5197 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') {
5198 var method = win[prop];
5199
5200 // Antiblock.org v3 & BetterStopAdblock
5201 // issue: https://github.com/reek/anti-adblock-killer/issues/833
5202 if (method.deferExecution &&
5203 method.displayMessage &&
5204 method.getElementBy &&
5205 method.getStyle &&
5206 method.insert &&
5207 method.nextFunction) {
5208 if (method.toggle) {
5209 Aak.aabs.bsa = prop;
5210 Aak.detected('BetterStopAdblock{dom}');
5211 } else {
5212 Aak.aabs.abo3 = prop;
5213 Aak.detected('Antiblock3{dom}');
5214 }
5215 win[prop] = null; // kill instance
5216 }
5217
5218 // BlockAdBlock
5219 // site: blockadblock.com
5220 // note: random instance name
5221 // source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8
5222 // issues: https://github.com/reek/anti-adblock-killer/issues?q=label%3ABlockAdBlock
5223 if (method.bab) { // variant 1
5224 Aak.detected('BlockAdBlock{dom:variant1}');
5225 win[prop] = null;
5226 } else if (Object.keys(method).length === 3 && Object.keys(method).map(function (value, index) {
5227 return value;
5228 }).join().length === 32) { // variant 2
5229 Aak.detected('BlockAdBlock{dom:variant2}');
5230 win[prop] = null;
5231 }
5232 }
5233 } catch (e) {
5234 //console.log('error', prop)
5235 }
5236 }
5237
5238 // Anti-Adblockers
5239 var aabs = {
5240 // Plugins WordPress
5241 NoAdBlock : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.js)',
5242 BetterStopAdblock : '(/plugins/better-stop-adblock/|bsa-script-doctype.js|bsa-script-no-doctype.js)',
5243 AdBlockBlocker : '/plugins/wordpress-adblock-blocker/',
5244 AntiBlockBukssaAyman : '/plugins/anti-block/',
5245 BlockAlyzer : '/plugins/blockalyzer-adblock-counter/',
5246 AdBlockingDetector : '/plugins/ad-blocking-detector/',
5247 // Plugins Website
5248 Adworkmedia : '(adworkmedia|loxtk|contentlockingnetworks).com/gLoader.php',
5249 Adscendmedia : 'adscendmedia.com/gwjs.php',
5250 FuckAdBlock : '(/fuckadblock.js|/blockadblock.js)',
5251 jQueryAdBlock : '/jquery.adblock.js',
5252 jQueryAdblockDetector : '/jquery.adblock-detector.js',
5253 AdBlockAdvertisement : '/advertisement.js',
5254 AdBlockAdvert : '/advert.js',
5255 AdBlockAdvCustom : '/advertisement(.+).js',
5256 AdBlockAdframe : '/adframe.js',
5257 AntiAdBuster : '/anti-ad-buster.js',
5258 RTKAntiAdblock : '/blockcake.js',
5259 AdblockDetector : '/AdblockDetector/handler.min.js',
5260 jQueryAntiAdsBlock : '/jquery.antiadsblock.js',
5261 Adbuddy : '/js/adbuddy.min.js',
5262 AntiADsBlocker : '/aadb/script.js'
5263 };
5264
5265 var scripts = document.scripts;
5266 for (var y = 0; y < scripts.length; y++) {
5267 var script = scripts[y];
5268 if (script.src) {
5269 for (var key in aabs) {
5270 if (new RegExp(aabs[key], 'i').test(script.src)) {
5271 Aak.detected([key, script.src]);
5272 break;
5273 }
5274 }
5275 }
5276 }
5277
5278 },
5279 onInsert : function (insertedNode) {
5280
5281 // All Nodes
5282 if (Aak.opts.inserted) {
5283 if (insertedNode.src ||
5284 insertedNode.id ||
5285 insertedNode.className &&
5286 !/firebug/.test(insertedNode.innerHTML)) {
5287 // Node inserted
5288 Aak.log(insertedNode);
5289 }
5290 }
5291
5292 // No-Adblock - http://www.no-adblock.com/
5293 if (insertedNode.id &&
5294 insertedNode.id.length == 4 &&
5295 /^[a-z0-9]{4}$/.test(insertedNode.id) &&
5296 insertedNode.nodeName == 'DIV' &&
5297 insertedNode.firstChild &&
5298 insertedNode.firstChild.id &&
5299 insertedNode.firstChild.id == insertedNode.id &&
5300 Aak.contains(insertedNode.innerHTML, 'no-adblock.com')) {
5301 // Remove
5302 Aak.detected('No-Adblock', false, location.href);
5303 Aak.removeElement(insertedNode);
5304 //Aak.log(insertedNode);
5305 }
5306
5307 // StopAdblock - http://stopadblock.org/downloads/
5308 if (insertedNode.id &&
5309 insertedNode.id.length == 7 &&
5310 /^a[a-z0-9]{6}$/.test(insertedNode.id) &&
5311 insertedNode.nodeName == 'DIV' &&
5312 insertedNode.parentNode &&
5313 insertedNode.parentNode.id &&
5314 insertedNode.parentNode.id == insertedNode.id + '2' &&
5315 Aak.contains(insertedNode.innerHTML, 'stopadblock.org')) {
5316 // Remove
5317 Aak.detected('StopAdBlock', false, location.href);
5318 Aak.removeElement(insertedNode);
5319 //Aak.log(insertedNode);
5320 }
5321
5322 // AntiAdblock (Packer)
5323 var reIframeId = /^(zd|wd)$/;
5324 var reImgId = /^(xd|gd)$/;
5325 var reImgSrc = /\/ads\/banner.jpg/;
5326 var reIframeSrc = /(\/adhandler\/|\/adimages\/|ad.html)/;
5327
5328 // Communs
5329 if (insertedNode.id &&
5330 reImgId.test(insertedNode.id) &&
5331 insertedNode.nodeName == 'IMG' &&
5332 reImgSrc.test(insertedNode.src) ||
5333 insertedNode.id &&
5334 reIframeId.test(insertedNode.id) &&
5335 insertedNode.nodeName == 'IFRAME' &&
5336 reIframeSrc.test(insertedNode.src)) {
5337
5338 // Variant 1
5339 if (insertedNode.id == 'xd') {
5340 Aak.detected('AntiAdblockPackerZdxd', false, location.href);
5341 } // Variant 2
5342 else if (insertedNode.id == 'gd') {
5343 Aak.detected('AntiAdblockPackerWdgd', false, location.href);
5344 }
5345 // Remove
5346 //Aak.log(insertedNode);
5347 Aak.removeElement(insertedNode);
5348 }
5349
5350 // Adunblock - http://adunblock.com/
5351 var reId = /^[a-z]{8}$/;
5352 var reClass = /^[a-z]{8} [a-z]{8}/;
5353 var reBg = /^[a-z]{8}-bg$/;
5354 var reMessage = /Il semblerait que vous utilisiez un bloqueur de publicité !/;
5355
5356 // Communs
5357 if (typeof Aak.uw.vtfab != 'undefined' &&
5358 typeof Aak.uw.adblock_antib != 'undefined' &&
5359 insertedNode.parentNode &&
5360 insertedNode.parentNode.nodeName == 'BODY' &&
5361 insertedNode.id &&
5362 reId.test(insertedNode.id) &&
5363 insertedNode.nodeName == 'DIV' &&
5364 insertedNode.nextSibling &&
5365 insertedNode.nextSibling.className &&
5366 insertedNode.nextSibling.nodeName == 'DIV') {
5367
5368 // Full Screen Message (Premium)
5369 // <div id="lfyhsvdq" class="tvwnoqdf svonexrk" style="top: 100px; opacity: 1; visibility: visible;">
5370 // <div class="tvwnoqdf-bg" style="display: block;"></div>
5371 if (insertedNode.className &&
5372 reClass.test(insertedNode.className) &&
5373 reBg.test(insertedNode.nextSibling.className) &&
5374 insertedNode.nextSibling.style &&
5375 insertedNode.nextSibling.style.display != 'none') {
5376
5377 // Remove Message
5378 Aak.detected("AdUnBlockPremium");
5379 Aak.removeElement(insertedNode.nextSibling); // overlay
5380 Aak.removeElement(insertedNode); // box
5381 }
5382 // Top bar Message (Free)
5383 // <div id="vixmgrly">
5384 // <div id="mfnhaiyx" class="lkrnvbyt">
5385 else if (insertedNode.nextSibling.id &&
5386 reId.test(insertedNode.nextSibling.id) &&
5387 reMessage.test(insertedNode.innerHTML)) {
5388
5389 // Remove Message
5390 Aak.detected("AdUnBlockFree");
5391 Aak.removeElement(insertedNode);
5392 }
5393 }
5394
5395 // Antiblock - http://antiblock.org/
5396 var reMsgId = /^[a-z0-9]{4,10}$/i;
5397 var reTag1 = /^(div|span|b|i|font|strong|center)$/i;
5398 var reTag2 = /^(a|b|i|s|u|q|p|strong|center)$/i;
5399 var reWords1 = /ad blocker|ad block|ad-block|adblocker|ad-blocker|adblock|bloqueur|bloqueador|Werbeblocker|adblockert|آدبلوك بلس|блокировщиком/i;
5400 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;
5401
5402 // Antiblock.org (all version)
5403 if (insertedNode.parentNode &&
5404 insertedNode.id &&
5405 insertedNode.style &&
5406 insertedNode.childNodes.length &&
5407 insertedNode.firstChild &&
5408 !insertedNode.firstChild.id &&
5409 !insertedNode.firstChild.className &&
5410 reMsgId.test(insertedNode.id) &&
5411 reTag1.test(insertedNode.nodeName) &&
5412 reTag2.test(insertedNode.firstChild.nodeName)) {
5413 //Aak.log(insertedNode);
5414
5415 // Kill audio message
5416 var audio = insertedNode.querySelector("audio[loop]");
5417 if (audio) {
5418 audio.pause();
5419 Aak.detected('Antiblock{audio}');
5420 Aak.removeElement(audio);
5421 }
5422 // Antiblock.org v2
5423 // demo: http://tinyurl.com/h3mwta4
5424 else if ((Aak.aabs.abo2 && insertedNode.id == Aak.aabs.abo2) ||
5425 (insertedNode.firstChild.hasChildNodes() && reWords1.test(insertedNode.firstChild.innerHTML) && reWords2.test(insertedNode.firstChild.innerHTML))) {
5426 Aak.detected('Antiblock2{insert}');
5427 Aak.removeElement(insertedNode);
5428 }
5429 // Antiblock.org v3
5430 // demo: http://tinyurl.com/qecfa7w
5431 // case: http://tinyurl.com/zbrlr3a /* fork */
5432 else if ((Aak.aabs.abo3 && insertedNode.id == Aak.aabs.abo3) ||
5433 (insertedNode.firstChild.hasChildNodes() && insertedNode.firstChild.firstChild.nodeName == 'IMG' && /^data:image\/png;base64/.test(insertedNode.firstChild.firstChild.src))) {
5434 Aak.uw[Aak.aabs.abo3] = null;
5435 Aak.detected('Antiblock3{insert}');
5436 Aak.removeElement(insertedNode);
5437 }
5438 // BetterStopAdblock
5439 // demo: http://tinyurl.com/js9zat4
5440 // source: http://pastebin.com/YimkrtKB
5441 // issue: http://tinyurl.com/zetgbtx
5442 else if (Aak.aabs.bsa && insertedNode.id == Aak.aabs.bsa) {
5443 Aak.uw[Aak.aabs.bsa] = null;
5444 Aak.detected('BetterStopAdblock{insert}');
5445 Aak.removeElement(insertedNode);
5446 }
5447 // Many false positive
5448 else {
5449 //Aak.removeElement(insertedNode);
5450 }
5451 }
5452 }
5453 }
5454 },
5455 blockDetect : function () {
5456
5457 // Exclude domains
5458 // issue: https://github.com/reek/anti-adblock-killer/issues/1466
5459 // issue: https://github.com/reek/anti-adblock-killer/issues/1263
5460 // issue: https://greasyfork.org/en/forum/discussion/8422/
5461 // issue: https://github.com/reek/anti-adblock-killer/issues/986
5462 // issue: https://github.com/reek/anti-adblock-killer/issues/857
5463 // issue: https://github.com/reek/anti-adblock-killer/issues/617
5464 // issue: https://greasyfork.org/fr/forum/discussion/5426
5465 // issue: https://github.com/reek/anti-adblock-killer/issues/419
5466 // issue: https://github.com/reek/anti-adblock-killer/issues/377
5467 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"];
5468 var host = location.host;
5469 var excluded = false;
5470 excludes.forEach(function (exclude) {
5471 if (new RegExp(exclude).test(host)) {
5472 excluded = true;
5473 if (Aak.opts.logExcluded) {
5474 Aak.warn('Excluded');
5475 }
5476 return false;
5477 }
5478 });
5479
5480 // Include domains
5481 // IsEventupported: http://tinyurl.com/oeez8c7
5482 if (!excluded) {
5483
5484 var handlerEvents = function () {
5485 var rule = Aak.rules[name];
5486
5487 rule.host.forEach(function (host) {
5488 // Check host
5489 if (new RegExp(host).test(location.host)) {
5490
5491 // Native mode
5492 if (!Aak.useGM && Aak.isTopframe) {
5493 Aak.warn('Run natively.');
5494 }
5495
5496 // Log rule used
5497 if (rule.host[0] != '.*?') {
5498 Aak.detected('rule', rule);
5499 }
5500
5501 // Before DOM load
5502 if (rule.onStart) {
5503 rule.onStart();
5504 }
5505 // On all statements
5506 if (rule.onAlways) {
5507 rule.onAlways(); // start
5508 Aak.onEvent(window, 'DOMContentLoaded', rule.onAlways); // idle
5509 Aak.onEvent(window, 'load', rule.onAlways); // end
5510 }
5511 // Before Script Executed
5512 if (rule.onBeforeScript) {
5513
5514 // options: contains, search, replace, override, remove, external
5515 var optionsBeforeScript = rule.onBeforeScript();
5516 if (typeof optionsBeforeScript == "object") {
5517
5518 var handlerBeforeScript = function (e, options) {
5519 var isEvent = e instanceof window.Event;
5520 var thisScript = (e.target || e.srcElement) || e;
5521
5522 options.forEach(function (o) { // hasAttribute
5523 var src = o.external ? 'src' : 'innerHTML';
5524 var search = new RegExp(o.contains, o.flags || '');
5525
5526 if (thisScript[src] && thisScript[src].length && search.test(thisScript[src])) {
5527
5528 // Stop script execution
5529 if (isEvent) {
5530 e.preventDefault();
5531 e.stopPropagation();
5532 }
5533
5534 // Create new script
5535 var parent = thisScript.parentNode;
5536 var newScript = document.createElement('script');
5537
5538 // Replace a part of the script
5539 if (o.replace) {
5540 newScript[src] = thisScript[src].replace(search, o.replace);
5541 parent.replaceChild(newScript, thisScript);
5542 } // Override script
5543 else if (o.override) {
5544 newScript[src] = o.override;
5545 parent.replaceChild(newScript, thisScript);
5546 } // Remove script
5547 else if (o.remove) {
5548 parent.removeChild(thisScript);
5549 }
5550
5551 if (o.detected) {
5552 Aak.detected(o.detected);
5553 }
5554
5555 if (Aak.opts.logInterceptedScripts) {
5556 Aak.log(src, o, thisScript, newScript);
5557 }
5558 }
5559 });
5560 };
5561
5562 // Browser supporting event beforescriptexecute
5563 if ('onbeforescriptexecute' in document) {
5564 Aak.onEvent(window, 'beforescriptexecute', function (e) {
5565 handlerBeforeScript(e, optionsBeforeScript);
5566 });
5567 } else { // Browser not suppoting beforescriptexecute
5568
5569 var loadDocument = function (optionsBeforeScript) {
5570 //if (document.referrer === '')
5571 //return;
5572
5573 Aak.warn('onbeforescript-compatible');
5574
5575 // Stop loading
5576 Aak.addScript('window.stop();'); // chrome/opera
5577 //Aak.addScript('document.open();'); // firefox
5578
5579 // Get content
5580 Aak.request({
5581 url : location.href,
5582 headers : {
5583 "Referer" : document.referrer
5584 },
5585 onload : function (result) {
5586 var html = result.responseText;
5587 var parser = new window.DOMParser();
5588 var doc = parser.parseFromString(html, "text/html");
5589 var scripts = doc.scripts;
5590
5591 for (var i = 0; i < scripts.length; i++) {
5592 var thisScript = scripts[i];
5593 handlerBeforeScript(thisScript, optionsBeforeScript);
5594 }
5595
5596 // Convert to string
5597 html = doc.documentElement.outerHTML;
5598
5599 // Write new content to HTML document:
5600 Aak.addScript('document.open(); document.write(unescape("' + window.escape(html) + '")); document.close();'); // chrome/opera
5601 //Aak.addScript('document.write(unescape("' + escape(html) + '")); document.close();'); // firefox
5602 }
5603 });
5604 };
5605 loadDocument(optionsBeforeScript);
5606 }
5607 }
5608 } // After Script Executed
5609 if (rule.onAfterScript) {
5610 if ('onafterscriptexecute' in document) { // Mozilla Firefox
5611 Aak.onEvent(window, 'afterscriptexecute', rule.onAfterScript);
5612 }
5613 }
5614 // When DOM Load
5615 if (rule.onIdle) {
5616 if (!Aak.useGM) { // Native mode
5617 rule.onIdle();
5618 } else {
5619 //Aak.onEvent(window, 'DOMContentLoaded', rule.onIdle);
5620 Aak.onEvent(window, 'DOMContentLoaded', rule.onIdle);
5621 }
5622 }
5623 // When Window Load
5624 if (rule.onEnd) {
5625 if (!Aak.useGM) { // Native mode
5626 rule.onEnd();
5627 } else {
5628 Aak.onEvent(window, 'load', rule.onEnd);
5629 }
5630 }
5631 // When DOM AttrModified
5632 if (rule.onAttrModified) {
5633 Aak.onEvent(window, 'DOMAttrModified', rule.onAttrModified, false);
5634 }
5635 // When DOM SubtreeModified
5636 if (rule.onSubtreeModified) {
5637 Aak.onEvent(window, 'DOMSubtreeModified', rule.onSubtreeModified, false);
5638 }
5639 // When DOM Elements are Inserted in Document
5640 if (rule.onInsert) {
5641
5642 // Mutation Observer
5643 // doc: http://tinyurl.com/mxxzee4
5644 // support: http://tinyurl.com/nepn7vy
5645 if (typeof window.MutationObserver != 'undefined' ||
5646 typeof WebKitMutationObserver != 'undefined') {
5647
5648 // Mutation Observer
5649 var MutationObserver1 = window.MutationObserver || window.WebKitMutationObserver;
5650
5651 // Create an observer instance
5652 var obs1 = new MutationObserver1(function (mutations) {
5653 // We can safely use `forEach` because we already use mutation
5654 // observers that are more recent than `forEach`. (source: MDN)
5655 mutations.forEach(function (mutation) {
5656 // we want only added nodes
5657 if (mutation.addedNodes.length) {
5658 Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) {
5659 if (Aak.opts.logInsertedNodes) {
5660 Aak.log(addedNode);
5661 }
5662 rule.onInsert(addedNode);
5663 });
5664 }
5665 });
5666 });
5667 // Observer
5668 obs1.observe(document, {
5669 childList : true,
5670 subtree : true
5671 });
5672 }
5673 // Mutation Events (Alternative Solution)
5674 // doc: http://tinyurl.com/op95rfy
5675 else {
5676 Aak.onEvent(window, "DOMNodeInserted", function (e) {
5677 if (Aak.opts.logInsertedNodes) {
5678 Aak.log(e.target);
5679 }
5680 rule.onInsert(e.target);
5681 }, false);
5682 }
5683 }
5684 // When DOM Elements are Removed in Document
5685 if (rule.onRemove) {
5686
5687 // Mutation Observer
5688 // doc: http://tinyurl.com/mxxzee4
5689 // support: http://tinyurl.com/nepn7vy
5690 if (typeof window.MutationObserver != 'undefined' ||
5691 typeof WebKitMutationObserver != 'undefined') {
5692
5693 // Mutation Observer
5694 var MutationObserver2 = window.MutationObserver || window.WebKitMutationObserver;
5695
5696 // Create an observer instance
5697 var obs2 = new MutationObserver2(function (mutations) {
5698 // We can safely use `forEach` because we already use mutation
5699 // observers that are more recent than `forEach`. (source: MDN)
5700 mutations.forEach(function (mutation) {
5701 // we want only removed nodes
5702 if (mutation.removedNodes.length) {
5703 Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) {
5704 if (Aak.opts.logRemovedNodes) {
5705 Aak.log(removedNode);
5706 }
5707 rule.onRemove(removedNode);
5708 });
5709 }
5710 });
5711 });
5712 // Observer
5713 obs2.observe(document, {
5714 childList : true,
5715 subtree : true
5716 });
5717 }
5718 // Mutation Events (Alternative Solution)
5719 // doc: http://tinyurl.com/op95rfy
5720 else {
5721 Aak.onEvent(window, "DOMNodeRemoved", function (e) {
5722 if (Aak.opts.logRemovedNodes) {
5723 Aak.log(e.target);
5724 }
5725 rule.onRemove(e.target);
5726 }, false);
5727 }
5728 }
5729
5730 // Aak Events
5731 Aak.onEvent(window, 'detected', function (e) {
5732 Aak.info(['AntiAdbKiller', Aak.isTopframe ? 'topframe' : 'subframe', location.host, e.detail]);
5733 });
5734
5735 }
5736 });
5737 };
5738
5739 // Apply rules
5740 for (var name in Aak.rules) {
5741 if (Aak.rules.hasOwnProperty(name)) {
5742 handlerEvents(Aak, name);
5743 }
5744 }
5745 }
5746 }
5747 };
5748
5749 Aak.initialize();
5750
5751})(window);