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