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