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