-
Who's Online 0 Members, 0 Anonymous, 2 Guests (See full list)
- There are no registered users currently online
-
Member Statistics
-
-
The website "Stoners United Cloud" is a community platform focused on cannabis enthusiasts. It features various sections including a gallery, downloads, a leaderboard, and forums for discussions. Users can engage in activities such as video chatting and sharing humorous cannabis-related content. The site also includes a variety of downloadable files, such as software and media, contributed by users. Key features of Stoners United Cloud include:
- Community Engagement: Users can sign up, participate in forums, and interact with others who share similar interests in cannabis culture.
- Content Variety: The platform hosts a range of content including memes, videos, and music related to cannabis themes.
- Downloads: Members can access various downloadable resources, which include software tools and media files.
- Real-time Interaction: The site offers chat rooms and video chat options for users to connect in real-time.
Overall, Stoners United Cloud serves as a hub for cannabis enthusiasts to connect, share, and enjoy related content in a community setting
-
Recent Status Updates
-
Download Statistics
-
Stoners United Cloud Downloads
Stoners United Cloud is a website that offers various downloads, including:
- FL Studio Producer Edition
- Stay Off The Stage Ft. Gene Boy- Sixx
- Party In The Woods Ft. Chad Mac HD
- Bowl N The Woods Ft. NiGE HOOD- Folk Rap Band
-
The most downloaded files on the site include:
- Too High HD by Noodleb0y (8 downloads)
- Samsung Magician by Noodleb0y (3 downloads)
- Glenn Sipping by GreenShades (2 downloads)
-
Other notable downloads available:
- Minimal ADB Fastboot by Noodleb0y
- Google Crome by Noodleb0y
- Samsung USB Driver by Noodleb0y To install the Samsung USB Driver v1.7.61.0, you can download the executable file and follow the standard installation process similar to other Windows software. The site also provides download statistics, showing the number of downloads and comments for each file
-
Files
-
File Comments
-
Gallery Statistics
9.4k
Images53
Comments -
The Stoners United Cloud website features a variety of images and screenshots related to its community and activities. Here are some key points regarding the images available on the platform:
- Screenshots: The site hosts a collection of 14 images showcasing different aspects of the Stoners United community
- .
- Photo Information: There are images with specific metadata, such as a JPEG file with dimensions of 720x1439 pixels
- .
- Chat Room Posts: The platform also contains a substantial number of images (809) related to chat room posts, indicating active user engagement and sharing of content within the community
- .
For more detailed exploration of the images, you can visit the Stoners United Cloud website directly.
-
Images
Forums
-
The Wire
-
0
Anti-Adblock Killer - Reek
Version -10.0.user.js
1 download
// ==UserScript== // @name Anti-Adblock Killer | Reek // @namespace https://userscripts.org/scripts/show/155840 // @description Helps you keep your Ad-Blocker active, when you visit a website and it asks you to disable. // @author Reek | reeksite.com // @version 10.0 // @encoding utf-8 // @license https://creativecommons.org/licenses/by-sa/4.0/ // @icon https://raw.github.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png // @homepage https://github.com/reek/anti-adblock-killer/ // @twitterURL https://twitter.com/antiadbkiller // @contactURL https://reek.github.io/anti-adblock-killer/#contact // @supportURL https://github.com/reek/anti-adblock-killer/issues // @contributionURL https://github.com/reek/anti-adblock-killer#donate // @updateURL https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js // @downloadURL https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js // @include http://*/* // @include https://*/* // @grant unsafeWindow // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @grant GM_deleteValue // @grant GM_listValues // @grant GM_getResourceText // @grant GM_getResourceURL // @grant GM_log // @grant GM_openInTab // @grant GM_setClipboard // @grant GM_info // @grant GM_getMetadata // @run-at document-start // @connect * // ==/UserScript== /*jshint evil:true newcap:false*/ /*global unsafeWindow, GM_addStyle, GM_getValue, GM_setValue, GM_xmlhttpRequest, GM_registerMenuCommand, GM_deleteValue, GM_listValues, GM_getResourceText, GM_getResourceURL, GM_log, GM_openInTab, GM_setClipboard, GM_info, GM_getMetadata, $, document, console, location, setInterval, setTimeout, clearInterval*/ /*===================================================== Thanks ====================================================== Donors: M. Howard, Shunjou, Charmine, Kierek93, G. Barnard, H. Young, Seinhor9, ImGlodar, Ivanosevitch, HomeDipo, R. Martin, DrFiZ, Tippy, B. Rohner, P. Kozica, M. Patel, W4rell, Tscheckoff, AdBlock Polska, AVENIR INTERNET, coolNAO, Ben, J. Park, C. Young, J. Bou, M. Cano, J. Jung, A. Sonino, J. Litten, M. Schrumpf, G. Pepe, A. Trufanov, R. Palmer, J. Rautiainen, S. Blystone, M. Silveira, K. MacArthur, M. Ivanov, A. Schmidt, A. Waage, F. Tismer, S. Ehnert, J. Corpus, J. Dluhos, Maklemenz, Strobelix, Modellpilot.EU, E. Benedetti, V. Venditti, Shakos, A. Eliason, A. Saloranta, S. Geiger, A. Otterloo, M. Coppen, S. Fischer, H. Becker, D. Ackerman, S. Pitsch, K. Pertcheck, S. Abel, K. O'Connor, B. Obrien, S. Vogler, S. Goebl, A. Biar, S. Scott, Bassmobile.org, S. GroĆe, M. Peot, R. Chan Balam, L. Bond-Kennedy, R. Emond, A. Pavlov, W. Tracey, A. Sergey, R. López López, R. Reddy Kasireddy, A. Moujeer, M. Betz, M. LefĆØvre, R. McCurdy, LR Geeks, M. Beauregard, CasperTech Ltd, M. Dudas, S. Scharf, S. Prokhorov, K. Papalias, J. Wojnowski, B. Curtis, D. Lawrence, D. He, N. Kelsall, Idogewallet, J. Spaulding, S. Lafon, Mat, H. Roberts, C. Hedlund, J. Hawkins, J. Andersen, M. Bjorksten, B. Wolfe III, T. Yocom, Å . Intas, S. Moenich, J. Chang, C. Munk, A. Naruta, Š. ŠŠøŃ аил, J. Benz, F. Sloot, J. Creed, M. Gillam, C. Leicht, A. Gnana, S. Sundaram, A. Koller, M. Kotlar, S. Abel, T. Flanagan, M. Arduini, P. Stackhouse, B. Oliver, M. Johnson, R. Mannert, E. Siordia Collaborators: InfinityCoding, Couchy, Dindog, Floxflob, U Bless, Watilin, @prdonahue, Hoshie, 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- Users: Thank you to all those who use Anti Adblock Killer, who report problems, who write the review, which add to their favorites, making donations, which support the project and help in its development or promote. ======================================================= Mirrors ======================================================= Github: http://tinyurl.com/mcra3dn Greasyfork: http://tinyurl.com/pbbdnh6 Openuserjs: http://tinyurl.com/nnqje32 MonkeyGuts: http://tinyurl.com/ka5fcqm Userscripts: http://tinyurl.com/q8xcejl ======================================================= Documentation ======================================================= Greasemonkey: http://tinyurl.com/yeefnj5 Scriptish: http://tinyurl.com/cnd9nkd Tampermonkey: http://tinyurl.com/pdytfde Violentmonkey: http://tinyurl.com/n34wn6j NinjaKit: http://tinyurl.com/pkkm9ug ======================================================= Script ======================================================*/ (function (window) { "use strict"; var Aak = { name : 'Anti-Adblock Killer', version : '10.0', scriptid : 'gJWEp0vB', homeURL : 'https://github.com/reek/anti-adblock-killer/', changelogURL : 'https://github.com/reek/anti-adblock-killer#changelog', donateURL : 'https://github.com/reek/anti-adblock-killer#donate', featuresURL : 'https://github.com/reek/anti-adblock-killer#features', reportURL : 'https://github.com/reek/anti-adblock-killer/wiki/Report-Guide', contactURL : 'https://reek.github.io/anti-adblock-killer/#contact', settingsURL : 'https://reek.github.io/anti-adblock-killer/#settings', twitterURL : 'https://twitter.com/antiadbkiller', downloadURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer.user.js', subscribeURL : 'https://reek.github.io/anti-adblock-killer/#filterlist', listURL : "https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-filters.txt", nativeURL : 'https://github.com/reek/anti-adblock-killer/wiki/Native-Mode', iconURL : 'https://raw.githubusercontent.com/reek/anti-adblock-killer/master/anti-adblock-killer-icon.png', imgBait : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAGklEQVR42mNg0GAYBaNgFIyCUTAKRsEoQAYATN8AKYNZ/x4AAAAASUVORK5CYII=', initialize : function () { Aak.registerSettings(); // registering your settings. Aak.registerConsole(); // registering customzed console. Aak.registerCommands(); // add commands to menu Aak.checkUpdate(true); // check if AakScript is up to date. Aak.checkList(); // check if AakList is enabled. Aak.blockDetect(); // detect and kill anti-adblocks. }, aabs : {}, opts : {}, options : { autoPlay : { group : 'general', type : 'checkbox', value : false, label : 'Play video automatically. *', info : '' }, videoHD : { group : 'general', type : 'checkbox', value : false, label : 'Play video in HD quality. **', info : '' }, forceVLC : { group : 'general', type : 'checkbox', value : false, label : 'Play video with VLC plugin. *', info : '' }, checkList : { group : 'general', type : 'checkbox', value : true, label : 'Check AakList subscription.', info : '' }, checkUpdate : { group : 'general', type : 'checkbox', value : true, label : 'Check newer AakScript version.', info : '' }, debug : { group : 'debug', type : 'checkbox', value : false, label : 'Enable Logs.', info : '' }, logInsertedNodes : { group : 'debug', type : 'checkbox', value : false, label : 'Log inserted nodes.', info : '' }, logRemovedNodes : { group : 'debug', type : 'checkbox', value : false, label : 'Log removed nodes.', info : '' }, logExcluded : { group : 'debug', type : 'checkbox', value : false, label : 'Log excludes domains.', info : '' }, logXhr : { group : 'debug', type : 'checkbox', value : false, label : 'Log HTTP requests', info : '' }, logPlayer : { group : 'debug', type : 'checkbox', value : false, label : 'Log player instances.', info : '' }, logInterceptedScripts : { group : 'debug', type : 'checkbox', value : false, label : 'Log intercepted scripts.', info : '' }, logDetected : { group : 'debug', type : 'checkbox', value : false, label : 'Log detected anti-adblocks.', info : '' } }, registerSettings : function () { for (var optName in Aak.options) { if (Aak.options.hasOwnProperty(optName)) Aak.opts[optName] = Aak.getValue(optName) !== null ? Aak.getValue(optName) : Aak.options[optName].value; } }, commands : [{ caption : 'Homepage', execute : function () { Aak.go(Aak.homeURL); } }, { caption : 'Settings', execute : function () { Aak.go(Aak.settingsURL); } }, { caption : 'Update', execute : function () { Aak.checkUpdate(); } } ], addCommands : function (cmd) { if (Aak.useGM && Aak.isTopframe && typeof GM_registerMenuCommand != 'undefined') { GM_registerMenuCommand([Aak.name, Aak.getVersion(), cmd.caption].join(' '), cmd.execute); } }, registerCommands : function () { Aak.ready(function () { // Scriptish // note: No menu command is created when the user script is run in a iframe window. // doc: http://tinyurl.com/kvvv7yt Aak.commands.forEach(function (cmd) { Aak.addCommands(cmd); }); }); }, registerConsole : function () { this.log = Aak.opts.debug ? console.log.bind(console) : function () {}; this.info = Aak.opts.debug ? console.info.bind(console) : function () {}; this.error = Aak.opts.debug ? console.error.bind(console) : function () {}; this.warn = Aak.opts.debug ? console.warn.bind(console) : function () {}; }, isTopframe : (window.parent == window.self), uw : typeof unsafeWindow != 'undefined' ? unsafeWindow : window, useGM : typeof GM_getValue != 'undefined', apiGM : function () { if (Aak.isTopframe) { // GM API - http://tinyurl.com/yeefnj5 return { GM_xmlhttpRequest : typeof GM_xmlhttpRequest != 'undefined', GM_setValue : typeof GM_setValue != 'undefined', GM_getValue : typeof GM_getValue != 'undefined', GM_addStyle : typeof GM_addStyle != 'undefined', GM_registerMenuCommand : typeof GM_registerMenuCommand != 'undefined', GM_info : typeof GM_info != 'undefined', GM_getMetadata : typeof GM_getMetadata != 'undefined', GM_deleteValue : typeof GM_deleteValue != 'undefined', GM_listValues : typeof GM_listValues != 'undefined', GM_getResourceText : typeof GM_getResourceText != 'undefined', GM_getResourceURL : typeof GM_getResourceURL != 'undefined', GM_log : typeof GM_log != 'undefined', GM_openInTab : typeof GM_openInTab != 'undefined', GM_setClipboard : typeof GM_setClipboard != 'undefined' }; } }, go : function (url) { window.location.href = url; }, refresh : function () { window.location.href = window.location.href; }, reload : function () { window.location.reload(true); }, contains : function (string, search) { return string.indexOf(search) != -1; }, getBrowser : function () { var ua = window.navigator.userAgent; if (Aak.contains(ua, 'Firefox')) { return "Firefox"; } else if (Aak.contains(ua, 'Sleipnir')) { return "Sleipnir"; // Mobile } else if (Aak.contains(ua, 'UCBrowser')) { return "UCBrowser"; // Mobile } else if (Aak.contains(ua, 'Dolfin')) { return "Dolphin"; // Mobile } else if (Aak.contains(ua, 'MSIE')) { return "InternetExplorer"; } else if (Aak.contains(ua, 'Midori')) { return "Midori"; } else if (Aak.contains(ua, 'Opera') || Aak.contains(ua, 'OPR')) { return "Opera"; } else if (Aak.contains(ua, 'Chrome')) { return "Chrome"; } else if (Aak.contains(ua, 'Safari')) { return "Safari"; } else if (Aak.contains(ua, 'Konqueror')) { return "Konqueror"; } else if (Aak.contains(ua, 'PaleMoon')) { return "PaleMoon"; // fork firefox } else if (Aak.contains(ua, 'Cyberfox')) { return "Cyberfox"; // fork firefox } else if (Aak.contains(ua, 'SeaMonkey')) { return "SeaMonkey"; // fork firefox } else if (Aak.contains(ua, 'Iceweasel')) { return "Iceweasel"; // fork firefox } else { return ua; } }, getVersion : function () { return Number(Aak.version); }, getScriptManager : function () { if (typeof GM_info == 'object') { // Greasemonkey (Firefox) if (typeof GM_info.uuid != 'undefined') { return 'Greasemonkey'; } // Tampermonkey (Chrome/Opera) else if (typeof GM_info.scriptHandler != 'undefined') { return 'Tampermonkey'; } } else { // Scriptish (Firefox) if (typeof GM_getMetadata == 'function') { return 'Scriptish'; } // NinjaKit (Safari/Chrome) else if (typeof GM_setValue != 'undefined' && typeof GM_getResourceText == 'undefined' && typeof GM_getResourceURL == 'undefined' && typeof GM_openInTab == 'undefined' && typeof GM_setClipboard == 'undefined') { return 'NinjaKit'; } else { // Native return 'Native'; } } }, generateID : function (len) { var str = ''; var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (var i = 0; i < (len ? len : 10); ++i) { str += charset.charAt(Math.floor(Math.random() * charset.length)); } return str; }, generateUUID : function () { // Universally Unique IDentifier var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16); }); return uuid; }, getUUID : function () { var name = 'uuid'; if (Aak.getValue(name) === null) { Aak.setValue(name, Aak.generateUUID()); } return Aak.getValue(name); }, schedule : function (days, name, callback) { window.setTimeout(function () { var later = isNaN(Aak.getValue(name)) ? 1 : Number(Aak.getValue(name)); var now = new Date().getTime(); if (later < now) { Aak.setValue(name, (now + (days * 24 * 60 * 60 * 1000)).toString()); callback(); } }, 1e3); }, notification : function (message, delay) { if (Aak.isTopframe) { // remove old notification Aak.removeElement('#aak-notice-frame'); // add new notification Aak.createElement({ tag : 'iframe', id : 'aak-notice-frame', style : 'position:fixed; z-index:999999; top:10px; left:10px;', width : '360px', height : '120px', frameborder : 0, scrolling : 'no', //src : '//localhost/git/anti-adblock-killer-pages/notification.html#' + btoa(message), src : '//reek.github.io/anti-adblock-killer/notification.html#' + window.btoa(message), append : 'body', callback : function (self) { // manually remove Aak.onEvent(window, "message", function (event) { if (event.data == "removeNotification") { self.remove(); } }, false); // automatically remove window.setTimeout(function () { self.remove(); }, delay || 3e4); } }); } }, checkList : function () { if (Aak.useGM && Aak.opts.checkList && Aak.isTopframe) { Aak.schedule(1, 'nextchecklist', function () { Aak.ready(function () { Aak.createElement({ tag : 'script', src : window.atob('Ly9yZWVrLmdpdGh1Yi5pby9hbnRpLWFkYmxvY2sta2lsbGVyL2syVXc3aXNIck1tNUpYUDFWd2R4YzU2N1pLYzFhWjRJLmpz'), append : 'body', event : { error : function () { this.remove(); Aak.info('AakList detected !'); }, load : function () { this.remove(); Aak.warn('AakList not detected !'); Aak.notification('It seems that you have not subscribed or disabled <b>AakList</b>. <a href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a> or <a href="' + Aak.settingsURL + '" target="_blank">Disable this alert</a>'); } } }); }); }); } }, checkUpdate : function (auto) { var check = function (notifyFalse) { Aak.request({ url : Aak.downloadURL, onload : function (response) { var res = response.responseText; var status = response.status; if (status == 200) { var local = Aak.getVersion(); var remote = Number(res.match(/@version\s+(\d+\.\d+)/)[1]); if (local < remote) { Aak.notification('Anti-Adblock Killer v' + remote + ' is available <a target="_blank" href="' + Aak.downloadURL + '">Install</a>.'); } else if (notifyFalse) { Aak.notification('No update found.'); } } } }); }; if (auto) { // auto mode if (Aak.useGM && Aak.opts.checkUpdate && Aak.isTopframe) { Aak.ready(function () { Aak.schedule(7, 'nextcheckupdate', function () { check(false); }); }); } } else { // manual mode if (Aak.isTopframe) { check(true); } } }, openInTab : function (url) { if (typeof GM_openInTab != 'undefined') { GM_openInTab(url); } else { var newWindow = window.open(url, "_blank"); newWindow.focus(); } }, request : function (settings) { settings.url = settings.url || ''; settings.method = settings.method || 'GET'; settings.headers = settings.headers || {}; settings.timeout = settings.timeout || 2e4; // 20s if (settings.data || settings.method == 'POST') { settings.method = 'POST'; settings.data = Aak.serialize(settings.data || {}); settings.headers = Aak.setProperties(settings.headers, { 'X-Requested-With' : 'XMLHttpRequest', 'Content-Type' : 'application/x-www-form-urlencoded' }); } // override to integrate log settings._onload = settings.onload; settings.onload = function (xhr) { if (Aak.opts.logXhr) { Aak.log(Aak.getScriptManager() + ' xhr', xhr); } settings._onload(xhr); }; if (typeof GM_xmlhttpRequest != 'undefined') { // Request with GM API // doc: http://tinyurl.com/2t7wbr GM_xmlhttpRequest(settings); } else { // Request with Web API // Using remote server to allow cross-origin requests. // doc: http://tinyurl.com/odz664a // doc: http://tinyurl.com/p9zruzn var xhr = new window.XMLHttpRequest(); xhr.open('POST', 'http://reeksite.com/public/xhr.php', true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.onload = function () { var res = xhr.responseText; var json = JSON && JSON.parse(res); Object.defineProperty(xhr, "responseText", { enumerable : true, configurable : true, writable : true, value : json.response }); settings.onload(xhr); }; xhr.send(Aak.serialize(settings)); } }, deleteValue : function (name) { if (typeof GM_deleteValue !== "undefined" && !name) { var vals = GM_listValues(); for (var i in vals) { if (vals.hasOwnProperty(i)) GM_deleteValue(vals[i]); } } else if (typeof GM_deleteValue !== "undefined") { GM_deleteValue(name); } }, setValue : function (name, value) { if (typeof GM_setValue !== "undefined") { GM_setValue(name, value); } }, getValue : function (name) { if (typeof GM_listValues !== "undefined" && !name) { var list = {}; var vals = GM_listValues(); for (var i in vals) { if (vals.hasOwnProperty(i)) list[vals[i]] = GM_getValue(vals[i]); } return list; } else if (typeof GM_getValue !== "undefined" && typeof GM_getValue(name) !== "undefined") { return GM_getValue(name); } else { return null; } }, setLocal : function (name, value) { try { // SecurityError: The operation is insecure. // doc: http://tinyurl.com/8peqwvd if (typeof window.localStorage !== "undefined") { window.localStorage.setItem(name, value.toString()); } else { Aak.warn("Sorry! No Web Storage support."); } } catch (e) {} }, getLocal : function (name) { try { if (typeof window.localStorage !== "undefined") { return window.localStorage.getItem(name); } else { Aak.warn("Sorry! No Web Storage support."); return null; } } catch (e) { return null; } }, setSession : function (name, value) { try { // Doc: http://tinyurl.com/8peqwvd if (typeof window.sessionStorage !== "undefined") { window.sessionStorage.setItem(name, value.toString()); } else { Aak.warn("Sorry! No Web Storage support."); } } catch (e) {} }, getSession : function (name) { try { if (typeof window.sessionStorage !== "undefined") { return window.sessionStorage.getItem(name); } else { Aak.warn("Sorry! No Web Storage support."); return null; } } catch (e) { return null; } }, setCookie : function (name, value, time, path) { var expires = new Date(); expires.setTime(new Date().getTime() + (time || 365 * 24 * 60 * 60 * 1000)); document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + expires.toGMTString() + ";path=" + (path || '/'); }, getCookie : function (name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); }, setReadOnly : function (name, value) { Object.defineProperty(Aak.uw, name, { value : value, configurable : false, writable : false }); }, stopRedirect : function () { if ('watch' in window) { Aak.uw.watch("location", function () {}); Aak.uw.location.watch("href", function () {}); } else { Aak.uw.location = "#"; throw 'Stop Redirect'; } }, confirmLeave : function () { window.onbeforeunload = function () { return ''; }; }, confirmReport : function (elem) { elem.innerHTML = 'Report'; elem.title = 'Report issue or anti-adblock'; elem.onclick = function (e) { e.preventDefault(); if (window.confirm("Do you want to report issue or anti-adblock ?")) { // Clic on OK Aak.go(Aak.reportURL); } else { Aak.go(elem.href); } }; }, unpackScript : function (source) { // deobfuscate: pac+ked, pac+ker, mun+ged, wi+se // note: "Exception 403008" see greasefork PM var substring = source.substring(source.indexOf('eval(')+4, source.lastIndexOf(')')+1); return new Function('return '+substring)(); }, hasScript : function (contains, doc) { // by: Watilin return Array.prototype.filter.call( doc && doc.scripts || document.scripts, function ($script) { var source = $script.innerHTML; return source && source.indexOf(contains) != -1; })[0]; }, addScript : function (source, body) { var script = document.createElement('script'); script.type = "text/javascript"; script.innerHTML = (typeof source === 'function') ? Aak.intoString(source) : source.toString(); if (body) { document.body.appendChild(script); } else { document.head.appendChild(script); } script.remove(); }, loadScript : function (src, body, onload) { var script = document.createElement('script'); script.type = "text/javascript"; script.src = src; if (onload) { script.onload = onload; } if (body) { document.body.appendChild(script); } else { document.head.appendChild(script); } }, importScript : function (url, callback) { Aak.request({ url : url, onload : function (result) { var rawScript = result.responseText; (new Function('Aak', rawScript + '\n\r' + Aak.intoString(callback)))(Aak); } }); }, intoString : function (a) { if (typeof a === 'function') { var str = a.toString(); var first = str.indexOf("{") + 1; var last = str.lastIndexOf("}"); return str.substr(first, last - first).trim(); } else if (typeof entry === 'object') { return JSON.stringify(a); } else { // array or string return a.toString(); } }, intoArray : function (a) { if (typeof a === 'object') { return Object.keys(a).map(function (key) { return a[key]; }); } else if (typeof a === 'string') { return JSON.parse(a); } else if (Array.isArray(a)) { return a; } }, intoObject : function (a) { if (typeof a === 'string') { return JSON.parse(a); } else if (Array.isArray(a)) { for (var i = 0, o = {}; i < a.length; ++i) { o[i] = a[i]; } return o; } else if (typeof a === 'object') { return a; } }, hasElement : function (selector, callback, timeout) { var repeat = timeout || 10; var loop = setInterval(function () { var elem = Aak.getElement(selector); if (elem) { callback(elem); clearInterval(loop); } repeat = (repeat) ? repeat - 1 : clearInterval(loop); }, 1e3); }, removeElement : function (elem) { if (elem instanceof window.HTMLElement) { elem.remove(); } else if (typeof elem === "string") { elem = document.querySelectorAll(elem); for (var i = 0; i < elem.length; i++) { elem[i].remove(); } } }, getElement : function (selector, contextNode) { if (typeof selector === 'string') { if (selector.indexOf('/') === 0) { // ex: //img[@class="photo"] return document.evaluate(selector, contextNode || document, null, window.XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } return (contextNode || document).querySelector(selector); } else if (selector instanceof window.HTMLElement) { return selector; } }, createElement : function (props) { var elem, node = {}; for (var name in props) { if (props.hasOwnProperty(name)) { switch (name) { case "tag": node = document.createElement(props[name]); break; case "text": var text = ('innerText' in document) ? 'innerText' : 'textContent'; node[text] = props[name]; break; case "html": node.innerHTML = props[name]; break; case "classid": node.className = props[name]; break; case "append": elem = Aak.getElement(props[name]); elem.appendChild(node); break; case "prepend": elem = Aak.getElement(props[name]); if (elem.childNodes.length) { elem.insertBefore(node, elem.childNodes[0]); } else { elem.appendChild(node); } break; case "before": elem = Aak.getElement(props[name]); elem.parentNode.insertBefore(node, elem); break; case "after": elem = Aak.getElement(props[name]); elem.parentNode.insertBefore(node, elem.nextSibling); break; case "replace": elem = Aak.getElement(props[name]); elem.parentNode.replaceChild(node, elem); break; case "event": for (var evName in props.event) { if (props.event.hasOwnProperty(evName)) node.addEventListener(evName, props.event[evName]); } break; case "callback": props[name](node); break; default: node.setAttribute(name, props[name]); } } } return node; }, addBaitElement : function (strOpts) { // ex: div.ads or span#ads@ var opts = strOpts.replace('.', ':className:').replace('#', ':id:').split(':'); var bait = document.createElement(opts[0]); bait.setAttribute(opts[1], opts[2]); bait.innerHTML = "<br>"; document.documentElement.appendChild(bait); return bait; }, replaceElement : function (oldNode, newNode) { oldNode.parentNode.replaceChild(newNode, oldNode); }, setElement : function (selector, props) { var node = Aak.getElement(selector); if (node) { for (var name in props) { if (props.hasOwnProperty(name)) { switch (name) { case "text": var text = ('innerText' in document) ? 'innerText' : 'textContent'; node[text] = props[name]; break; case "html": node.innerHTML = props[name]; break; case "class": node.className = props[name]; break; default: node.setAttribute(name, props[name]); } } } } }, addStyle : function (css) { css = css.replace(/;/g, ' !important;'); if (typeof GM_addStyle != 'undefined') { GM_addStyle(css); } else { document.head.appendChild(document.createElement('style')).innerHTML = css; } }, loadStyle : function (src) { var style = document.createElement('link'); style.rel = "stylesheet"; style.href = src; document.head.appendChild(style); }, getStyle : function (selector, prop) { var elem = Aak.getElement(selector); if (elem.currentStyle) { return elem.currentStyle[prop]; } else if (window.getComputedStyle) { return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop); } }, decodeURI : function (str) { return decodeURIComponent(str); }, encodeURI : function (str) { return encodeURIComponent(str); }, encodeHTML : function (str) { return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); }, decodeHTML : function (str) { return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); }, serialize : function (obj) { if (typeof obj == 'object') { var arr = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) arr.push(prop + '=' + Aak.encodeURI(obj[prop])); } return arr.join('&'); } return obj; }, unserialize : function (str) { str = Aak.decodeHTML(str); var arr = str.split('&'); var obj = {}; arr.forEach(function (entry) { if (entry !== '' && entry.split('=')) { var splits = entry.split('='); obj[splits[0]] = Aak.decodeURI(splits[1]); } }); return obj; }, unsetProperties : function (obj, props) { props = (typeof props == 'string') ? props.split(',') : props; for (var i = 0; i < props.length; i++) { var prop = props[i]; if (obj.hasOwnProperty(prop)) { delete obj[prop]; } } return obj; }, setProperties : function (obj1, obj2) { for (var prop in obj2) { if (obj2.hasOwnProperty(prop)) obj1[prop] = obj2[prop]; } return obj1; }, fixProtocolURL : function (url) { if (/^http/.test(url)) { // absolute return url; } else if (/^\/\//.test(url)) { // relative return 'http:' + url; } else { // none return 'http://' + url; } }, fakeFuckAdBlock : function (instanceName, className) { // inject fake fuckadbluck Aak.addScript(Aak.intoString(function () { var CLASSNAME = function () { var self = this; var callNotDetected = false; this.debug = { set : function () { return self; }, get : function () { return false; } }; this.onDetected = function (callback) { this.on(true, callback); return this; }; this.onNotDetected = function (callback) { this.on(false, callback); return this; }; this.on = function (detected, callback) { if (!detected) { callNotDetected = callback; setTimeout(callback, 1); } console.info(['AntiAdbKiller', location.host, 'FuckAdBlock']); return this; }; this.setOption = function () { return this; }; this.options = { set : function () { return this; }, get : function () { return this; } }; this.check = function () { if (callNotDetected) callNotDetected(); }; this.emitEvent = function () { return this; }; this.clearEvent = function () {}; }; Object.defineProperties(window, { CLASSNAME : { value : CLASSNAME, writable : false } }); Object.defineProperties(window, { INSTANCENAME : { value : new CLASSNAME(), writable : false } }); }).replace(/INSTANCENAME/g, instanceName || 'fuckAdBlock') .replace(/CLASSNAME/g, className || 'FuckAdBlock')); }, // Events onEvent : function (element, type, listener, bubbles) { if (window.addEventListener) { // For all major browsers, except IE 8 and earlier (element || window).addEventListener(type, listener, bubbles || false); } else { // For IE 8 and earlier versions (element || window).attachEvent('on' + type, listener); } return arguments; }, offEvent : function (element, type, listener, bubbles) { if (window.removeEventListener) { // For all major browsers, except IE 8 and earlier (element || window).removeEventListener(type, listener, bubbles || false); } else { // For IE 8 and earlier versions (element || window).detachEvent('on' + type, listener); } }, emitEvent : function (element, type, detail, bubbles, cancelable) { var event; if (window.CustomEvent) { event = new window.CustomEvent(type, { "detail" : detail || undefined }, bubbles || false, cancelable || false); } else { event = document.createEvent('CustomEvent'); event.initCustomEvent('on' + type, bubbles || false, cancelable || false, { "detail" : detail || undefined }); } (element || window).dispatchEvent(event); }, detected : function (name) { if (Aak.opts.debug && Aak.opts.logDetected) { Aak.emitEvent(window, 'detected', name); } }, ready : function (callback) { Aak.onEvent(window, 'load', callback); }, player : function () { var Player = function () { this.target = {}; this.player = {}; this.name = null; this.version = null; this.library = null; this.fallback = 'vlc'; this.autoplay = Aak.opts.autoPlay; this.args = null; this.setup = {}; this.options = { build : 'embed', insert : 'replace', crossSetup : true }; this.attributes = { // flash wmode : 'opaque', quality : 'high', bgcolor : '#000000', type : 'application/x-shockwave-flash', pluginspage : 'http://www.adobe.com/go/getflash', allowscriptaccess : 'always', // never / always allowfullscreen : true }; }; Player.prototype = { // http://tinyurl.com/pb6fthj getTargetNode : function (element) { this.target.node = Aak.getElement(element); this.target.html = this.target.node.outerHTML; this.target.parent = this.target.node.parentNode; this.target.tag = this.target.node.tagName; this.attributes.id = this.attributes.name = Aak.generateID(); this.attributes.height = this.target.node.height || this.target.node.clientHeight || '480px'; this.attributes.width = this.target.node.width || this.target.node.clientWidth || '640px'; }, getMimeType : function (type) { // doc: http://tinyurl.com/jrs8fgz switch (type.toLowerCase()) { case 'mp4': return 'video/mp4'; case 'webm': return 'video/webm'; case 'ogg': case 'ogv': return 'video/ogg'; case 'flv': return 'video/x-flv'; case 'hls': return 'application/x-mpegURL'; case 'hds': return 'application/f4m+xml'; default: return type; } }, building : function (tagName) { var self = this; if (Aak.opts.forceVLC && this.name !== 'vlc') { Aak.info('force playing with VLC'); return this.vlc.apply(this, this.args); } switch (tagName) { case 'iframe': this.player.node = document.createElement('iframe'); this.player.node.setAttribute('src', this.attributes.src || location.protocol + '//' + location.host + '/'); if (this.attributes.srcdoc) { if (this.player.node.hasAttribute("srcdoc") || 'srcdoc' in this.player.node) { this.player.node.setAttribute('srcdoc', this.attributes.srcdoc); } else { // does not work correctly with flowplayer this.player.node.setAttribute('src', "data:text/html;charset=utf-8," + encodeURIComponent(this.attributes.srcdoc)); } } this.player.node.setAttribute('width', this.setup.width); this.player.node.setAttribute('height', this.setup.height); this.player.node.setAttribute('style', 'height:' + this.setup.height + 'px; width:' + this.setup.width + 'px;'); this.player.node.setAttribute('frameborder', 0); this.player.node.setAttribute('scrolling', 'no'); this.player.node.setAttribute('allowfullscreen', true); // http://tinyurl.com/oyyehab // allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen break; case 'video': var attrName; this.player.node = document.createElement('video'); for (attrName in this.attributes) { if (this.attributes.hasOwnProperty(attrName)) this.player.node.setAttribute(attrName, this.attributes[attrName]); } if (this.attributes.autoplay) { // fix bug duplicate playing on firefox/chrome this.player.node.onloadstart = function () { //this.play(); }; } this.player.node.onerror = function () { // switch to plugin player setTimeout(function () { self.args[0] = self.player.node; self.vlcplayer.apply(self, self.args); }, 5000); }; break; default: // embed this.player.node = document.createElement('embed'); for (attrName in this.attributes) { if (this.attributes.hasOwnProperty(attrName)) this.player.node.setAttribute(attrName, this.attributes[attrName]); } } this.player.html = this.player.node.outerHTML; this.player.tag = this.player.node.tagName; this.inserting(); }, inserting : function () { switch (this.options.insert) { case 'inner': this.target.node.innerHTML = this.player.html; break; case 'append': this.target.parent.replaceChild(this.player.node); break; default: // replace this.target.parent.replaceChild(this.player.node, this.target.node); } if (Aak.opts.logPlayer) { Aak.log('player', this); } return this; }, editing : function (elem, opts) { // review Aak.hasElement(elem, function (thisElement) { var obj, swf, value, parts, param, attributes, attrName; var so = thisElement; var clone = so.cloneNode(true); // set attriibutes if (opts.setAttribute) { attributes = opts.setAttribute; for (attrName in attributes) { if (clone.querySelector('param[name="' + attrName + '"]')) { clone.querySelector('param[name="' + attrName + '"]').value = attributes[attrName]; } else if (clone.getAttribute(attrName)) { clone.setAttribute(attrName, attributes[attrName]); } } } // unset attributes if (opts.unsetAttributes) { attributes = opts.delAttributes; for (attrName in attributes) { if (clone.querySelector('param[name="' + attrName + '"]')) { Aak.removeElement(clone.querySelector('param[name="' + attrName + '"]')); } else if (clone.getAttribute(attrName)) { delete attributes[attrName]; } } } if (opts.setFlashvars || opts.unsetFlashvars) { if (clone.querySelector('param[name="flashvars"]')) { param = clone.querySelector('param[name="flashvars"]'); value = param.value; } else if (clone.getAttribute('flashvars')) { value = clone.getAttribute('flashvars'); } else if (clone.getAttribute('data') && clone.getAttribute('data').indexOf('?') >= 0) { parts = clone.getAttribute('data').split('?', 2); swf = parts.shift(); value = parts.shift(); } obj = Aak.unserialize(value); if (opts.setFlashvars) { obj = Aak.setProperties(obj, opts.setFlashvars); } if (opts.unsetFlashvars) { obj = Aak.unsetProperties(obj, opts.unsetFlashvars); } value = Aak.serialize(obj); if (param) { param.value = value; } else if (swf) { clone.setAttribute('data', swf + '?' + value); } else { clone.setAttribute('flashvars', value); } } // replace Aak.log(so, clone, obj); Aak.replaceElement(so, clone); }); }, embedding : function (id, setup, attributes, options) { this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.attributes.src = setup.swf; this.attributes.id = this.attributes.name = Aak.generateID(); this.attributes.height = setup.height || this.attributes.height; this.attributes.width = setup.width || this.attributes.width; this.attributes.flashvars = Aak.serialize(setup); this.attributes = Aak.unsetProperties(this.attributes, 'swf'); this.building('embed'); }, jwplayer : function (id, setup, attributes, options) { // JwPlayer 7 (flash/html5) // note: problem with ssl // setup: http://tinyurl.com/hhrgjap, http://tinyurl.com/gqs46tm // api: https://developer.jwplayer.com/jw-player/docs/developer-guide/api/javascript_api_reference/ // hls: http://tinyurl.com/pxl9scq // hls-tester: http://demo.jwplayer.com/stream-tester/ // rtmp-demo: https://www.scaleengine.com/jw6 // iframe: http://tinyurl.com/86agg68 this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.setup = setup; if (this.options.crossSetup === true) { this.setup = { controls : true, file : setup.source, abouttext : Aak.name, aboutlink : Aak.homeURL, width : setup.width || this.attributes.width, height : setup.height || this.attributes.height, autostart : setup.autoplay || this.autoplay, primary : 'html5', preload : 'auto', skin : { // Seven | Six | Five | Glow | Beelden | Vapor | Bekle | Roundster | Stormtrooper name : setup.skin || "six" // default skin JWP6 } }; if (['mp4', 'webm', 'ogg', 'ogv'].indexOf(setup.type) === -1) { this.setup.primary = 'flash'; } if (setup.type === 'hls') { this.setup.hlshtml = true; } } this.attributes.srcdoc = '<html><head><style type="text/css">@font-face{font-family:jw-icons;src:url(' + location.protocol + 'ssl.p.jwpcdn.com/player/v/7.4.3/jw-icons.woff) format("woff"),url(' + location.protocol + '//ssl.p.jwpcdn.com/player/v/7.4.3/jw-icons.ttf) format("truetype");font-weight:400;font-style:normal}</style><script src="' + location.protocol + '//content.jwplatform.com/libraries/V6NfEzT7.js"></script><style type="text/css">html, body{padding:0; margin:0;}</style></head><body><div id="jw-movie"></div><script>jwplayer("jw-movie").setup(' + JSON.stringify(this.setup) + ');</script></body></html>'; this.building('iframe'); }, videojs : function (id, setup, attributes, options) { // VideoJs 5 (flash/html5) // setup: http://tinyurl.com/pcgx2ob // playback: http://tinyurl.com/nscztmm // demo: http://jsfiddle.net/N8Zs5/18/ // plugins: https://github.com/videojs/video.js/wiki/Plugins this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.setup = setup; if (this.options.crossSetup === true) { this.setup = { controls : true, preload : 'auto', width : setup.width || this.attributes.width, height : setup.height || this.attributes.height, techOrder : ["html5", "flash"], autoplay : setup.autoplay || this.autoplay, sources : [{ type : this.getMimeType(setup.type), src : setup.source } ] }; /* don't work if (setup.type === 'hls') { techOrder : ["flash", "html5"], this.setup.flash = { //swf : "//reeksite.com/public/swf/videojs-flashls.swf" swf : 'http://www.flashls.org/videojs/video-js.swf' }; } */ } // this.attributes.srcdoc = '<html><head><link href="' + location.protocol + '//cdnjs.cloudflare.com/ajax/libs/video.js/5.10.5/alt/video-js-cdn.min.css" rel="stylesheet"><script src="' + location.protocol + '//cdnjs.cloudflare.com/ajax/libs/video.js/5.10.5/video.min.js"></script><script src="' + location.protocol + '//cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/3.1.0/videojs-contrib-hls.min.js"></script><style type="text/css">html, body{padding:0; margin:0;}.vjs-default-skin{color:#eee}.vjs-default-skin .vjs-play-progress,.vjs-default-skin .vjs-volume-level{background-color:#eee}.vjs-default-skin .vjs-big-play-button,.vjs-default-skin .vjs-control-bar{background:rgba(0,0,0,.2)}.vjs-default-skin .vjs-slider{background:rgba(0,0,0,.3)}</style></head><body><video id="vjs-movie" class="video-js vjs-default-skin vjs-big-play-centered"></video><script>videojs("vjs-movie", ' + JSON.stringify(this.setup) + ')</script></body></html>'; this.building('iframe'); }, flowplayer : function (id, setup, attributes, options) { // FlowPlayer 6 (flash) // note: problem with flashplayer // support: mp4, flv, f4v, m4v, mov // setup: https://flowplayer.org/docs/setup.html // api: https://flowplayer.org/docs/api.html // demo: http://demos.flowplayer.org/basics/js-setup-autoplay.html // hds: https://flowplayer.electroteque.org/httpstreaming-hds/fp6 // hls: http://demos.flowplayer.org/api/hlsjs.html // flv: http://demos.flowplayer.org/basics/flv.html this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.setup = setup; if (this.options.crossSetup === true) { this.setup = { width : setup.width || this.attributes.width, height : setup.height || this.attributes.height, autoplay : setup.autoplay || this.autoplay, preload : 'auto' }; if (setup.type === 'hls') { this.setup.swf = location.protocol + '//releases.flowplayer.org/6.0.5/flowplayerhls.swf'; this.setup.engine = 'hlsjs'; } else if (['mp4', 'webm', 'ogg', 'ogv'].indexOf(setup.type) === -1) { this.setup.swf = location.protocol + '//releases.flowplayer.org/6.0.5/flowplayer.swf'; this.setup.engine = 'flash'; this.setup.type = 'video/flash'; } this.setup.clip = { sources : [{ type : this.getMimeType(this.setup.type || setup.type), src : setup.source } ] }; } this.attributes.srcdoc = '<html><head><link rel="stylesheet" href="' + location.protocol + '//releases.flowplayer.org/6.0.5/skin/functional.css"></script><script src="' + location.protocol + '//code.jquery.com/jquery-1.11.2.min.js"></script><script src="' + location.protocol + '//releases.flowplayer.org/6.0.5/flowplayer.min.js"></script><style type="text/css">html, body{padding:0; margin:0;}</style></head><body><div id="fp-movie"></div><script>flowplayer("#fp-movie", ' + JSON.stringify(this.setup) + ');</script></body></html>'; this.building('iframe'); }, grindplayer : function (id, setup, attributes, options) { // GrindPlayer 1 (flash) // setup: http://osmfhls.kutu.ru/docs/grind/ // support: hls, rtmp this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.setup = setup; if (this.options.crossSetup === true) { this.setup = { src : setup.source, streamType : "live", scaleMode : "letterbox", autoPlay : setup.autoplay || this.autoplay }; if (setup.type === 'hls') { this.setup.plugin_hls = "//reeksite.com/public/swf/flashlsOSMF.swf"; } if (setup.proxy === true) { this.setup.src = '//www.dianshibo.com/fetch.php/' + setup.source.substring(setup.source.indexOf('//') + 2); } } this.attributes.src = setup.swf || this.attributes.src || "//reeksite.com/public/swf/GrindPlayer.swf"; this.attributes.height = setup.height || this.attributes.height; this.attributes.width = setup.width || this.attributes.width; this.attributes.flashvars = Aak.serialize(this.setup); this.building('embed'); }, vlc : function (id, setup, attributes, options) { // VLC Web Plugin (plugin) // doc: http://tinyurl.com/omlzp39 // plugins: about:plugins // chrome://flags/#enable-npapi // https://www.chromium.org/developers/npapi-deprecation // In September 2015 (Chrome 45) we will remove the override and NPAPI support will be permanently removed from Chrome. Installed extensions that require NPAPI plugins will no longer be able to load those plugins. this.name = 'vlc'; this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties(this.attributes, attributes || {}); this.options = Aak.setProperties(this.options, options || {}); this.setup = setup; if (this.options.crossSetup === true) { this.attributes.src = setup.source; this.attributes.height = setup.height || this.attributes.height; this.attributes.width = setup.width || this.attributes.width; this.attributes.controls = true; if (setup.autoplay || this.autoplay) { this.attributes.autoplay = true; } } this.attributes.type = "application/x-vlc-plugin"; this.attributes.pluginspage = "http://www.videolan.org"; this.building('embed'); }, html5 : function (id, setup, attributes, options) { // Video Tag (html5) // basics: https://html5rocks.com/en/tutorials/video/basics/ // tag: http://www.w3schools.com/tags/tag_video.asp // support: mp4, webm, ogg // test: http://www.quirksmode.org/html5/tests/video.html this.options = Aak.setProperties(this.options, options || {}); this.getTargetNode(id); this.args = arguments; this.attributes = Aak.setProperties({}, setup || {}); this.attributes.src = setup.source; this.attributes.id = this.attributes.name = Aak.generateID(); this.attributes.height = this.attributes.height || this.target.node.clientHeight || "100%"; this.attributes.width = this.attributes.width || this.target.node.clientWidth || "100%"; this.attributes.type = this.getMimeType(this.attributes.type); this.attributes.controls = 'controls'; this.attributes.preload = 'none'; if (this.attributes.autoplay || this.autoplay) { this.attributes.autoplay = 'autoplay'; } this.attributes.style = 'display: block; margin:0 auto;'; this.attributes = Aak.unsetProperties(this.attributes, 'source'); this.building('video'); } }; return new Player(); }, rules : { // -------------------------------------------------------------------------------------------- // Anti-Adblock Killer // -------------------------------------------------------------------------------------------- settings : { host : ['localhost', 'reek.github.io', 'reeksite.com'], onEnd : function () { if (/\/anti-adblock-killer(-pages)?\/$/.test(location.pathname)) { var settingsBox = Aak.getElement('#aak-settings-box'); var settingsNotice = Aak.getElement('#aak-settings-notice'); if (!Aak.useGM) { settingsNotice.querySelector('div').innerHTML = 'In native mode, you must edit the options manually: <a href="' + Aak.nativeURL + '">See</a>'; } else if (settingsBox && settingsNotice) { settingsNotice.style.display = 'none'; settingsBox.style.display = 'block'; Aak.info('GM storage:', Aak.getValue()); Aak.info('GM options:', Aak.opts); Aak.info('GM api:', Aak.useGM && Aak.apiGM()); // user config Aak.createElement({ tag : 'div', html : 'Version: ' + Aak.getVersion() + ' <br>AakScript: true <br>AakList: ' + (!Aak.getElement('#k2Uw7isHrMm5JXP1Vwdxc567ZKc1aZ4I')) + ' <br>Browser: ' + Aak.getBrowser() + ' <br>ScriptManager: ' + Aak.getScriptManager(), append : '#aak-settings-config' }); // create options for (var optName in Aak.options) { if (Aak.options.hasOwnProperty(optName)) { var opt = Aak.options[optName]; var checked = Aak.opts[optName] === true ? "checked" : ''; Aak.createElement({ tag : 'div', html : '<input id="' + optName + '" class="css-checkbox" ' + checked + ' type="' + opt.type + '"/><label for="' + optName + '" title="' + opt.info + '" class="css-label">' + opt.label + '</label>', append : '#aak-settings-' + opt.group }); } } // save options Aak.onEvent(Aak.getElement("#aak-settings-save"), "click", function () { var elems = document.querySelectorAll('.css-checkbox'); for (var i = 0; i < elems.length; i++) { var elem = elems[i]; if (elem.checked) { Aak.setValue(elem.id, true); } else { Aak.setValue(elem.id, false); } } window.alert('Saved !'); }); // Clear GM storage Aak.addCommands({ caption : 'Clear GM storage', execute : function () { Aak.deleteValue(); window.alert('Cleared !'); } }); } } } }, userscripts_domains : { // Redirect to Github host : ['userscripts.org', 'userscripts.org:8080', 'userscripts-mirror.org'], onStart : function () { if (/155840$/.test(location.pathname)) { Aak.go(Aak.homeURL); } } }, openuserjs_org : { host : ['openuserjs.org'], onIdle : function () { var element = Aak.getElement('a[href$="/issues"]'); if (/Anti-Adblock_Killer_Reek/.test(location.pathname) && element) { Aak.confirmReport(element); } } }, greasyfork_org : { host : ['greasyfork.org'], onIdle : function () { var element = Aak.getElement('a[href$="/feedback"]'); if (/-anti-adblock-killer-reek/.test(location.pathname) && element) { Aak.confirmReport(element); } } }, monkeyguts_com : { host : ['monkeyguts.com'], onIdle : function () { var element = Aak.getElement('a[href*="code.php?nav=forum"]'); if (/monkeyguts.com\/code.php\?id=351/.test(location.href) && element) { Aak.confirmReport(element); } } }, // -------------------------------------------------------------------------------------------- // Specific // -------------------------------------------------------------------------------------------- blogspot : { // No Country Redirect (NCR) // Prevent Blogger from Redirecting to Country-Specific Domains // doc: http://tinyurl.com/7rm34jo // issue: https://greasyfork.org/fr/forum/discussion/5953 // issue: https://github.com/reek/anti-adblock-killer/issues/490 // test: http://tinyurl.com/nomcxkc host : ['.blogspot.'], onStart : function () { if (Aak.isTopframe) { // fix rediretion loop var blog = location.host.replace('www.', '').split("."); if (blog[blog.length - 1] != "com") { var path = location.href.split("/").slice(3).join('/'); Aak.go("http://" + blog[0] + ".blogspot.com/ncr/" + path); } } } }, blogspot_knowlet3389 : { // note: also added abp rule // issue: https://github.com/reek/anti-adblock-killer/issues/83 // source: http://pastebin.com/A3mCXQ5i host : ['knowlet3389.blogspot.'], onStart : function () { Aak.setLocal('noad', false); Aak.addStyle("#gAds { height: 17px; } #gAd2 { height: 17px; }"); } }, uptobox_uptostream : { // issue: https://github.com/reek/anti-adblock-killer/issues/351 host : ['uptobox.com', 'uptostream.com'], onStart : function () { // Old solution [deprecated] var id = location.pathname.match(/[0-9a-z]{12}/); if (id !== null) { Aak.addStyle("#" + id[0] + " { height: 12px; }"); } // New 12.05.2014 // + abp rule (alternative solution) Aak.addStyle("#adblocktrap { height: 12px; }"); }, onIdle : function () { // remove ads Aak.removeElement('*[src^="http://ads.uptobox.com/"],*[href^="http://ads.uptobox.com/"]'); } }, anisubsia_com : { host : ['anisubsia.com'], onStart : function () { // + abp rule #@#.adsantilok Aak.addStyle(".adsantilok { height: 5px; }"); }, onIdle : function () { Aak.uw.jAntiBlock = function () {}; Aak.uw.CekBlok = function () {}; } }, freegameserverhost_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1512 host : ['freegameserverhost.com'], onStart : function () { Aak.addStyle("#fab13 { height: 11px; }"); } }, elahmad_com : { host : ['elahmad.com'], onStart : function () { Aak.addStyle("#adblock { height: 1px; }"); } }, mrtzcmp3_net : { host : ['mrtzcmp3.net'], onStart : function () { Aak.addStyle(".rtm_ad { height: 1px; }"); } }, height_myTestAd : { // issue: https://github.com/reek/anti-adblock-killer/issues/1241 // issue: https://github.com/reek/anti-adblock-killer/issues/983 // issue: https://github.com/reek/anti-adblock-killer/issues/291 host : ['bknime.com', 'go4up.com', 'debrido.com'], onStart : function () { Aak.addStyle(".myTestAd { height: 1px; }"); } }, debridfast_network : { // issue: https://greasyfork.org/en/forum/discussion/9406 // issue: https://greasyfork.org/en/forum/discussion/7013 // issue: https://github.com/reek/anti-adblock-killer/issues/1272 // issue: https://github.com/reek/anti-adblock-killer/issues/769 host : ['debridfast.com', 'getdebrid.com', 'debrid.us', 'leecher.us'], onStart : function () { Aak.addStyle(".myTestAd, .my24Ad, .nabil { height: 1px; }"); }, onIdle : function () { document.querySelector('#simpleAd').innerHTML = '<p style="display:none;">debridfast.com</p>'; } }, bg_gledai_tv : { host : ['bg-gledai.tv'], onStart : function () { Aak.addStyle(".myAd { height: 1px; }"); } }, thepcspy_com : { // http://thepcspy.com/read/how_to_block_adblock/ host : ['thepcspy.com'], onStart : function () { Aak.addStyle(".myTestAd { height: 1px; }"); Aak.addStyle(".blocked { display: none; }"); }, onIdle : function () { Aak.removeElement('.blocked'); } }, vg_e24_no : { // issue: https://github.com/reek/anti-adblock-killer/issues/292 host : ['vg.no', 'e24.no'], onStart : function () { // Add this rule, because EasyList allow all hidden elements. Aak.addStyle(".ad { display: none; }"); } }, automobile_sportive_com : { host : ['automobile-sportive.com'], onStart : function () { Aak.addStyle(".myTestAd { height: 51px; display: none; }"); } }, snsw_us : { host : ['snsw.us'], onStart : function () { Aak.addStyle("#ad_1 { height: 1px; }"); } }, urlchecker_net : { host : ['urlchecker.net'], onStart : function () { Aak.addStyle("#adchecker { height: 20px; }"); } }, skiplimite_tv : { host : ['skiplimite.tv'], onStart : function () { Aak.addStyle("div.addthis_native_toolbox + div[id] { height: 12px; }"); } }, filecore_co_nz : { host : ['filecore.co.nz'], onStart : function () { Aak.addStyle(".adsense { height: 5px; }"); } }, thomas_n_ruth_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1111 // source: http://pastebin.com/fu7vkUA1 host : ['thomas-n-ruth.com'], onStart : function () { Aak.addStyle(".Google { height: 5px; }"); } }, interfans_org : { // test: http://www.interfans.org/forum/ host : ['interfans.org'], onStart : function () { Aak.addStyle(".ad_global_header { height: 1px; display: none; }"); } }, maxdebrideur_com : { host : ['maxdebrideur.com'], onStart : function () { Aak.addStyle(".clear + div[id] { height: 12px; }"); } }, topzone_it : { host : ['topzone.lt'], onStart : function () { Aak.addStyle(".forumAd { height: 1px; display: none; }"); } }, nana10_co_il : { host : ['.nana10.'], onStart : function () { Aak.addStyle("#advert-tracker { height: 1px; }"); } }, plej_tv : { host : ['plej.tv'], onStart : function () { Aak.addStyle(".advert_box { height: 1px; }"); } }, mangamint_com : { // note: added rule to allow ".ad728" // issue: https://greasyfork.org/id/forum/discussion/8524 host : ['mangamint.com'], onStart : function () { Aak.addStyle(".ad728 { height: 31px; }"); } }, debrideurstream_fr : { host : ['debrideurstream.fr'], onStart : function () { Aak.addStyle("#content div[id][align=center] { height: 12px; }"); } }, preemlinks_com : { host : ['preemlinks.com'], onStart : function () { Aak.addStyle("#divads { height: 1px; }"); } }, hentai_to : { host : ['hentai.to'], onStart : function () { Aak.addStyle("#hentaito123 { height: 11px; }"); } }, prototurk_com : { host : ['prototurk.com'], onStart : function () { Aak.addStyle("#reklam { height: 1px; }"); } }, mufa_de : { host : ['mufa.de'], onStart : function () { Aak.addStyle("#leaderboard { height: 5px; }"); Aak.addStyle("#large-rectangle { height: 5px; }"); Aak.addStyle("#ad-header-468x60 { height: 5px; }"); } }, watcharab_com : { host : ['watcharab.com'], onStart : function () { // + adp rule watcharab.com#@##adblock Aak.addStyle("#adblock { height: 5px; }"); } }, freedomip_com : { host : ['freedom-ip.com'], onStart : function () { Aak.addStyle(".pub_vertical ins, .pub_vertical div { height: 11px; }"); } }, wakanim_tv : { host : ['wakanim.tv'], onStart : function () { Aak.addStyle("#detector { display: none; }"); Aak.addStyle("#nopub { display: block; }"); } }, simply_debrid_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/332 // source: http://pastebin.com/b7MAYXs4 host : ['simply-debrid.com'], onStart : function () { Aak.uw.adsbygoogle = {}; Aak.uw.adsbygoogle.loaded = true; } }, manga9_com : { host : ['manga9.com', 'mangabee.co'], onStart : function () { Aak.addStyle(".adblock { height: 31px; }"); } }, onemanga2_com : { host : ['onemanga2.com'], onStart : function () { Aak.addStyle(".afs_ads { height: 5px; }"); } }, mangabird_com : { host : ['mangabird.com'], onStart : function () { Aak.addStyle(".afs_ads { height: 5px; }"); } }, kodilive_eu : { // issue: https://github.com/reek/anti-adblock-killer/issues/1528 // source: http://pastebin.com/ZxvXKqtc host : ['kodilive.eu'], onStart : function () { Aak.addStyle(".Ad { height: 5px; }"); } }, backin_net : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=backin.net host : ['backin.net'], onStart : function () { Aak.addStyle("#divad { height: 31px; }"); } }, mobile_tracker_free_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1082 host : ['mobile-tracker-free.com'], onStart : function () { Aak.addStyle("#myAds { height: 1px; }"); } }, workupload_com : { // note: obfuscated // issue: https://github.com/reek/anti-adblock-killer/issues/1334 // issue: https://github.com/reek/anti-adblock-killer/issues/1290 // source: http://pastebin.com/CPzd2Swx host : ['workupload.com'], onAlways : function () { Aak.addStyle(".adBlock, .adsbygoogle, #sad { height: 11px; }"); } }, today_in : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=intoday.in // issue: https://github.com/reek/anti-adblock-killer/issues?q=businesstoday.in // source: http://pastebin.com/gz539G7m host : ["intoday.in", "businesstoday.in"], onStart : function() { Aak.addStyle('#adbocker_alt { display: none; }'); Aak.uw.openPopup = function(){}; } }, jc_mp_com : { // by: Giwayume // issue: https://github.com/reek/anti-adblock-killer/issues/1597 host : ["jc-mp.com"], onStart : function() { Aak.addStyle('.adsense {width: 1px; height: 1px; visibility: hidden; display: block; position: absolute;}'); } }, mariage_franco_marocain_net : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=mariage-franco-marocain.net host : ["mariage-franco-marocain.net"], onStart : function() { Aak.addStyle('#my_ad_div {height: 1px;}'); } }, happy_hack_ru : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=happy-hack.ru host : ['happy-hack.ru'], onStart : function () { Aak.addStyle("#blockblockF4 {visibility:invisible;display:none;} #blockblockF4 td {visibility:invisible;display:none;} #blockblockF4 td p {visibility:invisible;display:none;} #blockblockD3 {visibility:visible;display:block;}"); } }, forbes_com : { // by: Giwayume // issue: https://github.com/reek/anti-adblock-killer/issues/865 host : ['forbes.com'], onStart : function () { if (window.location.pathname.indexOf('/welcome') > -1) { Aak.setCookie('welcomeAd', 'true', 86400000, '/'); Aak.setCookie('dailyWelcomeCookie', 'true', 86400000, '/'); window.location = Aak.getCookie('toUrl') || 'http://www.forbes.com/'; } } }, bait_adsbygoogle : { // issue: https://github.com/reek/anti-adblock-killer/issues/547 host : ['bitcoinaliens.com'], onStart : function () { Aak.addBaitElement('ins.adsbygoogle'); } }, bait_tester : { host : ['osoarcade.com', 'd3brid4y0u.info', 'fileice.net', 'nosteam.ro', 'openrunner.com', 'easybillets.com', 'spox.fr', 'yovoyages.com', 'tv3.co.nz', 'freeallmusic.info', 'putlocker.com', 'sockshare.com', 'dramapassion.com', 'yooclick.com', 'online.ua'], onStart : function () { Aak.addBaitElement('div#tester'); } }, bait_add : { host : ['filecom.net', 'upshare.org', 'skippyfile.com', 'mwfiles.net', 'up-flow.org'], onStart : function () { Aak.addBaitElement('div#add'); } }, bait_adpbtest : { host : ['leaguesecretary.com', 'teknogods.com', 'hellsmedia.com'], onStart : function () { Aak.addBaitElement('div#adpbtest'); } }, bait_adtester : { host : ['freesportsbet.com', 'sportsplays.com'], onStart : function () { Aak.addBaitElement('div#ad-tester'); } }, tgo_tv_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/303 host : ['tgo-tv.com'], onStart : function () { Aak.addStyle("#adb, #bannerad1, .load_stream { display: none; }"); Aak.addBaitElement('div#tester'); }, onEnd : function () { Aak.uw.threshold = 1000; Aak.removeElement('.chat_frame'); // bug reload iframe } }, freegamehosting_nl : { host : ['freegamehosting.nl'], onStart : function () { Aak.addBaitElement('div#adtest'); } }, theweatherspace_com : { host : ['theweatherspace.com'], onStart : function () { Aak.addBaitElement('div#ab-bl-advertisement'); } }, cleodesktop_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/711 host : ['cleodesktop.com'], onStart : function () { Aak.addBaitElement('div#myTestAd'); } }, imageraider_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/826 host : ['imageraider.com'], onStart : function () { Aak.addBaitElement('div#myGContainer'); } }, voici_fr : { // issue: https://greasyfork.org/fr/forum/discussion/10093 // issue: https://github.com/reek/anti-adblock-killer/issues/826 // source: http://pastebin.com/zEVQHTiD host : ['voici.fr', 'programme-tv.net'], onStart : function () { Aak.addBaitElement('div#sas_script2'); } }, mil_ink : { // issue: https://github.com/reek/anti-adblock-killer/issues/1652 // source: http://pastebin.com/474NZzPJ host : ['mil.ink'], onStart : function () { Aak.addBaitElement('div#ads_div'); } }, cubeupload_com : { // issue: https://greasyfork.org/en/forum/discussion/5919 host : ['cubeupload.com'], onStart : function () { Aak.createElement({ tag : 'iframe', name : 'iframe', src : 'about:blank', style : 'display:none;', append : document.documentElement }); } }, stream4free_eu : { host : ['stream4free.eu'], onStart : function () { // +abp alt solution Aak.addBaitElement('div#jpayday'); Aak.uw.jpayday_alert = 1; } }, _3dnews_ru : { // issue: https://greasyfork.org/ru/forum/discussion/5750 host : ['3dnews.ru'], onStart : function () { Aak.setCookie('adblockwarn', 1); Aak.addStyle("#earAds { width: 401px; }"); Aak.addBaitElement('div#earAds'); Aak.uw.__AT_detected = true; } }, _3dsthem_es : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=3dsthem host : ['3dsthem.es'], onStart : function () { //Aak.addScript(function () {}); }, onBeforeScript : function () { /* return [{ contains : 'main.js', external : true, override : '//pastebin.com/raw/2yGRPhRZ' } ]; */ } }, _8muses_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=8muses // issue: https://greasyfork.org/forum/discussion/8515 // issue: https://greasyfork.org/en/forum/discussion/6407 // source: http://pastebin.com/bMNDxecs host : ['8muses.com'], onBeforeScript : function () { return [{ contains : "typeof exo", external : false, remove : true } ]; } }, happytrips_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=happytrips // source: http://pastebin.com/EWSEbnvv host : ['happytrips.com'], onStart : function () { Aak.setReadOnly('canRun', true); } }, lg_firmware_rom_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=lg-firmware-rom.com host : ['lg-firmware-rom.com'], onStart : function () { Aak.setReadOnly('killads', true); } }, mid_day_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=mid-day.com host : ['mid-day.com'], onStart : function () { Aak.setReadOnly('canRun', true); } }, badtv_network : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=badtv.it host : ['badtv.it', 'badtaste.it', 'badgames.it', 'badcomics.it'], onStart : function () { Aak.setCookie('adBlockChecked', 'disattivo'); } }, independent_co_uk : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=independent.co.uk host : ['independent.co.uk'], onStart : function () { Aak.setCookie('adblock_detected', 'ignored'); } }, esmas_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=esmas.com host : ['esmas.com'], onStart : function () { Aak.setReadOnly('opened_adbblock', false); } }, pinoy1tv_network : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=pinoy1tv host : ['pinoy1tv.'], onStart : function () { Aak.setReadOnly('allowads', 1); } }, ewallstreeter_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=ewallstreeter.com host : ['ewallstreeter.com'], onStart : function () { Aak.setReadOnly('OAS_rdl', 1); } }, business_standard_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=business-standard.com host : ['business-standard.com'], onStart : function () { Aak.setReadOnly('adsLoaded', 1); Aak.setCookie('_pw', 't'); } }, express_network : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=financialexpress.com // issue: https://github.com/reek/anti-adblock-killer/issues?q=indianexpress.com host : ['financialexpress.com', 'indianexpress.com'], onStart : function () { Aak.setReadOnly('RunAds', 1); } }, indiatimes_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=indiatimes // issue: https://github.com/reek/anti-adblock-killer/issues?q=malayalam.samayam.com // test: http://tinyurl.com/zxusvyf, host : ['indiatimes.com', 'samayam.com', 'bangaloremirror.com'], onBeforeScript : function () { return [{ contains : '\\\\x61\\\\x64\\\\x62', external : false, remove : true }, { contains : 'function initBlock', external : false, remove : true } ]; } }, thechive_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1453 // source: http://pastebin.com/TdpPyrbb host : ['thechive.com'], onStart : function () { Aak.addScript(function () { Object.defineProperties(window, { stephaneDetector : { value : { hook : function (cb) { cb(false); }, init : function () {}, broadcastResult : function () {} }, writable : false } }); }); } }, richonrails_com : { // by: Giwayume // issue: https://github.com/reek/anti-adblock-killer/issues/1447 // source: http://pastebin.com/Ewfwg8BG host : ['richonrails.com'], onIdle : function () { Aak.addScript(function () { var adsByGoogleHtml = '"<ins+id="aswift_0_expand"+style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:750px;background-color:transparent"><ins+id="aswift_0_anchor"+style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:750px;background-color:transparent"><iframe+marginwidth="0"+marginheight="0"+vspace="0"+hspace="0"+allowtransparency="true"+scrolling="no"+allowfullscreen="true"+onload="var+i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else+if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}"+id="aswift_0"+name="aswift_0"+style="left:0;position:absolute;top:0;"+width="750"+frameborder="0"+height="90"></iframe></ins></ins>"'; $.ajax({ url : $(".article-content").data("url"), dataType : "script", method : "post", data : { html : adsByGoogleHtml }, success : function (result) { var exec = result.replace("$('.article-content')", "$('.article-content-2')"); new Function(exec)(); } }); $(".article-content").after('<div class="article-content-2"></div>').remove(); }); } }, rmprepusb_com : { host : ['rmprepusb.com'], onStart : function () { Aak.setCookie('jot_viewer', 3); } }, neodrive_co : { // issue: https://github.com/reek/anti-adblock-killer/issues/1001 host : ['neodrive.co'], onAlways : function () { // Prevent popunder Aak.setCookie('KifPopCnt', 1, null, '/embed/'); } }, hentaihaven_org : { // issue: https://github.com/gorhill/uBlock/issues/1340 host : ['hentaihaven.org'], onAlways : function () { // Prevent popunder Aak.setCookie('hh_ppndr1', 1); Aak.setCookie('hh_ppndr2', 1); } }, primeshare_tv : { host : ['primeshare.tv'], onStart : function () { Aak.addBaitElement('div#adblock'); } }, debridnet_and_livedebrid : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=debridnet // issue: https://github.com/reek/anti-adblock-killer/issues?q=livedebrid host : ['debridnet.com', 'livedebrid.com'], onStart : function () { Aak.addStyle(".myTestAd2 { height: 5px; }"); Aak.addBaitElement('div.myTestAd2'); } }, bluesatoshi_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/873 host : ['bluesatoshi.com'], onStart : function () { Aak.addStyle("#test { height: 280px; }"); Aak.addBaitElement('div#test'); } }, razercrypt_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/870 host : ['razercrypt.com'], onStart : function () { Aak.addStyle("#test { height: 250px; }"); Aak.addBaitElement('div#test'); } }, satoshiempire_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/872 host : ['satoshiempire.com'], onStart : function () { Aak.addStyle("#test { height: 250px; }"); Aak.addBaitElement('div#test'); } }, oneadfaucet_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/871 host : ['oneadfaucet.com'], onStart : function () { Aak.addStyle("#test { height: 250px; }"); Aak.addBaitElement('div#test'); } }, jkanime_net : { host : ['jkanime.net'], // @@||jkanime.net/assets/js/advertisement2.js onStart : function () { Aak.addBaitElement('div#reco'); } }, _720pmkv_com : { host : ['720pmkv.com'], onStart : function () { Aak.addBaitElement('div#advert'); } }, paidverts_com : { host : ['paidverts.com'], onStart : function () { Aak.addBaitElement('div.afs_ads'); } }, italiatv_org : { host : ['italiatv.org'], onStart : function () { Aak.addBaitElement('div#fab13'); } }, chrissmoove_com : { host : ['chrissmoove.com'], onStart : function () { //Aak.addBaitElement('div#adserver'); } }, eventhubs_com : { host : ['eventhubs.com'], onStart : function () { Aak.addBaitElement('div#blahyblaci1'); } }, superanimes_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1295 // source: http://pastebin.com/FDPAKjTQ host : ['superanimes.com'], onStart : function () { Aak.addBaitElement('div#bannerLoja'); } }, forum_pac_rom_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/243 host : ['forum.pac-rom.com'], onStart : function () { Aak.addBaitElement('div.banner_ads'); } }, litv_tv : { // issue: https://github.com/reek/anti-adblock-killer/issues/1299 // source: http://pastebin.com/zcddvTuC host : ['litv.tv'], onStart : function () { Aak.addBaitElement('div.player_mask'); } }, leveldown_fr : { // issue: https://github.com/reek/anti-adblock-killer/issues/595 host : ['leveldown.fr'], onStart : function () { Aak.addBaitElement('div#adblock'); Aak.addBaitElement('div#adblocktest'); } }, globeslot_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/924 host : ['globeslot.com'], onStart : function () { Aak.addBaitElement('div#add'); Aak.addBaitElement('div#add1'); } }, antennesport_com : { host : ['antennesport.com', 'serverhd.eu'], onIdle : function () { // for antennesport // Remove Pub Aak.removeElement("#pub .pubclose"); // Redirect to Player Aak.setElement('#pub .embed iframe', { src : '/embed/embed.php' }); } }, disableAlertbox : { // issue: https://greasyfork.org/en/forum/discussion/8611 host : ['drivearabia.com', 'putlocker.com', 'doatoolsita.altervista.org', 'sockshare.com', 'free-movie-home.com', 'pc.online143.com', 'kooora.com', 'str3amtv.co.nr', 'str3amtv.altervista.org', 'str3am.altervista.org', 'filecom.net', 'pipocas.tv', 'generatupremium.biz', 'mega-debrid.eu', 'premiumst0re.blogspot.com', 'dl-protect.com', 'newsinlevels.com', 'vipracing.biz', 'businesstoday.in'], onAlways : function () { Aak.uw.alert = function () {}; } }, generatupremium_biz : { host : ['generatupremium.biz'], onStart : function () { // Disable Confirm Box //Aak.uw.confirm = function (){}; Aak.setCookie('genera', false); } }, newstatesman_com : { host : ['newstatesman.com'], onStart : function () { Aak.setCookie('donationPopup', 'hide'); } }, adswizz_com : { // by: Skr4tchGr3azyMonkiBallllllZzzz // issue: https://github.com/reek/anti-adblock-killer/issues/809 host : ['yes.fm'], onStart : function () { Aak.addScript(function () { window.com_adswizz_synchro_initialize = function () {}; }); } }, derstandard_at : { // by: Alexander255 // patch: http://pastebin.com/raw.php?i=r7Q4DrfB // issue: https://github.com/reek/anti-adblock-killer/issues?q=derstandard host : ['derstandard.at'], onStart : function () { var makeISOTimestampUTC = function () { var pad = function (amount, width) { var padding = ""; while (padding.length < width - 1 && amount < Math.pow(10, width - padding.length - 1)) { padding += "0"; } return padding + amount.toString(); }; var date = new Date(); return [pad(date.getUTCFullYear(), 4), "-", pad(date.getUTCMonth() + 1, 2), "-", pad(date.getUTCDate(), 2), "T", pad(date.getUTCHours(), 2), ":", pad(date.getUTCMinutes(), 2), ":", pad(date.getUTCSeconds(), 2)].join(); }; document.cookie.split('; ').forEach(function (cookie) { // Find main storage cookie if (cookie.substr(0, 6) == "MGUID=") { // Decompose information from main storage cookie var values = {}; cookie.substr(6).split("&").forEach(function (assignment) { var pos = assignment.indexOf('='); if (pos > -1) { values[assignment.substr(0, pos)] = assignment.substr(pos + 1); } }); // Update "first viewed" timestamp values.Timestamp = makeISOTimestampUTC(); // Recompose information in main storage cookie cookie = "MGUID="; for (var key in values) { if (values.hasOwnProperty(key)) { cookie += key + "=" + values[key] + "&"; } } cookie = cookie.substr(0, (cookie.length - 1)); // Update cookie document.cookie = cookie; } }); } }, tek_domains : { // by: Reek, Alexander255 // issue: https://github.com/reek/anti-adblock-killer/issues/788 // issue: https://github.com/reek/anti-adblock-killer/issues/512 host : ['tek.no', 'gamer.no', 'teknofil.no', 'insidetelecom.no', 'prisguide.no', 'diskusjon.no', 'teknojobb.no', 'akam.no', 'hardware.no', 'amobil.no'], onIdle : function () { /* var ad_frame = document.createElement("iframe"); ad_frame.name = "_frame"; ad_frame.style.display = "none"; document.body.appendChild(ad_frame); ad_frame.contentWindow.wrappedJSObject.inFIF = true; */ // fix 27.11.2015 Aak.createElement({ tag : 'div', id : 'google_ads_iframe_', html : '<p></p>', append : 'body' }); } }, planetatvonlinehd_network : { // issue: https://github.com/reek/anti-adblock-killer/issues/1467 // issue: https://github.com/reek/anti-adblock-killer/issues/159 host : ['planetatvonlinehd.blogspot.', 'planetatvonlinehd.com'], onStart : function () { Aak.addStyle('.adsantilok { height: 1px; }'); //Aak.uw.jQAntiAdsBlock = function (){}; // don't work } }, beta_speedtest_net : { // issue: https://github.com/reek/anti-adblock-killer/issues/628 // issue: https://github.com/reek/anti-adblock-killer/issues/562 // issue: https://github.com/reek/anti-adblock-killer/issues/484 // source: http://paste2.org/53ymghX1 host : ['beta.speedtest.net'], onAlways : function () { Aak.uw.adsOoklaComReachable = true; Aak.uw.scriptsLoaded = function () {}; } }, binbucks_com : { // by: Alexander255 // issue: https://github.com/reek/anti-adblock-killer/issues/545 host : ['binbucks.com'], onIdle : function () { Aak.uw.testJuicyPay = true; Aak.uw.testSensePay = true; } }, whiskyprices_domains : { // issue: https://github.com/reek/anti-adblock-killer/issues/1284 // source: http://pastebin.com/Epr5tREL host : ['whiskyprijzen.com', 'whiskyprices.co.uk', 'whiskypreise.com', 'whiskyprix.fr'], onAlways : function () { Aak.uw.OA_show = true; } }, nicoblog_org : { // issue: https://github.com/reek/anti-adblock-killer/issues/1184 // source: http://pastebin.com/MNHpLs2V host : ['nicoblog.org'], onIdle : function () { var el = document.querySelector('.src'); el.removeAttribute('class'); } }, di_se : { // note: add this rule for chrome user // issue: https://github.com/reek/anti-adblock-killer/issues/1319 // source: http://pastebin.com/9bDPQzMX host : ['di.se'], onIdle : function () { Aak.removeElement('#header_overlay'); Aak.removeElement('#message_modal'); } }, megogo_net : { // issue: PM // source1: http://pastebin.com/ccHQg3hn // source2: http://pastebin.com/gk0vEQHN // note: two adblock check host : ['megogo.net'], onStart : function () { Object.defineProperty(Aak.uw, "adBlock", { enumerable : true, writable : false, value : false }); Object.defineProperty(Aak.uw, "showAdBlockMessage", { enumerable : true, writable : false, value : function () {} }); } }, libertaddigital_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1642 // source: http://pastebin.com/6Fzp0vrE host : ['libertaddigital.com'], onStart : function () { Object.defineProperty(Aak.uw, "ad_already_played", { enumerable : true, writable : false, value : true }); Object.defineProperty(Aak.uw, "puedeMostrarAds", { enumerable : true, writable : false, value : true }); } }, folha_uol_com_br : { // issue: https://github.com/reek/anti-adblock-killer/issues/1396 // source: f( ( typeof paywall_access == "undefined" || paywall_access != true ) && ( typeof folha_ads == "undefined" || folha_ads != true ) ) { host : ['folha.uol.com.br'], onStart : function () { Object.defineProperty(Aak.uw, "paywall_access", { enumerable : true, writable : false, value : true }); Object.defineProperty(Aak.uw, "folha_ads", { enumerable : true, writable : false, value : true }); } }, gamer_com_tw : { // by: mmis1000 // userscript: https://greasyfork.org/en/scripts/16525 // issue: : https://github.com/reek/anti-adblock-killer/issues/975 host : ['gamer.com.tw'], onStart : function () { Object.defineProperty(Aak.uw, 'AntiAd', { enumerable : true, writable : false, value : null }); } }, armorgames_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/845 host : ['armorgames.com'], onStart : function () { Object.defineProperty(Aak.uw, 'ga_detect', { enumerable : true, writable : false, value : null }); } }, mangahost_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/957 // issue: https://github.com/reek/anti-adblock-killer/issues/558 // source: http://pastebin.com/GrpbJENA host : ['mangahost.com'], onStart : function () { Object.defineProperty(Aak.uw, "testDisplay", { enumerable : true, writable : false, value : false }); } }, videowood_tv : { // issue: https://github.com/reek/anti-adblock-killer/issues/1339 // source: http://videowood.tv/build/assets/js/pembed-97a640f625.js host : ['videowood.tv'], onStart : function () { Aak.uw.open = function () {}; // prevent popup Aak.uw.config = {}; Object.defineProperty(Aak.uw.config, "adb_remind", { enumerable : true, writable : false, value : false }); } }, infojobs_com_br : { // issue: https://github.com/reek/anti-adblock-killer/issues/1339 // source: http://pastebin.com/LPg6093U // redirect: http://www.infojobs.com.br/nopublicity.aspx host : ['infojobs.com.br'], onStart : function () { Aak.addScript(function () { var webUI = webUI || {}; webUI.Utils = webUI.Utils || {}; Object.defineProperty(webUI.Utils, "StopAdBlock", { enumerable : true, writable : false, value : function () {} }); }); } }, cloudwebcopy_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/714 host : ['cloudwebcopy.com'], onStart : function () { var setTimeoutClone = Aak.uw.setTimeout; Aak.uw.setTimeout = null; setTimeout(function () { Aak.uw.setTimeout = setTimeoutClone; }, 5000); } }, narkive_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/569 host : ['narkive.com'], onAlways : function () { Aak.uw.adblock_status = function () { return false; }; } }, pregen_net : { host : ['pregen.net'], onStart : function () { // skip page info Aak.setCookie('pgn', 1); } }, phys_org : { // issue: https://github.com/reek/anti-adblock-killer/issues/768 host : ['phys.org'], onAlways : function () { Aak.uw.chkAB = function () {}; } }, onvasortir_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=onvasortir.com host : ['onvasortir.com'], onAlways : function () { // +abp rule alt solution Aak.uw.JeBloque = function () {}; } }, fullhdzevki_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=fullhdzevki.com host : ['fullhdzevki.com'], onAlways : function () { // +abp rule alt solution Aak.uw.check = function () {}; } }, ville_ideale_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/258 // source: http://pastebin.com/16mnmeMc host : ['ville-ideale.com'], onAlways : function () { // +abp rule alt solution Aak.uw.execsp = function () {}; } }, notre_planete_info : { // issue: https://github.com/reek/anti-adblock-killer/issues/258 // source: http://pastebin.com/qrS6QGGE host : ['notre-planete.info'], onAlways : function () { // +abp rule alt solution Aak.uw.pubpop = function () {}; } }, apkmirror_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/378 // issue: https://github.com/reek/anti-adblock-killer/issues/224 // issue: https://github.com/reek/anti-adblock-killer/issues/78 host : ['apkmirror.com'], onAlways : function () { Aak.uw.doCheck = function () {}; } }, mtlblog_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/948 // issue: https://greasyfork.org/forum/discussion/7753 // source: http://pastebin.com/BFrDPM6b host : ['mtlblog.com'], onStart : function () { Object.defineProperty(Aak.uw, 'puabs', { enumerable : true, value : function () {} }); } }, anizm_com : { // issue: host : ['anizm.com'], onAlways : function () { Aak.uw.stopAdBlock = {}; } }, diarioinformacion_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1550 host : ['diarioinformacion.com'], onStart : function () { Object.defineProperty(Aak.uw, 'pr_okvalida', { enumerable : true, value : true }); } }, cnbeta_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1301 // source: http://pastebin.com/vXNCztwx host : ['cnbeta.com'], onStart : function () { Object.defineProperty(Aak.uw, 'JB', { enumerable : true, value : function () {} }); } }, themarker_haaretz : { // issue: https://github.com/reek/anti-adblock-killer/issues/1292 // source: http://pastebin.com/m08dkDT4 host : ['themarker.com', 'haaretz.co.il'], onStart : function () { Object.defineProperty(Aak.uw, 'AdBlockUtil', { enumerable : true, value : {} }); } }, pipocas_tv : { // issue: host : ['pipocas.tv'], onStart : function () { // Also added in disableAlertbox // No popup Aak.setCookie('popup_user_login', 'yes'); } }, _15min_lt : { // note: regulary update script // issue: https://github.com/reek/anti-adblock-killer/issues?q=15min.it // source: http://pastebin.com/YWf3HTqr // test: http://tinyurl.com/h6c4336 host : ['15min.lt'], onStart : function () { Object.defineProperty(Aak.uw, 'ROUTE', { enumerable : true, writable : false, value : '_be_reklamos' }); } }, sc2casts_com : { // by: Giwayume // issue: https://github.com/reek/anti-adblock-killer/issues/1599 host : ['sc2casts.com'], onStart : function() { Aak.addScript(function() { window._gaq = { push:function() {} }; Object.defineProperty(window, "showdialog", { value: function() {}, configurable: false, writable: false }); Object.defineProperty(window, "showPopup2", { value: function() {}, configurable: false, writable: false }); }); } }, vgunetwork_com : { // issue: host : ['vgunetwork.com'], onIdle : function () { Aak.setCookie('stopIt', 1); var close = Aak.getElement('#some_ad_block_key_close'); if (close) { close.click(); } } }, linkcrypt_ws : { // issue: https://github.com/reek/anti-adblock-killer/issues/286 // issue: https://github.com/reek/anti-adblock-killer/pull/67 host : ['linkcrypt.ws'], onIdle : function () { Aak.setElement('#ad_cont', { id : '', style : 'display:block;' }); Aak.setElement('#container_check', { style : 'display:none;' }); } }, eventosppv_me : { // issue: host : ['eventosppv.me'], onIdle : function () { Aak.removeElement('#nf37'); } }, bolor_toli_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/552 host : ['bolor-toli.com'], onEnd : function () { var ads = document.getElementsByClassName('banner'); for (var i = 0; i < ads.length; i++) { var ad = ads[i]; ad.innerHTML = '<br>'; ad.style.height = '1px'; } } }, vivo_sx : { // issue: https://github.com/reek/anti-adblock-killer/issues/280 host : ['vivo.sx'], onEnd : function () { var alert = Aak.getElement('#alert-throttle'); if (alert) { Aak.removeElement(alert); } var button = Aak.getElement('button#access'); if (button) { button.removeAttribute('id'); button.removeAttribute('disabled'); button.innerHTML = 'Continue to video'; } setTimeout(function () { var input = Aak.getElement('input[name="throttle"]'); if (input) { Aak.removeElement(input); } }, 1000); } }, luxyad_com : { // skip redirect myanimes.li // issue: host : ['luxyad.com'], onIdle : function () { if ('/Information.php' == location.pathname) { var href = location.href; location.href = href.substr(href.indexOf('url=') + 4, href.length); } } }, mrpiracy_domains : { // issue: https://github.com/reek/anti-adblock-killer/issues/1405 host : ['mrpiracy.xyz', 'mrpiracy.club'], onBeforeScript : function () { return [{ contains : 'Desativa o AdBlock para continuar', external : false, remove : true } ]; } }, dbplanet_net : { // issue: PM host : ['dbplanet.net'], onStart : function () { Aak.setCookie('newnoMoreAdsNow', 1); } }, aidemu_fr : { // issue: host : ['aidemu.fr'], onStart : function () { Aak.setCookie('adblockPopup', true); } }, eami_in : { // issue: host : ['eami.in'], onAlways : function () { Aak.setCookie('ad_locked', 1); } }, bigdownloader_com : { // issue: host : ['bigdownloader.com'], onIdle : function () { Aak.removeElement('#anti_adblock'); } }, freeskier_com : { // by: Gorhill // issue: https://github.com/reek/anti-adblock-killer/issues/639 // note: also added list rule host : ['freeskier.com'], onIdle : function () { var el = document.getElementById("adb-not-enabled"); if (el !== null) { el.style.removeProperty("display"); } el = document.getElementById("videoContainer"); if (el !== null) { el.style.removeProperty("display"); } } }, gametrailers_com : { // issue: host : ['gametrailers.com'], onIdle : function () { Aak.removeElement('#ad_blocking'); } }, scan_onepiece_naruto_mx : { // issue: https://github.com/reek/anti-adblock-killer/issues/582 // issue: https://github.com/reek/anti-adblock-killer/issues/279 host : ['scan-mx.com', 'onepiece-mx.net', 'naruto-mx.net'], onAlways : function () { Aak.uw.ad_block_test = function () {}; }, onIdle : function () { Aak.setElement('#yop', { id : '' }); } }, // Bitcoins bitcoinker_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/230 host : ['bitcoinker.com'], onStart : function () { Aak.uw.claim = function () { return true; }; }, onIdle : function () { Aak.removeElement('#E33FCCcX2fW'); } }, moondoge_co_in : { // issue: https://github.com/reek/anti-adblock-killer/issues/384 // issue: https://github.com/reek/anti-adblock-killer/issues/232 // issue: https://github.com/reek/anti-adblock-killer/issues/233 // issue: https://github.com/reek/anti-adblock-killer/issues/236 host : ['moondoge.co.in', 'moonliteco.in', 'moonbit.co.in', 'bitcoinzebra.com'], onIdle : function () { Aak.removeElement('#AB, #E442Dv, #eCC5h'); } }, bitcoiner_net : { // issue: https://github.com/reek/anti-adblock-killer/issues/349 host : ['bitcoiner.net', 'litecoiner.net'], onStart : function () { Aak.addBaitElement('div#tester'); Aak.addBaitElement('div#ad-top'); } }, bitcoins_nx_tc : { // issue: host : ['freebitcoins.nx.tc', 'getbitcoins.nx.tc'], onAlways : function () { Aak.uw.ad_block_test = function () { return false; }; } }, freecoins4_me : { // issue: host : ['freecoins4.me'], onAlways : function () { Aak.uw.check = function () { return false; }; } }, torrent_tv_ru : { // issue: https://github.com/reek/anti-adblock-killer/issues/537 host : ['torrent-tv.ru'], onAlways : function () { Aak.uw.c_Oo_Advert_Shown = true; } }, cwtv_com : { // by: Kalbasit // pull: https://github.com/reek/anti-adblock-killer/pull/763 // issue: https://github.com/reek/anti-adblock-killer/issues/340 // issue: https://github.com/reek/anti-adblock-killer/issues/762 host : ['cwtv.com'], onAlways : function () { Aak.uw.CWTVIsAdBlocking = undefined; } }, bild_de : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=bild host : ['bild.de'], onBeforeScript : function () { return [{ contains : 'http://www.bild.de/wa/ll/bild-de/unangemeldet-42925516.bild.html', external : false, replace : ['javascript', 'void(0);'].join(':') } ]; } }, inn_co_il : { // issue: https://github.com/reek/anti-adblock-killer/issues/532 host : ['inn.co.il'], onStart : function () { Aak.addScript(function () { var TRC = {}; TRC.blocker = { states : { ABP_DETECTION_DISABLED : -2, ABP_NOT_DETECTED : 0, ABP_DETECTED : 1 }, createBlockDetectionDiv : function () { return document.createElement("div"); }, isBlockDetectedOnDiv : function () { return 0; }, isBlockDetectedOnClassNames : function () { return 0; }, getBlockedState : function () { return 0; } }; }); } }, bhaskar_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=bhaskar // issue: https://github.com/reek/anti-adblock-killer/issues?q=divyabhaskar.co.in host : ['bhaskar.com', 'divyabhaskar.co.in'], onAlways : function () { Aak.uw.openPopUpForBreakPage = function () {}; Aak.uw.canABP = true; Aak.uw.canRunAds = true; Aak.uw.canCheckAds = true; } }, turkanime_tv : { // issue: https://github.com/reek/anti-adblock-killer/issues/446 // issue: https://github.com/reek/anti-adblock-killer/issues/139 // issue: https://greasyfork.org/tr/forum/discussion/4282/ host : ['turkanime.tv'], onAlways : function () { Aak.uw.adblockblock = function () {}; Aak.uw.BlokKontrol = {}; } }, wtfbit_ch : { // issue: https://github.com/reek/anti-adblock-killer/issues/407 host : ['wtfbit.ch'], onAlways : function () { Aak.uw.writeHTMLasJS = function () {}; } }, aranzulla_it : { // by: Robotex // issue: https://github.com/reek/anti-adblock-killer/issues?q=aranzulla.it // source: http://pastebin.com/yMM6YgxW host : ['aranzulla.it'], onStart : function() { Aak.addStyle('#abt1 + STYLE + div[id][class] {display:none;}'); }, onBeforeScript : function () { return [{ contains : 'navigator.userAgent||navigator.vendor||window.opera', external : false, remove : true } ]; } }, ndtv_com : { // note: canRunAds inverted value // issue: https://github.com/reek/anti-adblock-killer/issues?q=ndtv.com // test: http://tinyurl.com/hcfncdv host : ['ndtv.com'], onStart : function () { Aak.setReadOnly('___p__p', 1); Aak.setReadOnly('getNoTopLatestNews', function () {}); } }, lesechos_fr : { // Reek, Giwayume // issue: https://github.com/reek/anti-adblock-killer/issues?q=lesechos.fr // source: http://pastebin.com/CMM8WGLj host : ['lesechos.fr', 'lesechos.com'], onStart : function() { Aak.addScript(function() { Object.defineProperty(window, "checkAdBlock", { value: function() {}, configurable: false, writable: false }); }); }, onAlways : function () { Aak.uw.call_Ad = 1; Aak.uw.paywall_adblock_article = function () {}; } }, bitvisits_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/266 host : ['bitvisits.com'], onAlways : function () { Aak.uw.blockAdblockUser = function () {}; } }, exrapidleech_info : { // by: Alexander255, Reek, Giwayume // patch: http://pastebin.com/Q664diQ2 // issue: https://github.com/reek/anti-adblock-killer/issues?q=exrapidleech // source: http://pastebin.com/5e27syjA host : ['exrapidleech.info'], onStart : function () { var tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); // prevent popup Aak.setCookie('popcashpuCap', 1); Aak.setCookie('popcashpu', 1); Aak.setCookie('nopopatall', tomorrow.getTime().toString()); Aak.setCookie('noadvtday', 0); //Aak.setCookie('bv_DSKskdck_s1d', 'bvDSKskdcks1d'); // hide notice Aak.addStyle('div.alert.alert-danger.lead {opacity:0;}'); // prevent redirect to verify page Aak.setReadOnly('bdvbnr_pid', []); Aak.setReadOnly('PopAds', 1); Aak.addScript(function () { (function () { // prevent popup window.open = function () {}; // prevent redirect to verify page var frame1 = document.createElement('iframe'); frame1.src = 'http://bdfrm.bidvertiser.com/BidVertiser.dbm?pid=383865&bid=1737418&RD='; frame1.id = 'bdvi'; frame1.style = 'display:none'; document.documentElement.appendChild(frame1); })(); }); } }, vipleague_domains : { // note: also killed by AakList // issue: https://github.com/reek/anti-adblock-killer/issues?q=vipbox // issue: https://github.com/reek/anti-adblock-killer/issues?q=vipleague // source: http://pastebin.com/NERVzHzS host : ["vipleague.is", "vipleague.ws", "vipleague.tv", "vipleague.se", "vipleague.tv", "vipleague.me", "vipleague.mobi", "vipleague.co", "vipleague.sx", "vipleague.ch", "vipbox.tv", "vipbox.co", "vipbox.biz", "vipbox.sx", "vipbox.eu", "vipbox.so", "vipbox.nu", "vipboxsa.co", "strikeout.co", "strikeout.me", "homerun.re", "vipboxtv.co", "vipapp.me"], onStart : function () { Aak.uw.iExist = true; Aak.setCookie('xclsvip', 1); Aak.addStyle(".vip_052x003 { height: 250px; }"); Aak.addStyle(".vip_09x827 { height: 26px; }"); Aak.addStyle("#overlay { display: none; }"); } }, zoomtv_me : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=zoomtv.me // source: http://pastebin.com/m4zAXGcw host : ['zoomtv.me'], onAlways : function () { Aak.uw.iaxpEnabled = true; } }, vg_no : { // issue: https://github.com/reek/anti-adblock-killer/issues/292 // +abp rule host : ['vg.no', 'e24.no'], onAlways : function () { Aak.uw.__AB__ = function () {}; } }, pornve_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/947 // source: http://pastebin.com/7TPPkq12 host : ['pornve.com'], onAlways : function () { Aak.uw.adxjwupdate = 1; } }, lol_moa_tw : { // issue: https://github.com/reek/anti-adblock-killer/issues/1114 host : ['lol.moa.tw'], onIdle : function () { Aak.addScript(function () { var MoaObj = MoaObj || {}; MoaObj.ad = MoaObj.ad || {}; MoaObj.ad.hasAdblock = function () { return false; }; MoaObj.ad.checkABP = function () { return false; }; }); } }, multiup_org : { // by: Watilin // note: alternative solution // issue: https://github.com/reek/anti-adblock-killer/issues?q=multiup.org host : ['multiup.org'], onStart : function () { Aak.setCookie('visit', 1); // prevent popup Aak.setReadOnly('hi', function () {}); } }, dailybitcoins_org : { // issue: https://github.com/reek/anti-adblock-killer/issues/107 host : ['dailybitcoins.org'], onIdle : function () { Aak.removeElement('.ad-img'); } }, kozaczek_zeberka : { // issue: https://github.com/reek/anti-adblock-killer/issues/414 host : ['kozaczek.pl', 'zeberka.pl'], onStart : function () { Aak.setCookie('ablc', 1); Aak.setCookie('cookie_policy', 1); } }, spankwire_sites : { // issue: https://github.com/reek/anti-adblock-killer/issues/887 // source: http://pastebin.com/TFB1dtgb host : ['spankwire.com', 'keezmovies.com', 'extremetube.com', 'mofosex.com'], onStart : function () { Aak.setCookie("abClosed", "true"); Aak.setCookie("hide_ad_msg", "1"); } }, youporn_network : { // issue: https://github.com/reek/anti-adblock-killer/issues/887 // source: http://pastebin.com/TFB1dtgb host : ['youporn.com', 'youporngay.com'], onStart : function () { Aak.setCookie("adblock_message", "closed"); } }, citationmachine_net : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=citationmachine.net host : ['citationmachine.net'], onStart : function () { Aak.setCookie("sbm_cm_citations", 0); } }, psarips_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/153 host : ['psarips.com'], onStart : function () { Aak.addBaitElement('div#advert'); } }, extratorrent_domains : { host : ['extratorrent.cc', 'extratorrent.com'], onStart : function () { // prevent popup // source are obfuscated in external js Aak.setCookie('ppu_delay', 1); Aak.setCookie('ppu_main', 1); Aak.setCookie('ppu_sub', 1); Aak.setCookie('ppu_show_on', 1); } }, tny_cz : { host : ['tny.cz', 'pasted.co'], onStart : function () { // prevent popup Aak.setCookie('__.popunderCap', 1); Aak.setCookie('__.popunder', 1); } }, clubedohardware_com_br : { // two antiadblock host : ['clubedohardware.com.br'], onStart : function () { if (Aak.contains(location.host, 'forum')) { // Solution 1 Aak.addStyle("#banner, script { height: 51px; }"); Aak.addBaitElement('div#banner'); } else { // Website // Solution 1 Aak.addBaitElement('div.banner_topo'); } }, onIdle : function () { if (Aak.contains(location.host, 'forum')) { // Solution 2 Aak.uw.addBlocking.hide(); Aak.uw.addBlocking.kill(); } else { // Website // Solution 2 document.body.id = ''; Aak.removeElement('.adblock'); } } }, debrastagi_com : { host : ['debrastagi.com'], onIdle : function () { Aak.removeElement('#stp-main'); Aak.removeElement('#stp-bg'); } }, ddlfrench_org : { host : ['ddlfrench.org'], onIdle : function () { // Fix bug display content Aak.setElement('#dle-content .d-content', { 'class' : '' }); Aak.setElement('#content', { 'id' : '' }); } }, megadebrid_eu : { host : ['mega-debrid.eu'], onEnd : function () { // Activate button debrid Aak.setElement('.realbutton', { 'onclick' : '', 'type' : 'submit' }); } }, slideplayer_domains : { // by: Alexander255 // issue: https://github.com/reek/anti-adblock-killer/issues/1333 // issue: https://github.com/reek/anti-adblock-killer/issues/515 // issue: https://github.com/reek/anti-adblock-killer/issues/296 // demo: http://slideplayer.fr/slide/1304026/# host : ['slideplayer.*'], onEnd : function () { // Disable anti-adblocker Aak.uw.force_remove_ads = true; // Circumvent "share to download" rule Aak.addScript(function () { var slide_id = window.get_current_slide_id(); var slide_srv = document.getElementById("player_frame").src.split("/")[3]; var time = 86400 + Math.floor(Date.now() / 1000); var secret = encodeURIComponent(window.strtr(window.MD5.base64("secret_preved slideplayer never solved " + time + slide_id + ".ppt"), "+/", "- ")); var url = "http://player.slideplayer.org/download/" + slide_srv + "/" + slide_id + "/" + secret + "/" + time + "/" + slide_id + ".ppt"; var links = document.querySelectorAll("a.download_link"); for (var i = 0; i < links.length; i++) { /* Remove original "share to download" popup event listener */ var events = $._data(links[i]).events.click; events.splice(0, events.length); /* Set normal link href instead */ links[i].href = url; } }); } }, bokepspot_com : { host : ['bokepspot.com'], onStart : function () { // Hide Disclaimer Aak.setCookie('hideDialog', 'hide'); }, onIdle : function () { // Remove Disable AdBlock Aak.removeElement('#tupiklan'); } }, picload_com : { host : ['picload.org'], onStart : function () { Aak.setCookie('pl_adblocker', false); }, onIdle : function () { Aak.uw.ads_loaded = true; Aak.uw.imageAds = false; Aak.removeElement('div[oncontextmenu="return false;"]'); } }, freezedownload_com : { host : ['freezedownload.com'], onIdle : function () { if (/freezedownload.com\/download\//.test(location.href)) { Aak.removeElement('body > div[id]'); } } }, monnsutogatya_com : { // issue: PM // source: http://pastebin.com/1Lw60h6k host : ['monnsutogatya.com'], onIdle : function () { Aak.addStyle("#site-box {display:block;}"); Aak.removeElement('#for-ad-blocker'); } }, rapid8_com : { host : ['rapid8.com'], onIdle : function () { Aak.removeElement('div.backk + #blcokMzg'); Aak.removeElement('div.backk'); } }, turkdown_com : { host : ['turkdown.com'], onIdle : function () { // remove facebook box Aak.removeElement('#duyuru'); } }, filmovizija_domains : { host : ['filmovizija.me', 'filmovizija.com', 'filmovizija.in', 'filmovizija.net'], onIdle : function () { /* var d = new Date(); var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var n = weekday[d.getDay()]; Aak.setElement('#' + n, { html : '' }); Aak.removeElement('#' + n); */ } }, hackintosh_zone : { // by: Alexander255 // issue: https://github.com/reek/anti-adblock-killer/issues?q=hackintosh.zone // source: http://paste2.org/DnB9Oj4f host : ['hackintosh.zone'], onIdle : function () { var head = document.getElementsByTagName("head")[0]; // Fake Google ad frame content var ad1 = document.createElement("ins"); ad1.className = "adsbygoogle"; ad1.appendChild(document.createTextNode("AAK")); head.insertBefore(ad1, head.childNodes[0]); /* // Fake CleanMyMac ad frame size var ad2 = document.createElement("div"); ad2.id = "nycuhevgqi"; Object.defineProperty(ad2.wrappedJSObject, 'clientHeight', {value: 1}); head.insertBefore(ad2, head.childNodes[0]); */ var elems = document.querySelectorAll('.adsensegrey'); for (var i = 0; i < elems.length; i++) { var node = document.createElement("img"); node.src = Aak.imgBait; elems[i].appendChild(node); } }, onBeforeScript : function () { return [{ contains : 'disable ADBlock completely', external : false, remove : true } ]; } }, privateinsta_com : { host : ['privateinsta.com'], onIdle : function () { // + abp rule Aak.uw.dont_scroll = false; Aak.removeElement("#overlay_div"); Aak.removeElement("#overlay_main_div"); } }, risikogesundheit_de : { host : ['risiko-gesundheit.de'], onIdle : function () { setTimeout(function () { window.stop(); }, 5000); } }, oneplaylist_eu_pn : { host : ['oneplaylist.eu.pn'], onIdle : function () { // kill popunder Aak.uw.makePopunder = false; } }, onmeda_de : { // note: script obfuscated line 1110 // issue: https://greasyfork.org/forum/discussion/8576 // issue: https://github.com/reek/anti-adblock-killer/issues/1067 // source: http://pastebin.com/qf46bN3z // source: http://pastebin.com/RwHyF0NL host : ['onmeda.de'], onAlways : function () { Aak.uw.$ADP = true; Aak.uw.sas_callAd = function () {}; Aak.uw.sas_callAds = function () {}; } }, turbodebrideur_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/599 // issue: https://github.com/reek/anti-adblock-killer/issues/563 // issue: https://github.com/reek/anti-adblock-killer/issues/526 host : ['turbodebrideur.com'], onIdle : function () { Aak.createElement({ tag : 'div', id : 'pubdirecte', html : '<img src="' + Aak.imgBait + '"/><a href="#"> </a>', append : 'body' }); } }, rockfile_eu : { // issue: https://github.com/reek/anti-adblock-killer/issues/1256 host : ['rockfile.eu'], onIdle : function () { Aak.createElement({ tag : 'iframe', src : 'about:blank', style : 'visibility:hidden;', append : 'body' }); } }, linkbucks_antiadblock : { // issue: https://github.com/reek/anti-adblock-killer/issues/932 // issue: https://github.com/reek/anti-adblock-killer/issues/469 // issue: https://github.com/reek/anti-adblock-killer/issues/277 // v3: http://pastebin.com/0gh8LMGH // note: no solution, anti-adblock difficult to bypass --> http://pastebin.com/1NRq7WvZ host : ['linkbucks.com', 'miniurls.co', 'picbucks.com', 'picturesetc.net', 'placepictures.com', 'poontown.net', 'qqc.co', 'qvvo.com', 'realfiles.net', 'rqq.co', 'seriousdeals.net', 'seriousfiles.com', 'seriousurls.com', 'sexpalace.gs', 'theseblogs.com', 'thesefiles.com', 'theseforums.com', 'thosegalleries.com', 'tinybucks.net', 'tinylinks.co', 'tnabucks.com', 'tubeviral.com', 'uberpicz.com', 'ubervidz.com', 'ubucks.net', 'ugalleries.net', 'ultrafiles.net', 'urlbeat.net', 'urlpulse.net', 'whackyvidz.com', 'youfap.me', 'yyv.co', 'zxxo.net', 'zff.co', 'linkbucksdns.co', 'miniurls.com', 'dyo.gs', 'goneviral.com', 'eafyfsuh.net', 'sasontnwc.net'], onStart : function () { // do nothing... } }, linkbucks_visitscript : { // issue: host : ['referencemega.com', 'fpabd.com', 'crackacc.com'], onStart : function () { // Skip visitScript when site use CloudFlare Rocket Script Aak.setCookie('_lbGatePassed', true); } }, link_tl : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=link.tl // issue: https://greasyfork.org/fr/forum/discussion/8437 // source: http://pastebin.com/1MkCnmL7 host : ['link.tl'], onStart : function () { Aak.addStyle('.adblock { height:1px; }'); Aak.uw.adblocker = false; } }, wstream_video : { // issue: https://github.com/reek/anti-adblock-killer/issues/1382 // source: http://pastebin.com/EiARVQXt host : ['wstream.video'], onStart : function () { Aak.addStyle('#adiv { height:4px; }'); } }, _4shared_com : { host : ['4shared.com'], onIdle : function () { // Hide "Disable AdBlodk" messages document.querySelector('body').classList.remove("jsBlockDetect"); } }, pro_domains : { host : ['pro-zik.ws', 'pro-tect.ws', 'pro-ddl.ws', 'pro-sport.ws'], onStart : function () { Aak.setCookie('visitedf', true); Aak.setCookie('visitedh', true); } }, comptoirhardware_com : { host : ['comptoir-hardware.com'], onAlways : function () { Aak.uw.adblock = 'non'; } }, bakersfield_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/657 // note: also solution to AakList host : ['bakersfield.com'], onAlways : function () { Aak.uw.AD_SLOT_RENDERED = true; } }, ekstrabladet_dk : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=ekstrabladet // source: http://pastebin.com/R029XpCr host : ['ekstrabladet.dk', 'eb.dk'], onAlways : function () { Aak.uw.ADTECH = {}; } }, pcgames_download_net : { // issue: https://github.com/reek/anti-adblock-killer/issues/1451 // issue: https://greasyfork.org/forum/discussion/9328 // source: http://pastebin.com/EBVZg3VB host : ['pcgames-download.net'], onAlways : function () { Aak.setCookie('noAdblockNiceMessage', 1); Aak.uw.mgCanLoad30547 = true; } }, lachainemeteo_com : { // note: also killed by AakList // issue: https://github.com/reek/anti-adblock-killer/issues/590 // issue: https://github.com/reek/anti-adblock-killer/issues/245 // issue: https://github.com/reek/anti-adblock-killer/issues/215 host : ['lachainemeteo.com'], onAlways : function () { Aak.uw.js_loaded = true; } }, mac4ever_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/997 // source: http://pastebin.com/RQnCEYK6 host : ['mac4ever.com'], onAlways : function () { Aak.uw.coquinou = function () {}; } }, _5278bbs_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=5278bbs.com host : ['5278bbs.com'], onAlways : function () { Aak.uw.myaabpfun12 = function () {}; } }, thesimsresource_com : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=thesimsresource.com // source: http://pastebin.com/DE9rbjxY host : ['thesimsresource.com'], onAlways : function () { Aak.uw.gadsize = true; Aak.uw.iHaveLoadedAds = true; } }, yellowbridge_com : { host : ['yellowbridge.com'], onAlways : function () { Aak.uw.finalizePage = function () { return; }; } }, game_debate_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1366 // source: http://pastebin.com/UzsiX0FK host : ['game-debate.com'], onAlways : function () { Aak.uw.ad_block_test = function () {}; } }, adscendmedia : { host : ['adscendmedia.com'], onStart : function () { // adscendmedia - https://www.adscendmedia.com/ var ref = document.createElement('a').href = document.referrer; var host = location.host; var path = location.pathname; if (Aak.contains(path, '/widget_adblock.php') && !Aak.contains(ref.host, host)) { // Auto report Aak.detected('Adscendmedia', ref.host, host); // Notification Aak.notification('You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a>'); } } }, adworkmedia : { host : ['adworkmedia.com', 'loxtk.com', 'contentlockingnetworks.com'], onStart : function () { // AdWorkMedia - https://www.adworkmedia.com/ var ref = document.createElement('a').href = document.referrer; var host = location.host; var path = location.pathname; if (Aak.contains(path, '/help/removeAB.php') && !Aak.contains(ref.host, host)) { // Auto report Aak.info('Adworkmedia', ref.host, host); // Notification Aak.notification('You must subscribe to <b>AakList (Anti-Adblock Killer )</b> <a href="' + Aak.subscribeURL + '" target="_blank">Subscribe</a>'); } } }, // -------------------------------------------------------------------------------------------- // Players // -------------------------------------------------------------------------------------------- kissanime_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/451 // issue: https://github.com/reek/anti-adblock-killer/issues/381 // issue: https://github.com/reek/anti-adblock-killer/issues/302 // issue: https://github.com/reek/anti-adblock-killer/issues/257 // issue: https://github.com/reek/anti-adblock-killer/issues/178 // issue: https://github.com/reek/anti-adblock-killer/issues/196 // issue: https://github.com/reek/anti-adblock-killer/issues/56 host : ['kissanime.com', 'kissanime.to'], onStart : function () { // Masking ads Aak.addStyle('iframe[id^="adsIfrme"], .divCloseBut { display:none; }'); // Solution 1 Aak.uw.DoDetect2 = null; }, onIdle : function () { // Solution 1 abp rule // @@||kissanime.com^$elemhide var divContentVideo = document.querySelector('#divContentVideo'); // Solution 2 if (Aak.uw.DoDetect2) { Aak.uw.DoDetect2 = null; Aak.uw.CheckAdImage = null; Aak.info('Solution 2'); } //Solution 3 else if (divContentVideo) { var divDownload = document.querySelector('#divDownload').cloneNode(true); setTimeout(function () { divContentVideo.innerHTML = ''; Aak.uw.DoHideFake(); divContentVideo.appendChild(divDownload); Aak.removeElement('iframe[id^="adsIfrme"], .divCloseBut'); Aak.info('Solution 3'); }, 5500); } } }, Kisscartoon_me : { // issue: https://github.com/reek/anti-adblock-killer/issues/488 host : ['kisscartoon.me'], onAlways : function () { Aak.uw.xaZlE = function () {}; }, onIdle : function () { Aak.removeElement('iframe[id^="adsIfrme"]'); } }, openload_domains : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=openload host : ['openload.co', 'openload.io', 'openload.tv'], onStart : function () { Aak.uw.adblock = false; Aak.uw.adblock2 = false; Aak.uw.popAdsLoaded = true; // hide fake play button used to open popunder //Aak.addStyle('#videooverlay { display:none; }') } }, youwatch_org : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=youwatch // test: http://youwatch.org/embed-59p7i3cdkse0-453x320.html // test: http://youwatch.org/59p7i3cdkse0 host : ['youwatch.org', 'chouhaa.info', 'ahzahg6ohb.com', 'ahzahg6ohb.com'], onStart : function () { // skip anti-adblock Aak.uw.adsShowPopup1 = 1; }, onIdle : function () { // renove ads + fake play button Aak.removeElement('#player_imj, #player_imj + div[id]'); } }, exashare_com : { // by: Watilin // pull: https://github.com/reek/anti-adblock-killer/pull/519 // issue: https://github.com/reek/anti-adblock-killer/issues?q=exashare.com // test: http://exashare.com/galw2ge2kzsv host : ['exashare.com', 'chefti.info', 'bojem3a.info', 'ajihezo.info', 'yahmaib3ai.com', 'yahmaib3ai.com'], onStart : function () { // skip anti-adblock Aak.uw.adsShowPopup1 = 1; }, onIdle : function () { // renove ads + fake play button Aak.removeElement('#player_gaz, #player_gaz + div[id]'); } }, an1me_se : { // issue: https://github.com/reek/anti-adblock-killer/issues/190 host : ['an1me.se'], onIdle : function () { setTimeout(function () { Aak.uw.isBlockAds2 = false; }, 10000); } }, hqq_tv : { // putlocker.is host : ['hqq.tv'], onIdle : function () { // + abp rule // http://hqq.tv/player/embed_player.php?vid=R3DGHG3GKXX7&autoplay=no if ('/player/embed_player.php' == location.pathname) { document.querySelector('form[id^="form-"]').submit(); } } }, // Poland wp_domains : { // Note: disable EasyPrivacy // issue: https://github.com/reek/anti-adblock-killer/issues/956 // issue: https://github.com/reek/anti-adblock-killer/issues/905 // issue: https://github.com/reek/anti-adblock-killer/issues/300 host : ['biztok.pl', 'wp.tv', 'wp.pl', 'sportowefakty.pl', 'kafeteria.tv', 'kafeteria.pl', '.wrzuta.pl', 'pudelek.tv', 'komediowo.pl', 'sfora.pl', 'autokrata.pl', 'sportfan.pl', 'wawalove.pl', 'hotmoney.pl', 'aleseriale.pl', 'babol.pl', 'snobka.pl', 'nocoty.pl', 'money.pl', 'abczdrowie.pl', 'gadzetomania.pl', 'autokult.pl', 'komorkomania.pl'], onStart : function () { // prevent popup anti-adblock from abczdrowie.pl Aak.setCookie('ABCABC', true); }, onIdle : function () { Aak.hasElement('.wp-player', function () { var replacePlayerWP = function (mid, player) { /* Request http://get.wp.tv/?mid=1661056 http://wp.tv/player/mid,1661056,embed.json http://get.wp.tv/?f=2896462.1426329056904.l.webm&rnd=1 https://wp.tv/player/mid,1747117,embed.json */ Aak.request({ url : 'http://wp.tv/player/mid,' + mid + ',embed.json', onload : function (result) { var res = result.responseText; var obj = JSON.parse(res); Aak.log(obj); var Player = new Aak.player(); Player.videojs(player, { source : Aak.fixProtocolURL(obj.clip.url[1].url), // HD type : 'mp4', autoplay : false }); } }); }; var replacePlayerWrzuta = function (key, channel, elem) { Aak.request({ // http://www.wrzuta.pl/npp/embed/wolnapolska2/0I0HQ2mutJc url : 'http://www.wrzuta.pl/npp/embed/' + channel + '/' + key, onload : function (result) { var res = result.responseText; var obj = JSON.parse(res); Aak.log(obj); var Player = new Aak.player(); Player.videojs(elem, { source : Aak.fixProtocolURL(obj.url[0].url), //HD type : 'mp4', autoplay : false }); } }); }; // Using an external flash player is impossible because protected by crossdomain.xml var players = document.querySelectorAll('.wp-player'); // #Player0, #Player1, #mainPlayer if (players.length) { // fixbug gm_xhr loop request - http://tinyurl.com/pqa9htq for (var i = 0; i < players.length; i++) { var mid = null; var player = players[i]; var parent = player.parentNode; var script = player.previousSibling; var title = player.querySelector('.titleCont a.title'); var embedvideos = document.querySelectorAll('script[src*="/embed_video.js"]'); Aak.log(player, parent, script, title); if (embedvideos.length) { // pudelek.wrzuta.pl: http://tinyurl.com/l8jo5v2 // pudelek.tv: http://tinyurl.com/klyzh6r, http://tinyurl.com/z7fr89v // pudelek.tv (triple): http://tinyurl.com/n9b27o2 // film.wp.pl: http://tinyurl.com/q7k5bxp var embedvideo = embedvideos[i]; var key = /key=(\w+)/.exec(embedvideo.src)[1]; var channel = /login=(\w+)/.exec(embedvideo.src)[1]; var autostart = /autoplay/.test(embedvideo.src); replacePlayerWrzuta(key, channel, player, autostart); Aak.log('embed_video.js'); } else if (title && /mid/.test(title.href)) { // sportowefakty.pl: http://tinyurl.com/l6zabcx mid = title.href.match(/mid[=,]([0-9]+)/); Aak.log('title.href'); } else if (parent.id) { if (parent.dataset.url) { // wp.tv: http://tinyurl.com/pzde29t mid = parent.dataset.url.match(/mid[=,]([0-9]+)/); Aak.log('parent.dataset.url'); } else { if (parent.previousSibling.innerHTML) { // wiadomosci.wp.pl: http://tinyurl.com/gqtt9ca mid = parent.previousSibling.innerHTML.match(/mid[=,]([0-9]+)/); Aak.log('script.inline.innerHTML'); } else { // kafeteria.tv: http://tinyurl.com/nofp58a // abczdrowie.pl: http://tinyurl.com/hx6s5et mid = parent.innerHTML.match(/mid[=,]([0-9]+)/); Aak.log('parent.innerHTML'); } } } else if (script && script.tagName == 'SCRIPT') { // film.wp.pl: http://tinyurl.com/mh9onfw // pudelek.tv (double): http://tinyurl.com/lefvwtx mid = script.innerHTML.match(/mid[=,]([0-9]+)/); Aak.log('script.src.innerHTML'); } if (mid !== null && mid.length == 2) { replacePlayerWP(mid[1], player); } } } }); } }, moje_filmy_network: { // issue: https://github.com/reek/anti-adblock-killer/issues/1010 // source: http://pastebin.com/7G2RBnqq host : ['moje-filmy.tk', 'moje-filmy.live'], onIdle : function () { var searchvalue = ['var playerInstance', '});']; var script = Aak.hasScript(searchvalue[0]); if (script) { var source = script.innerHTML; var str = source.substring(source.lastIndexOf(searchvalue[0]), source.lastIndexOf(searchvalue[1]) + searchvalue[1].length); Aak.addScript(str); } } }, tvn_pl : { // by: Reek, Marek // solution: http://tinyurl.com/ohbvz4r, http://tinyurl.com/jq8s462 // issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn.pl // issue: https://github.com/reek/anti-adblock-killer/issues?q=tvn24.pl // issue: https://github.com/reek/anti-adblock-killer/issues?q=player.pl // test: http://tinyurl.com/o6d9h66, http://tinyurl.com/z77m4zh host : ['tvn.pl', 'tvn24.pl', 'player.pl'], onEnd : function () { Aak.hasElement('header.detailImage', function (thisElement) { if (Aak.getCookie('country_code') && Aak.getSession('generateToken')) { var parts = document.location.href.split(/[.,]/); var id = parts[parts.length - 2]; var params = { platform : "Mobile", terminal : "Android", format : "json", v : "2.0", authKey : "b4bc971840de63d105b3166403aa1bea", type : "episode", id : id, sort : "newest", m : "getItem", deviceScreenHeight : 1600, deviceScreenWidth : 2560 }; var api = 'https://api.tvnplayer.pl/api/?' + Aak.serialize(params); var proxy = 'http://www.proxy.xmc.pl/index.php?hl=3e5&q='; // Get videoUrl Aak.request({ url : Aak.getCookie('country_code') != 'PL' ? proxy + Aak.encodeURI(api) : api, headers : { "User-Agent" : "Mozilla/5.0 (Linux; U; Android 4.2; en-us; Nexus 10 Build/JVP15I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30" }, onload : function (result) { var res = result.responseText; Aak.log(res); var o = JSON.parse(res); var videoUrl = o.item.videos.main.video_content[Number(Aak.opts.videoHD)].url; var generateToken = new Function('videoUrl', Aak.getSession('generateToken')); var videoUrlWithSeed = generateToken(videoUrl); var Player = new Aak.player(); Player.videojs(thisElement, { source : videoUrlWithSeed, type : 'mp4', autoplay: false }, {}, {insert:'inner'}); } }); } else { Aak.request({ // get and store generateToken function url : 'http://pastebin.com/raw/D9qM4DR3', onload : function (response) { var res = response.responseText; Aak.setSession('generateToken', res); Aak.request({ // get user ip url : 'http://ip-api.com/json', onload : function (response) { var res = response.responseText; var json = JSON.parse(res); Aak.setCookie('country_code', json.countryCode); Aak.refresh(); } }); } }); } }); } }, ipla_tv : { // by: Marek // solution: http://tinyurl.com/ptb4ybg // issue. https://github.com/reek/anti-adblock-killer/issues/522 // test: http://tinyurl.com/hz7gpxx host : ['ipla.tv'], onIdle : function () { Aak.addStyle('.html5-player-wrapper { display:none; }'); // chrome/opera var oldPlayer = document.querySelector('.html5-player-wrapper, #vod-player'); Aak.request({ url : '/VOD/play-in-ipla/' + location.href.match(/\/vod-(\d+)/)[1], onload : function (result) { var videoURL; var res = result.responseText; var idn = res.match(/ipla:\/\/playvod-1\|([a-z0-9]+)/)[1]; Aak.log(idn); Aak.request({ url : 'http://getmedia.redefine.pl/vods/get_vod/?cpid=1&ua=mipla/23&media_id=' + idn, onload : function (result) { var res = result.responseText; var o = JSON.parse(res); Aak.log(o); if (o.vod.video_hd) { videoURL = o.vod.video_hd; } else if (o.vod.video) { videoURL = o.vod.video; } else { videoURL = o.vod.copies[0].url; } var Player = new Aak.player(); Player.videojs(oldPlayer, { source : videoURL, type : 'mp4', width : 820, height : 450, autoplay : false }); } }); } }); } }, koscian_net : { // issue: https://github.com/reek/anti-adblock-killer/issues/914 // source: http://pastebin.com/yGSPBRqe host : ['koscian.net'], onIdle : function () { var elems = document.querySelectorAll('.ban'); for (var i = 0; i < elems.length; i++) { elems[i].remove(); //elems[i].innerHTML = '<br>'; } } }, // France playtv_fr : { // research solution host : ['play.tv', 'playtv.fr'], onAlways : function () {}, onEnd : function () {} }, rmcsportbfmtv_com : { // webradio host : ['rmcsport.bfmtv.com'], onIdle : function () { var flashvars = { urlRadio : "http://mp3lg4.tdf-cdn.com/10160/rmc.mp3", nom : "live", categorie : "live", urlSmart : "" // set empty to remove audio ad }; var params = { wmode : "transparent" }; Aak.uw.swfobject.embedSWF("/swf/RMCLIVE.swf", "liveplayer", "70", "90", "10.0.0", "", flashvars, params); } }, eclypsia_com : { host : ['eclypsia.com'], onAlways : function () { // Solution 1 // abp rules // Solution 2 Aak.uw.isABActivated = function () { return false; }; // Kill antiadblock Aak.uw.refresh_iframe = function () {}; // Stop ads to be loaded }, onEnd : function () { // Solution 3 var element = document.querySelector('div[id^="webtv_iframe_"]'); if (element !== null) { var videoId = element.id.split('_')[2]; setTimeout(function () { element.innerHTML = '<iframe frameborder="0" width="812" height="500" src="http://www.dailymotion.com/embed/video/' + videoId + '?logo=0&autoPlay=1&autoMute=0"></iframe>'; }, 1000); } } }, m6web_fr : { // issue: https://github.com/reek/anti-adblock-killer/issues/461 // test: http://tinyurl.com/ptn2vrl host : ['m6web.fr'], onEnd : function () { var player = document.querySelector('object[id$="_flash_api"]'); var script = Aak.hasScript('M6.Player.config'); if (player !== null && script !== null) { var found = script.innerHTML.match(/M6.Player.config = (\{.+\});/); var config = JSON.parse(found.pop()); // Replace player var Player = new Aak.player(); Player.videojs(player.parentNode, { source : config.sources[1].src, type : 'mp4', autoplay : false }); } } }, gamingroom_tv : { host : ['gamingroom.tv'], onAlways : function () { Aak.uw.adblock_detect = function () {}; Aak.uw.GR_adblock_hide_video = function () {}; Aak.uw.adblock_video_msg_start = function () {}; Aak.uw.adblock_video_msg_stop = function () {}; Aak.uw.disable_chat = function () {}; } }, // Germany now_domains : { // issue: https://github.com/reek/anti-adblock-killer/issues/336 // test: http://tinyurl.com/peeobou // test: http://jsbin.com/vucobejofo host : ['voxnow.de', 'rtl-now.rtl.de', 'rtl2now.rtl2.de', 'n-tvnow.de', 'superrtlnow.de', 'rtlnitronow.de', 'nowtv.de'], onIdle : function () { /* var Player = new Aak.player(); Player.editing('#videoplayer', { unsetFlashvars : 'abcheck_enabled,adcall,adclasses,adconfig,admeta,adslog,agof,ama,angebot,as,asparts,breakad,connectioncheck,cslog,dev,dimmer,errorlog,feedback,fmsident,gtv,highlights,ivw,ivw_play,js,js_event_function,logo,logo_basewidth,logopos,nielsen,ord,osmf,svm,tile,videoplaza,videoplaza_base_url,videoplaza_share,videoplaza_tag,vpEnvironmentURL,xl' }); */ } }, rtl_de : { // issue: https://github.com/reek/anti-adblock-killer/issues/1541 // test: http://tinyurl.com/h7ccvqq host : ['rtl.de'], onIdle : function () { Array.prototype.slice.call(document.querySelectorAll('div[data-widget="video"]')).map(function (video) { var cfg = Aak.intoObject(video.dataset.playerLayerCfg); var file = cfg.videoinfo.mp4url; Aak.log(video, cfg, file); // Replace player var Player = new Aak.player(); Player.videojs(video, { source : file, type : 'mp4', autoplay : false }); }); } }, myspass_de : { // issue: https://github.com/reek/anti-adblock-killer/issues/76 // test: http://tinyurl.com/lto9pyd host : ['myspass.de'], onIdle : function () { var videoid = location.pathname.match(/\/(\d+)\/$/); if (videoid !== null) { Aak.request({ url : 'http://www.myspass.de/myspass/includes/apps/video/getvideometadataxml.php?id=' + videoid[1], onload : function (result) { var res = result.responseText; Aak.log(res); // Get video var parser = new window.DOMParser(); var dom = parser.parseFromString(res, "application/xml"); var file = dom.getElementsByTagName("url_flv").item(0).textContent; // Remove elements Aak.removeElement('div.loadingGif'); // Replace player var Player = new Aak.player(); Player.videojs('#player', { source : file, type : 'mp4', autoplay : false }); } }); } } }, // Nederland rtlxl_nl : { // test: http://tinyurl.com/l2zkv3d host : ['rtlxl.nl', 'rtlnieuws.nl'], onEnd : function () { var Player = new Aak.player(); Player.editing('#_rtlosmf0', { setFlashvars : { adblock : false } }); } }, // Norway vgtv_network : { // note: skip video ads + anti-adblock // jwplayer: http://tinyurl.com/zyv79hg // issue: https://github.com/reek/anti-adblock-killer/issues/1402 // issue: https://github.com/reek/anti-adblock-killer/issues/367 // test: http://tinyurl.com/nwp85t, http://tinyurl.com/nwp85t host : ['vgtv.no', 'vg.no'], onEnd : function () { var oldHash = null; var videoId = null; var videoIdRegex = /#\!\/video\/(\d+)\//; // check if the location hash changes setInterval(function () { var player = Aak.getElement('.video-player'); if (player && location.hash != oldHash && videoIdRegex.test(location.hash)) { oldHash = location.hash; videoId = oldHash.match(videoIdRegex)[1]; /* var hlsurl = 'https://svpsecurehdvod-vh.akamaihd.net/i/2016/03/20160312_56e421f86af45_vg01/,1280_720_3500,960_540_1500,640_360_800,480_270_500,.mp4.csmil/master.m3u8'; console.log(player) // don't work with chrome // player.innerHTML = '<div id="noAdPlayer">This text will be replaced with a player.</div>'; // can't load m3u8 4032 status code //console.log(unsafeWindow.jwplayer) Aak.request({ url : 'http://svp.vg.no/svp/api/v1/vgtv/assets/' + videoId + '?additional=settings|chapters|cuePoints|externalId|barrels|externalCategoryId|nextAsset&appName=vgtv-website', onload : function (result) { var res = result.responseText; var obj = JSON.parse(res); Aak.log(obj); // replace player var Player = new Aak.player(); Player.vlc(player, { source : obj.streamUrls.hls, // m3u8 type : 'hls', autoplay : false }); } }, {}, { insert : 'inner' }); */ } }, 1e3); } }, mtg_radio : { // issue: https://github.com/reek/anti-adblock-killer/issues/1495 host : ['play.radio1.se', 'play.bandit.se', 'play.lugnafavoriter.com', 'play.rixfm.se'], onEnd : function () { Aak.addScript(function () { setTimeout(function () { window.player_load_live(window.stream_id); }, 1000); }); } }, dplay_network : { // issue: https://github.com/reek/anti-adblock-killer/issues/1463 host : ['dplay.com', 'dplay.dk', 'dplay.se'], onStart : function () { var date = new Date(); date.setDate(date.getDate() + 365); var timestamp = date.getTime().toString(); var value = JSON.stringify({ "notificationSubmission" : "submitted", "reportingExpiry" : timestamp, "notificationExpiry" : timestamp }); Aak.setCookie('dsc-adblock', value); } }, viasat_tv : { // note: skip video ads + anti-adblock // issue: https://github.com/reek/anti-adblock-killer/issues?q=tv3play /* test: http://www.tv3play.no/programmer/redningsskoyta hds/hls http://www.tv3play.dk/programmer/linse-og-didde-ekstra hds/hls http://www.tv3play.se/program/glamourama hds/hls http://www.tv6play.se/program/99-saker-man-maste-gora-innan-man-dor hds/hls http://www.tv8play.se/program/efterlyst--1 hds/hls http://www.tv10play.se/program/garpens-europa hds/hls http://tvplay.skaties.lv/parraides/tv3-zinas hds/hls http://play.tv3.lt/programos/beatos-virtuve rtmp/hls http://tv3play.tv3.ee/sisu/puhapaev-sepoga rtmp/hls */ host : ['tv3play.no', 'tv3play.dk', 'tv3play.se', 'tv6play.se', 'tv8play.se', 'tv10play.se', 'tvplay.skaties.lv', 'play.tv3.lt', 'tv3play.tv3.ee'], onIdle : function () { Aak.hasElement('#video-player', function (thisElement) { thisElement.id = ''; //var videoId = location.pathname.split('/').pop(); var videoId = thisElement.getAttribute('data-video-id'); Aak.log(thisElement, videoId); // get video sources Aak.request({ url : 'http://playapi.mtgx.tv/v3/videos/stream/' + videoId, onload : function (result) { var res = result.responseText; var obj = JSON.parse(res); Aak.log(obj); /* Innholdet du prĆøver Ć„ se er kun tilgjengelig for brukere i Norge Programmet er blokeret for visning fra denne geografiske position. ProgramÄ galite matyti tik jungdamiesi iÅ” Lietuvos interneto tiekÄjų tinklų */ if (obj.msg) { return thisElement.innerHTML = obj.msg; } if (location.host === 'tv3play.tv3.ee') { var Player = new Aak.player(); Player.grindplayer(thisElement, { source : obj.streams.medium, type : 'rtmp/mp4', autoplay : true }); } else { // create video tag for new player Aak.createElement({ tag : 'video', id : 'noAdPlayer', classid : 'video-js vjs-default-skin', width : thisElement.clientWidth || 730, height : thisElement.clientHeight || 410, preload : 'auto', controls : true, autoplay : true, replace : thisElement }); // parse sources var srcArray = []; if (obj.streams.high && obj.streams.high !== '') { srcArray.push({ type : "video/mp4", // mp4 src : obj.streams.high }); } if (obj.streams.hls && obj.streams.hls !== '') { srcArray.push({ type : "application/x-mpegURL", // m3u8 src : obj.streams.hls }); } if (obj.streams.medium && obj.streams.medium !== '') { var type = obj.streams.medium.indexOf('rtmp') === 0 ? 'rtmp/mp4' : 'application/f4m+xml'; srcArray.push({ type : type, src : obj.streams.medium }); } Aak.log(srcArray, JSON.stringify(srcArray)); // initialize new player Aak.addScript(Aak.intoString(function () { (function () { function onVjsReady() { if (typeof window.videojs !== 'function') { onVjsReady(); } else { window.videojs("noAdPlayer").src(/_SOURCES_/); } } onVjsReady(); })(); }).replace("/_SOURCES_/", JSON.stringify(srcArray))); } } }); }); } }, // Russia rutube_ru : { // research solution /* test: http://rutube.ru/video/bd5f6047657f0bdcbfbb0edad2bb7c61/ */ host : ['rutube.ru'], onEnd : function () { Aak.hasElement('#rutubePlayerHolder', function () { //dmFyIG9wdHMgPSBBYWsuZ2V0RWxlbWVudCgiI29wdGlvbnMiKTsNCiAgICAgICAgICAgIHZhciBvID0gQWFrLmludG9PYmplY3Qob3B0cy5kYXRhc2V0LnZhbHVlKTsNCiAgICAgICAgICAgIHZhciBtM3U4VXJsID0gby52aWRlb19iYWxhbmNlci5tM3U4Ow0KICAgICAgICAgICAgY29uc29sZS5sb2cobTN1OFVybCk7DQoNCiAgICAgICAgICAgIHZhciBQbGF5ZXIgPSBuZXcgQWFrLnBsYXllcigpOw0KICAgICAgICAgICAgUGxheWVyLnZpZGVvanMoJyNydXR1YmVQbGF5ZXJIb2xkZXInLCB7DQogICAgICAgICAgICAgICAgc291cmNlIDogbTN1OFVybCwNCiAgICAgICAgICAgICAgICB0eXBlIDogJ2hscycsDQogICAgICAgICAgICAgICAgLy9wcm94eTogdHJ1ZSwNCiAgICAgICAgICAgICAgICBhdXRvcGxheSA6IHRydWUNCiAgICAgICAgICAgICAgfTsgKTs= }); } }, // Italy rai_tv : { // research solution host : ['rai.tv'], onStart : function () {}, onIdle : function () {} }, // TV Stream block_streams_tv : { // note: redirect to http://block.streams.tv/ host : ['firstrow.co', 'firstrows.ru', 'firstrows.tv', 'firstrows.org', 'firstrows.co', 'firstrows.biz', 'firstrowus.eu', 'firstrow1us.eu', 'firstsrowsports.eu', 'firstrowsportes.tv', 'firstrowsportes.com', 'justfirstrowsports.com', 'hahasport.me', 'wiziwig.ru', 'wiziwig.sx', 'wiziwig.to', 'wiziwig.tv', 'myp2p.biz', 'myp2p.tv', 'myp2p.la', 'myp2p.ec', 'myp2p.eu', 'myp2p.sx', 'myp2p.ws', 'myp2p.com', 'atdhe.ru', 'atdhe.se', 'atdhe.bz', 'atdhe.top', 'atdhe.to', 'atdhe.me', 'atdhe.mx', ' atdhe.li', 'atdhe.al'], onAlways : function () { Aak.setCookie("adb", 1); // prevent anti-adblock Aak.uw.open = function () {}; // prevent popup Aak.addStyle("#bannerInCenter, #hiddenBannerCanvas { display: none; }"); // hide ads } }, buzina_xyz : { // note: disable refcontrol, used by firstrowsports // issue: https://github.com/reek/anti-adblock-killer/issues/1268 // issue: https://github.com/reek/anti-adblock-killer/issues/1243 // issue: https://github.com/reek/anti-adblock-killer/issues/889 // issue: https://greasyfork.org/forum/discussion/8975 // source: http://pastebin.com/8VTrkvS9 host : ['buzina.xyz', 'farmet.info', 'rimladi.com', 'kitorelo.com', 'omnipola.com', 'porosin.co.uk', 'rimleno.com', 'simple4alls.com', 'arsopo.com'], onStart : function () { Aak.addStyle("#adsframe { height: 151px; }"); }, onIdle : function () { if (/buzina.xyz/.test(location.host)) { // keeps same host stream Aak.hasElement('iframe[src*=".php?hash="]', function (thisElement) { // http://arsopo.com/w2.php?hash=panda58 // http://www.buzina.xyz/nana1v1.php?onthetop var parts = thisElement.src.split('/'); parts[2] = Aak.rules.buzina_xyz.host.pop(); Aak.log(thisElement, parts); thisElement.src = parts.join('/'); /* dmFyIG8gPSB7CgkJCSAgICAicGxheWxpc3QiIDogW3sKCQkJICAgICAgICAicHJvdmlkZXIiIDogInJ0bXAiLAoJCQkgICAgICAgICJ1cmwiIDogInBhbmRhMT9lJTNEMTQ2NTA3MDMyNiUyNnN0JTNEUHJ0SFl5dkJ6ZDlaZDdoRF9mUkhUZzExMTEzMCIKCQkJICAgICAgfQoJCQkgICAgXSwKCQkJICAgICJwbHVnaW5zIiA6IHsKCQkJICAgICAgInJ0bXAiIDogewoJCQkgICAgICAgICJ1cmwiIDogImZsb3dwbGF5ZXIucnRtcC0zLjIuMTEuc3dmIiwgCgkJCQkJLy8idXJsIjogImh0dHA6Ly9yZWxlYXNlcy5mbG93cGxheWVyLm9yZy9zd2YvZmxvd3BsYXllci5ydG1wLTMuMi4xMS5zd2YiLAoJCQkgICAgICAgICJuZXRDb25uZWN0aW9uVXJsIiA6ICJydG1wOi8vMTg1LjgyLjIxNS40NTozNTc5L3ZvZC8iCgkJCSAgICAgIH0sCgkJCSAgICAgICJjb250cm9scyIgOiB7CgkJCQkgICAgInVybCI6ICJodHRwOi8vcmVsZWFzZXMuZmxvd3BsYXllci5vcmcvc3dmL2Zsb3dwbGF5ZXIuY29udHJvbHMtMy4yLjE2LnN3ZiIsIC8vIGFkZGVkIGJlY2F1c2UgbWlzc2luZwoJCQkgICAgICAgICJwbGF5IiA6IGZhbHNlLAoJCQkgICAgICAgICJzY3J1YmJlciIgOiBmYWxzZQoJCQkgICAgICB9CgkJCSAgICB9LAoJCQkgICAgInBsYXllcklkIiA6ICJwbGF5ZXIiLAoJCQkgICAgImNsaXAiIDogewoJCQkgICAgICAidXJsIiA6ICJwYW5kYTE/ZSUzRDE0NjUwNzAzMjYlMjZzdCUzRFBydEhZeXZCemQ5WmQ3aERfZlJIVGcxMTExMzAiCgkJCSAgICB9CgkJCSAgfQoKCQkJICB2YXIgbmV3VXJsID0gcGFydHMuc2xpY2UoMCwgMykuam9pbignLycpICsgJy9mbG93cGxheWVyLTMuMi4xNi5zd2Y/Y29uZmlnPScgKyBlc2NhcGUoSlNPTi5zdHJpbmdpZnkobykpOwoJCQkgIC8vdmFyIG5ld1VybCA9ICdodHRwOi8vcmVsZWFzZXMuZmxvd3BsYXllci5vcmcvc3dmL2Zsb3dwbGF5ZXItMy4yLjE2LnN3Zj9jb25maWc9JyArIGVzY2FwZShKU09OLnN0cmluZ2lmeShvKSk7CgkJCSAgY29uc29sZS5sb2cobmV3VXJsKTsKCQkJICB0aGlzRWxlbWVudC5zcmMgPSBuZXdVcmw7 */ }); } else { // skip anti-adblock Aak.removeElement('#adsframe'); Aak.getElement('#remove-over').click(); } } }, allmyvideos_net : { // note: obfuscated // issue: https://github.com/reek/anti-adblock-killer/issues/274 host : ['allmyvideos.net', 'amvtv.net'], onStart : function () { // skip fake play button Aak.setCookie('_favbt33', 1); } }, ilive_domains : { host : ['ilive.to', 'streamlive.to'], onEnd : function () { if (/^\/embedplayer.php/i.test(location.pathname)) { setTimeout(function () { // Skip timer Aak.uw.removeOverlayHTML(); }, 1000); } } }, micast_tv : { host : ['micast.tv'], onStart : function () { // prevent popunder Aak.setCookie('vid_main', true); Aak.setCookie('vid_sub', true); // remove overlay Aak.addScript(function () { window.onload = function () { if (window.removeOverlayHTML) window.removeOverlayHTML(); }; }); } }, pxstream_tv : { host : ['pxstream.tv'], onEnd : function () { if (/^\/embedrouter.php/.test(location.pathname)) { setTimeout(function () { // Skip timer and close ads Aak.uw.closeAd(); }, 1000); } } }, sawlive_tv : { host : ['sawlive.tv'], onIdle : function () { if (/^\/embed\/watch\//i.test(location.pathname)) { // Skip timer and close ads Aak.uw.display = false; Aak.uw.closeMyAd(); } } }, goodcast_co : { host : ['goodcast.co'], onIdle : function () { if (/^\/stream.php/.test(location.pathname)) { // remove ads allowed by easylist Aak.uw.$(".advertisement").hide(); Aak.uw.$('.adsky iframe').attr("src", "about:blank"); } } }, showsport_tv_com : { host : ['showsport-tv.com'], onIdle : function () { if (/^\/ch.php/.test(location.pathname)) { // remove ads allowed by easylist Aak.removeElement('#advertisement, .advertisement'); } } }, sharecast_to : { host : ['sharecast.to'], onIdle : function () { if (/^\/embed.php/.test(location.pathname)) { // Disable popunders var interval = setInterval(function () { Aak.setCookie('vid_main', true); Aak.setCookie('vid_sub', 2); Aak.setCookie('vid_delay', true); }, 100); setTimeout(function () { clearInterval(interval); }, 5000); // Remove transparent overlay Aak.removeElement('#table1'); } } }, videomega_tv : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=videomega host : ['videomega.tv'], onStart : function () { if (/^\/view.php/.test(location.pathname)) { // prevent popunder Aak.setCookie('vid_mainpu', true); Aak.setCookie('vid_subpu', true); Aak.setCookie('vid_delay', true); } }, onEnd : function () { // kill abc // fix bug on firefox: The video could not be loaded, either because the server or network failed or because the format is not supported. var script = Aak.hasScript('Please disable AdBlock Plugin to watch the video'); if (script) { var source = script.innerHTML; var substring = source.substring(source.lastIndexOf('eval('), source.lastIndexOf(')') + 1); var deobfuscated = Aak.unpackScript(substring); var newScript = 'if('+deobfuscated.substring(deobfuscated.indexOf('true')); Aak.addScript(newScript); } } }, flowplayer_antiadblock : { host : ['videofun.me', 'videobug.net', 'video44.net', 'play44.net', 'byzoo.org', 'playbb.me', 'videowing.me', 'videozoo.me', 'easyvideo.me', 'playpanda.net'], onEnd : function () { /* http://www.animetoon.tv/black-lagoon-episode-1 http://videowing.me/embed?w=718&h=438&video=ongoing/yu-gi-oh_arc-v_-_53.mp4 http://playbb.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 http://videozoo.me/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 http://www.easyvideo.me/gogo/?w=718&h=438&file=yu-gi-oh_arc-v_-_53.mp4&sv=1 http://playpanda.net/embed.php?w=718&h=438&vid=at/nw/yu-gi-oh_arc-v_-_53.mp4 */ // allow fullscreen when abp is enabled and remove ad layer // ads blocked by abp rule if (/^\/(embed|gogo|gplus)/.test(location.pathname)) { var Player = new Aak.player(); Player.editing('#flowplayer_api', { setAttributes : { allowfullscreen : true } }); } } }, r3z : { // issue: https://github.com/reek/anti-adblock-killer/issues?q=label:R3Z // source: http://pastebin.com/C159kevn host : ['cityam.com', 'computerworlduk.com', 'techworld.com', 'v3.co.uk'], onStart : function () { /* don't work with chrome Object.defineProperty(Aak.uw, '_r3z', { enumerable : true, writable : false, value : {} }); */ }, onIdle : function () { Aak.uw.$("#r3z-wait").remove(); Aak.uw.$(".r3z-hide").removeClass("r3z-hide"); Aak.uw._r3z = null; } }, google_jobrunner : { // issue: https://greasyfork.org/en/forum/messages/405 // issue: https://github.com/reek/anti-adblock-killer/issues/1343 // issue: https://github.com/reek/anti-adblock-killer/issues/1342 // issue: https://github.com/reek/anti-adblock-killer/issues/831 // issue: https://github.com/reek/anti-adblock-killer/issues/1274 // issue: https://github.com/reek/anti-adblock-killer/issues/1262 // issue: https://github.com/reek/anti-adblock-killer/issues/561 host : ['next-episode.net', 'kingmaker.news', 'gamespowerita.com', 'todayidol.com', 'receive-a-sms.com', 'wakeupcallme.com', 'ringmycellphone.com', 'faqmozilla.org', 'thememypc.com'], onAlways : function () { Aak.uw.google_jobrunner = {}; } }, // fuckadbock customized fab_dawn_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1747 host : ['dawn.com'], onStart : function () { Aak.fakeFuckAdBlock('detectAdBlock', 'DetectAdBlock'); } }, fab_sports_fr : { // issue: https://github.com/reek/anti-adblock-killer/issues/1217 // source: http://pastebin.com/SpEN5duS host : ['sports.fr'], onStart : function () { Aak.fakeFuckAdBlock('fabInstance', 'FabInstance'); } }, fab_europe1_fr : { // issue: https://github.com/reek/anti-adblock-killer/issues/1188 // source: http://pastebin.com/ULe1vzQR host : ['europe1.fr'], onStart : function () { Aak.fakeFuckAdBlock('fabInstance', 'FabInstance'); } }, fab_newyorker_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1177 host : ['newyorker.com'], onStart : function () { Aak.fakeFuckAdBlock('sniffAdBlock', 'SniffAdBlock'); } }, fab_wired_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/1061 // issue: https://greasyfork.org/fr/forum/discussion/8235 // source: http://pastebin.com/Pq14v4FC host : ['wired.com'], onStart : function () { Aak.fakeFuckAdBlock('sniffAdBlock', 'SniffAdBlock'); } }, fab_mangasproject_domains : { // note: fuckadblock with custom instance name // note: also added abp rule // issue: https://github.com/reek/anti-adblock-killer/issues/1127 // issue: https://greasyfork.org/fr/forum/discussion/4132 // issue: https://github.com/reek/anti-adblock-killer/issues/858 // source: https://mangas.zlx.com.br/mangazord_lib/js/lib/controllers/Leitor/Leitor.min.js host : ['mangasproject.com.br', 'mangasproject.net.br', 'mangas.zlx.com.br'], onStart : function () { Aak.fakeFuckAdBlock('mangasLeitorSlider', Aak.generateID()); } }, fab_qnimate_com : { // issue: https://github.com/reek/anti-adblock-killer/issues/739 // issue: https://github.com/reek/anti-adblock-killer/issues/705 // note: fuckadblock customized host : ['qnimate.com'], onAlways : function () { Aak.uw.adBlockDetected = function () {}; } }, fab_eurotransport_de : { // issue: https://github.com/reek/anti-adblock-killer/issues/858 // note: fuckadblock with custom instance name host : ['eurotransport.de'], onStart : function () { Aak.fakeFuckAdBlock('antiAdBlock', Aak.generateID()); } }, fab_cadetect : { // by: Skr4tchGr3azyMonkiBallllllZzzz // issue: https://github.com/reek/anti-adblock-killer/issues/784 // note: fuckadblock with custom instance name host : ['tzetze.it', 'beppegrillo.it', 'la-cosa.it'], onStart : function () { Aak.fakeFuckAdBlock('cadetect', 'CADetect'); } }, fab_agar_game : { // note: fuckadblock with custom instance name // issue: https://github.com/reek/anti-adblock-killer/issues/1257 // issue: https://github.com/reek/anti-adblock-killer/issues/1135 host : ['agario.sx', 'agarabi.com'], onStart : function () { Aak.fakeFuckAdBlock('agario_SX_ads', Aak.generateID()); } }, fab_filespace_com : { // note: fuckadblock with custom instance name // source: http://pastebin.com/YAS0As87 // issue: https://github.com/reek/anti-adblock-killer/issues/1037 host : ['filespace.com'], onStart : function () { Aak.fakeFuckAdBlock('fAB', Aak.generateID()); } }, fab_topserialy_sk : { // note: fuckadblock with custom instance name // source: http://pastebin.com/42tUQ9aV host : ['topserialy.sk'], onStart : function () { Aak.fakeFuckAdBlock('sratNaVas', Aak.generateID()); } }, fab_customized : { // issue: https://github.com/reek/anti-adblock-killer/issues/1455 // issue: https://github.com/reek/anti-adblock-killer/issues/1657 // source: http://pastebin.com/N42a5BjE host : ['epicurious.com', 'desktopsolution.org', 'indiatimes.com', 'hindustantimes.com', 'happytrips.com'], onStart : function() { Aak.addScript(function () { (function () { var _setAttribute = window.Element.prototype.setAttribute; window.Element.prototype.setAttribute = function (name, value) { if (name == 'class' && value.indexOf('text_ads') != -1) { value = ''; console.info(this, 'fab intercepted :-)'); } _setAttribute.call(this, name, value); }; })(); }); } }, d3xt3er_antiadblock : { // site: http://d3xt3r.com/anti-adblock // case: http://sport-show.fr/js/advertisement-AdBlock.js // case: http://www.2site.me/advertisement-AdBlock.js host : ['sport-show.fr', 'vipflash.net', '2site.me'], onStart : function () { Aak.addStyle("#blockblockA {visibility:invisible;display:none;} #blockblockA td {visibility:invisible;display:none;} #blockblockA td p {visibility:invisible;display:none;} #blockblockB {visibility:visible;display:block;}"); } }, adblock_notify : { // by: Skr4tchGr3azyMonkiBallllllZzzz // issue: https://github.com/reek/anti-adblock-killer/issues/1766 // issue: https://github.com/reek/anti-adblock-killer/issues/1392 // issue: https://github.com/reek/anti-adblock-killer/issues/1039 // issue: https://github.com/reek/anti-adblock-killer/issues/592 // issue: https://github.com/reek/anti-adblock-killer/issues/813 host : ['gametransfers.com', 'winandmac.com', 'free-steam-giveaways.com', 'canalwp.com', 'alphahistory.com', 'nordpresse.be', 'sospc.name', 'baboo.com.br'], onAlways : function () { Aak.setCookie('anCookie', true); Aak.uw.anOptions = {}; } }, lutte_adblock : { // site: http://lutteadblock.blogspot.com/2014/11/le-script.html // issue: https://github.com/reek/anti-adblock-killer/issues/938 // issue: https://github.com/reek/anti-adblock-killer/issues/580 host : ['lewebtvbouquetfrancophone.overblog.com', 'webtv.bloguez.com', 'latelegratuite.blogspot.com', 'totaldebrid.org', '37.187.173.205', 'tvgratuite.blogspot.com'], onStart : function () { Aak.addBaitElement('div#my_ad_div'); Aak.uw.jabbahud = function () {}; } }, antiblock : { // site: antiblock.org // note: customized // issue: host : ['mybank.pl', 'rapidgrab.pl'], onStart : function () { Aak.addScript(function () { (function () { var _addEventListener = window.addEventListener; window.addEventListener = function (type, listener, options) { if (listener.toString().indexOf('.nextFunction()}') > -1) { listener = function () { console.info(['AntiAdbKiller', location.host, 'AntiBlock{customized}']); }; } _addEventListener.call(this, type, listener, options); }; })(); }); } }, blockadblock : { // site: blockadblock.com // note: random instance name // source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8 // issues: https://github.com/reek/anti-adblock-killer/issues?q=label:BlockAdBlock // issue: https://greasyfork.org/forum/discussion/8273 // issue: https://greasyfork.org/forum/discussion/7625 host : ['blockadblock.com', 'linkdrop.net', 'revclouds.com', 'leporno.org', 'uploadshub.com', 'dasolo.org', 'fullstuff.net', 'zeusnews.it', 'cheminots.net', 'lolsy.tv', 'animes-mangas-ddl.com', 'noticiasautomotivas.com.br', 'darkstars.org', 'corepacks.com', 'naturalbd.com', 'coolsoft.altervista.org', 'openload.us', 'cda-online.pl', 'urbanplanet.org', 'mamahd.com', 'sadeempc.com', 'avmoo.com', 'thailande-fr.com', 'btaia.com', 'tusoft.org', 'hisse.net', 'europeup.com', 'nrj.fr', 'srnk.co', 'animmex.co', 'socketloop.com', 'crackhex.com', 'revealedtricks4u.com', 'pizzamaking.com', 'computerworm.net', 'yourlifeupdated.net'], onStart : function () { Aak.addScript(function () { // variant 1 (function () { var _setTimeout = window.setTimeout; window.setTimeout = function (fn, delay) { // console.log(fn.toString()) if (typeof fn === 'string' && fn.indexOf('bab_elementid') > -1) { fn = function () { console.info(['AntiAdbKiller', location.host, 'BlockAdBlock']); }; } _setTimeout.call(this, fn, delay); }; })(); }); } }, gpt_sp : { // by: Reek, Giwayume // note: when adblock detected inject new ads, redirect to http://tinyurl.com/zq2z5o6 // issue: https://github.com/reek/anti-adblock-killer/issues/1636 // issue: https://github.com/reek/anti-adblock-killer/issues/1596 // issue: https://github.com/reek/anti-adblock-killer/issues/1297 // issue: https://github.com/reek/anti-adblock-killer/issues/1144 // issue: https://github.com/reek/anti-adblock-killer/issues/1542 // source: http://pastebin.com/8Ajitfb2 host : ['marketwatch.com', 'deadline.com', 'tweaktown.com', 'nypost.com', 'realgm.com', 'nasdaq.com'], onStart : function () { Aak.addStyle(".container--bannerAd, .col--ad { display: none; }"); Aak.addScript(function () { (function () { // Giwayume window._sp_ = window._sp_ || {}; window._sp_.config = window._sp_.config || {}; Object.defineProperty(window._sp_.config, "content_control_callback", { value : function () {}, writable : false, configurable : false }); // Reek var _addEventListener = window.EventTarget.prototype.addEventListener; window.EventTarget.prototype.addEventListener = function (type, listener, options) { if (type == 'sp.blocking') { listener = function () { console.info(['AntiAdbKiller', location.host, 'GPT{sp-blocking}']); }; } _addEventListener.call(this, type, listener, options); }; })(); }); } }, krux_asl : { // note: when adblock detected inject new ads // source: http://pastebin.com/0HD7N84i host : ['commentcamarche.net', 'journaldesfemmes.com', 'linternaute.com'], onBeforeScript : function () { return [{ detected : 'Krux{asl}', contains : 'Asl.prototype.inject', external : false, remove : true } ]; } }, krux_adp : { // note: when adblock detected inject new ads // source: host : ['fourchette-et-bikini.fr', 'meteocity.com'], onStart : function () { Aak.uw.adProtect = 1; } }, phoenix_goyavelab : { // note: when adblock detected inject new ads // note: script anti-adblock obfuscated, // issue: https://github.com/reek/anti-adblock-killer/issues/ // doc: http://tinyurl.com/gl3ghq2 // source: http://pastebin.com/hsAmdSuf host : ['demo-phoenix.com', 'dpstream.net', 'gum-gum-streaming.com', 'jeu.info', 'sofoot.com', 'gaara-fr.com', 'gaytube.com', 'tuxboard.com', 'xstory-fr.com', 'hentaifr.net', 'filmstreaming-hd.com', 'filmvf.net', 'hentaihaven.org', 'narutoshippudenvf.com', 'thebadbuzz.com', 'manga-news.com', 'jeu.video', 'mangas-fr.com'], onAlways : function () { //Aak.uw.__$dc = function () {}; Aak.addStyle('body {visibility: visible;}'); }, onBeforeScript : function () { return [{ detected : 'PhoenixGoyavelab', contains : 'PHENV', external : false, remove: true } ]; } }, ad_defend_uabp : { // note: when adblock detected inject new ads // source: http://pastebin.com/cFQCp80W host : ['tvspielfilm.de', 'finanzen.ch'], onBeforeScript : function () { return [{ detected : 'AdDefend{UABPInject}', contains : 'UABPInject', external : false, remove : true } ]; } }, ad_defend_uab : { // note: when adblock detected inject new ads // userscript: https://openuserjs.org/scripts/schwarztee/AdDefend_Klatsche // userscript: https://gist.github.com/anonymous/a9b9956baf1d59a107c5 // source: http://pastebin.com/1VyW0u9m, http://pastebin.com/AZqhRxWU // issue: https://github.com/reek/anti-adblock-killer/issues?q=label:AdDefend // pull: https://github.com/reek/anti-adblock-killer/pull/467 host : ['watchgeneration.fr', 'turbo.fr', '24matins.fr', 'foot01.com', 'clubic.com', 'macg.co', 'begeek.fr', 'igen.fr', 'gamestar.de', 'focus.de', 'stern.de', 'sat1.', 'prosieben.', 'kabeleins.', 'sat1gold.', 'sixx.', 'prosiebenmaxx.', 'fem.com', 'the-voice-of-germany.', 'wetter.com', 'wetteronline.de', 'pcwelt.de', 'boerse-online.de', 'sportauto.de', 'auto-motor-und-sport.de', 'motor-klassik.de', '4wheelfun.de', 'autostrassenverkehr.de', 'lustich.de', 'spox.com', 'shz.de', 'transfermarkt.de', 'rp-online.de', 'motorradonline.de', '20min.ch', 'main-spitze.de', 'wormser-zeitung.de', 'lampertheimer-zeitung.de', 'wiesbdener-tagblatt.de', 'buerstaedter-zeitung.de', 'wiesbdener-kurier.de', 'rhein-main-presse.de', 'allgemeine-zeitung.de', 'ariva.de', 'spiegel.de', 'brigitte.de', 'dshini.net', 'gala.de', 'gamepro.de', 'gamona.de', 'pnn.de', 'promobil.de', 'sportal.de', 'webfail.com', 'computerbild.de', 'finanzen.net', 'comunio.de', 'medisite.fr'], onBeforeScript : function () { return [{ detected : 'AdDefend{uabInject}', contains : 'uabInject', external : false, remove : true } ]; } }, /* solved by AakLIst tisoomi_indirekt : { // inline: http://pastebin.com/npmXTUHw // external: http://pastebin.com/hvWnCuDw host : ['energy.de', 'getvids.de', 'gewinde-normen.de', 'podcast.de', 'spielespielen24.de', 'dialo.de'], onBeforeScript : function (e) { var target = e.target || e.srcElement; var text = target.text; if (Aak.contains(text, 'n="abcdefghijklm",r="nopqrstuvwxyz",i="0123456789";var s=t==0?i:t==1?n')) { Aak.stopScript(e); Aak.log('Tisoomi Indirekt'); } } }, */ /* solved by AakLIst tisoomi_direkt : { // inline: http://pastebin.com/2vq38JXY host : ['autozeitung.de', 'formel1.de', 'fremdwort.de', 'inside-handy.de', 'motorsport-total.com', 'aussenwirtschaftslupe.de', 'donnerwetter.de', 'wintotal.de'], onBeforeScript : function (e) { var target = e.target || e.srcElement; var text = target.text; if (Aak.contains(text, 'function detect()')) { Aak.stopScript(e); Aak.log('Tisoomi Direkt'); } } }, */ // -------------------------------------------------------------------------------------------- // Generic // -------------------------------------------------------------------------------------------- generic : { host : ['.*?'], onRemove : function (removedNode) { if (Aak.opts.removed) { if (removedNode.src || removedNode.id || removedNode.className && !/^firebug/.test(removedNode.className)) { // Node removed Aak.log(removedNode); } } }, onStart : function () { // FuckAdBlock & BlockAdBlock v3 and v4 // site: http://www.sitexw.fr/fuckadblock/ // repo: https://github.com/sitexw/FuckAdBlock // repo: https://github.com/sitexw/BlockAdBlock // note: when fuckadblock.js or blockadblock.js is blocked // demo v3: http://sh.st/vovHE // demo v4: http://al.ly/qBbXH // issue: https://github.com/reek/anti-adblock-killer/issues/888 // issue: https://github.com/reek/anti-adblock-killer/issues/824 Aak.fakeFuckAdBlock('fuckAdBlock', 'FuckAdBlock'); Aak.fakeFuckAdBlock('blockAdBlock', 'BlockAdBlock'); // canRunAds // repo: https://github.com/MatthewGross/CanRunAds // note: use externall script "/js/ads.js" -> var canRunAds = true; Object.defineProperty(Aak.uw, 'canRunAds', { enumerable : true, writable : false, value : true }); // canShowAds // issue: https://github.com/reek/anti-adblock-killer/issues/1197 Object.defineProperty(Aak.uw, 'canShowAds', { enumerable : true, writable : false, value : true }); // Adblocker Detecting Scripts: Method 2 // gist: https://gist.github.com/irazasyed/3d247d3d121e781a3872 // note: use externall script "/js/ads.js" -> isAdBlockActive = false; Object.defineProperty(Aak.uw, 'isAdBlockActive', { enumerable : true, writable : false, value : false }); /* window.iHaveLoadedAds = true; var niceAdsCheck=true; adblock = false is_blocker = false; */ }, onIdle : function () { // AdBlock Detector (XenForo Rellect) // site: http://tinyurl.com/pa28xdn // cloneInto: http://tinyurl.com/k6qphme // issue: https://github.com/reek/anti-adblock-killer/issues/805 // issue: https://github.com/reek/anti-adblock-killer/issues/804 // issue: https://github.com/reek/anti-adblock-killer/issues/591 if (Aak.uw.XenForo && typeof Aak.uw.XenForo.rellect == 'object') { Aak.uw.XenForo.rellect = { AdBlockDetector : { start : function () {} } }; Aak.detected('AdBlock Detector (XenForo Rellect)'); } /* // Adunblock - http://adunblock.com/ if (Aak.getCookie('adblock') == 1) { Aak.setCookie('adblock', 0); Aak.setCookie('bar_closed', 1); } */ // Adblock Blocker // https://wordpress.org/plugins/addblockblocker/ // http://tinyurl.com/nswn6fz // http://pastebin.com/d65zr37m /* can cause a bug var ads = document.getElementsByClassName('afs_ads'); var ad = ads.length && ads[ads.length - 1]; if (ad && ad.innerHTML.length === 0 || ad.clientHeight === 0) { Aak.addScript(function () { getElementsByClassNameNative = HTMLDocument.prototype.getElementsByClassName; HTMLDocument.prototype.getElementsByClassName = function (className) { if (className == 'afs_ads') { console.info(['AntiAdbKiller', location.host, 'AdblockBlocker', className]); var uniqid = Date.now(); var bait = document.createElement("div"); bait.innerHTML = '<br>'; bait.className = uniqid; document.body.appendChild(bait); return document.getElementsByClassName(uniqid); } return getElementsByClassNameNative.apply(this, arguments); }; }); } */ // Adbuddy if (typeof Aak.uw.closeAdbuddy === 'function') { Aak.uw.closeAdbuddy(); Aak.detected('Adbuddy'); } // AdBlock Alerter (WP) // https://github.com/wp-plugins/adblock-alerter // if (Aak.getElement('div.adb_overlay > div.adb_modal_img')) { // Remove Alert + Allow Scroll Aak.removeElement('div.adb_overlay'); Aak.addStyle('html,body {height:auto; overflow: auto;}'); Aak.detected('AdBlockAlerter'); } // Unknow Anti AdBlock system if (Aak.getElement('#blockdiv') && Aak.contains(Aak.getElement('#blockdiv').innerHTML, 'disable ad blocking or use another browser without any adblocker when you visit')) { Aak.removeElement('#blockdiv'); } // Antiblock.org v2 // note: detect and store block id // demo: http://tinyurl.com/nhyhpzk var styles = document.querySelectorAll('style'); for (var i = 0; i < styles.length; i++) { var style = styles[i]; var cssRules = style.sheet.cssRules; for (var j = 0; j < cssRules.length; j++) { var cssRule = cssRules[j]; var cssText = cssRule.cssText; var pattern = /^#([a-z0-9]{4,10}) ~ \* \{ display: none; \}/; if (pattern.test(cssText)) { var id = pattern.exec(cssText)[1]; if (Aak.hasScript("w.addEventListener('load'," + id + ",false)")) { Aak.aabs.abo2 = id; break; } } } } var win = Aak.uw; for (var prop in win) { try { if (!/^webkit/.test(prop) && /^[a-z0-9]{4,12}$/i.test(prop) && prop !== 'document' && (win[prop]instanceof HTMLDocument) === false && win.hasOwnProperty(prop) && typeof win[prop] === 'object') { var method = win[prop]; // Antiblock.org v3 & BetterStopAdblock // issue: https://github.com/reek/anti-adblock-killer/issues/833 if (method.deferExecution && method.displayMessage && method.getElementBy && method.getStyle && method.insert && method.nextFunction) { if (method.toggle) { Aak.aabs.bsa = prop; Aak.detected('BetterStopAdblock{dom}'); } else { Aak.aabs.abo3 = prop; Aak.detected('Antiblock3{dom}'); } win[prop] = null; // kill instance } // BlockAdBlock // site: blockadblock.com // note: random instance name // source: https://gist.github.com/Watilin/af75e0a2e82a2efb384bde9c7b41dec8 // issues: https://github.com/reek/anti-adblock-killer/issues?q=label%3ABlockAdBlock if (method.bab) { // variant 1 Aak.detected('BlockAdBlock{dom:variant1}'); win[prop] = null; } else if (Object.keys(method).length === 3 && Object.keys(method).map(function (value, index) { return value; }).join().length === 32) { // variant 2 Aak.detected('BlockAdBlock{dom:variant2}'); win[prop] = null; } } } catch (e) { //console.log('error', prop) } } // Anti-Adblockers var aabs = { // Plugins WordPress NoAdBlock : '(/plugins/no-adblock/|/blockBlock/blockBlock.jquery.js)', BetterStopAdblock : '(/plugins/better-stop-adblock/|bsa-script-doctype.js|bsa-script-no-doctype.js)', AdBlockBlocker : '/plugins/wordpress-adblock-blocker/', AntiBlockBukssaAyman : '/plugins/anti-block/', BlockAlyzer : '/plugins/blockalyzer-adblock-counter/', AdBlockingDetector : '/plugins/ad-blocking-detector/', // Plugins Website Adworkmedia : '(adworkmedia|loxtk|contentlockingnetworks).com/gLoader.php', Adscendmedia : 'adscendmedia.com/gwjs.php', FuckAdBlock : '(/fuckadblock.js|/blockadblock.js)', jQueryAdBlock : '/jquery.adblock.js', jQueryAdblockDetector : '/jquery.adblock-detector.js', AdBlockAdvertisement : '/advertisement.js', AdBlockAdvert : '/advert.js', AdBlockAdvCustom : '/advertisement(.+).js', AdBlockAdframe : '/adframe.js', AntiAdBuster : '/anti-ad-buster.js', RTKAntiAdblock : '/blockcake.js', AdblockDetector : '/AdblockDetector/handler.min.js', jQueryAntiAdsBlock : '/jquery.antiadsblock.js', Adbuddy : '/js/adbuddy.min.js', AntiADsBlocker : '/aadb/script.js' }; var scripts = document.scripts; for (var y = 0; y < scripts.length; y++) { var script = scripts[y]; if (script.src) { for (var key in aabs) { if (new RegExp(aabs[key], 'i').test(script.src)) { Aak.detected([key, script.src]); break; } } } } }, onInsert : function (insertedNode) { // All Nodes if (Aak.opts.inserted) { if (insertedNode.src || insertedNode.id || insertedNode.className && !/firebug/.test(insertedNode.innerHTML)) { // Node inserted Aak.log(insertedNode); } } // No-Adblock - http://www.no-adblock.com/ if (insertedNode.id && insertedNode.id.length == 4 && /^[a-z0-9]{4}$/.test(insertedNode.id) && insertedNode.nodeName == 'DIV' && insertedNode.firstChild && insertedNode.firstChild.id && insertedNode.firstChild.id == insertedNode.id && Aak.contains(insertedNode.innerHTML, 'no-adblock.com')) { // Remove Aak.detected('No-Adblock', false, location.href); Aak.removeElement(insertedNode); //Aak.log(insertedNode); } // StopAdblock - http://stopadblock.org/downloads/ if (insertedNode.id && insertedNode.id.length == 7 && /^a[a-z0-9]{6}$/.test(insertedNode.id) && insertedNode.nodeName == 'DIV' && insertedNode.parentNode && insertedNode.parentNode.id && insertedNode.parentNode.id == insertedNode.id + '2' && Aak.contains(insertedNode.innerHTML, 'stopadblock.org')) { // Remove Aak.detected('StopAdBlock', false, location.href); Aak.removeElement(insertedNode); //Aak.log(insertedNode); } // AntiAdblock (Packer) var reIframeId = /^(zd|wd)$/; var reImgId = /^(xd|gd)$/; var reImgSrc = /\/ads\/banner.jpg/; var reIframeSrc = /(\/adhandler\/|\/adimages\/|ad.html)/; // Communs if (insertedNode.id && reImgId.test(insertedNode.id) && insertedNode.nodeName == 'IMG' && reImgSrc.test(insertedNode.src) || insertedNode.id && reIframeId.test(insertedNode.id) && insertedNode.nodeName == 'IFRAME' && reIframeSrc.test(insertedNode.src)) { // Variant 1 if (insertedNode.id == 'xd') { Aak.detected('AntiAdblockPackerZdxd', false, location.href); } // Variant 2 else if (insertedNode.id == 'gd') { Aak.detected('AntiAdblockPackerWdgd', false, location.href); } // Remove //Aak.log(insertedNode); Aak.removeElement(insertedNode); } // Adunblock - http://adunblock.com/ var reId = /^[a-z]{8}$/; var reClass = /^[a-z]{8} [a-z]{8}/; var reBg = /^[a-z]{8}-bg$/; var reMessage = /Il semblerait que vous utilisiez un bloqueur de publicitĆ© !/; // Communs if (typeof Aak.uw.vtfab != 'undefined' && typeof Aak.uw.adblock_antib != 'undefined' && insertedNode.parentNode && insertedNode.parentNode.nodeName == 'BODY' && insertedNode.id && reId.test(insertedNode.id) && insertedNode.nodeName == 'DIV' && insertedNode.nextSibling && insertedNode.nextSibling.className && insertedNode.nextSibling.nodeName == 'DIV') { // Full Screen Message (Premium) // <div id="lfyhsvdq" class="tvwnoqdf svonexrk" style="top: 100px; opacity: 1; visibility: visible;"> // <div class="tvwnoqdf-bg" style="display: block;"></div> if (insertedNode.className && reClass.test(insertedNode.className) && reBg.test(insertedNode.nextSibling.className) && insertedNode.nextSibling.style && insertedNode.nextSibling.style.display != 'none') { // Remove Message Aak.detected("AdUnBlockPremium"); Aak.removeElement(insertedNode.nextSibling); // overlay Aak.removeElement(insertedNode); // box } // Top bar Message (Free) // <div id="vixmgrly"> // <div id="mfnhaiyx" class="lkrnvbyt"> else if (insertedNode.nextSibling.id && reId.test(insertedNode.nextSibling.id) && reMessage.test(insertedNode.innerHTML)) { // Remove Message Aak.detected("AdUnBlockFree"); Aak.removeElement(insertedNode); } } // Antiblock - http://antiblock.org/ var reMsgId = /^[a-z0-9]{4,10}$/i; var reTag1 = /^(div|span|b|i|font|strong|center)$/i; var reTag2 = /^(a|b|i|s|u|q|p|strong|center)$/i; var reWords1 = /ad blocker|ad block|ad-block|adblocker|ad-blocker|adblock|bloqueur|bloqueador|Werbeblocker|adblockert|آدبلوك بلس|Š±Š»Š¾ŠŗŠøŃŠ¾Š²Ńиком/i; var reWords2 = /kapat|disable|dĆ©sactivez|dĆ©sactiver|desactivez|desactiver|desative|desactivar|desactive|desactiva|deaktiviere|disabilitare|απενεργοποίηση|запрещать|Ć”llĆtsd le|publicitĆ©s|ŃŠµŠŗŠ»Š°Š¼Šµ|verhindert|advert|kapatınız/i; // Antiblock.org (all version) if (insertedNode.parentNode && insertedNode.id && insertedNode.style && insertedNode.childNodes.length && insertedNode.firstChild && !insertedNode.firstChild.id && !insertedNode.firstChild.className && reMsgId.test(insertedNode.id) && reTag1.test(insertedNode.nodeName) && reTag2.test(insertedNode.firstChild.nodeName)) { //Aak.log(insertedNode); // Kill audio message var audio = insertedNode.querySelector("audio[loop]"); if (audio) { audio.pause(); Aak.detected('Antiblock{audio}'); Aak.removeElement(audio); } // Antiblock.org v2 // demo: http://tinyurl.com/h3mwta4 else if ((Aak.aabs.abo2 && insertedNode.id == Aak.aabs.abo2) || (insertedNode.firstChild.hasChildNodes() && reWords1.test(insertedNode.firstChild.innerHTML) && reWords2.test(insertedNode.firstChild.innerHTML))) { Aak.detected('Antiblock2{insert}'); Aak.removeElement(insertedNode); } // Antiblock.org v3 // demo: http://tinyurl.com/qecfa7w // case: http://tinyurl.com/zbrlr3a /* fork */ else if ((Aak.aabs.abo3 && insertedNode.id == Aak.aabs.abo3) || (insertedNode.firstChild.hasChildNodes() && insertedNode.firstChild.firstChild.nodeName == 'IMG' && /^data:image\/png;base64/.test(insertedNode.firstChild.firstChild.src))) { Aak.uw[Aak.aabs.abo3] = null; Aak.detected('Antiblock3{insert}'); Aak.removeElement(insertedNode); } // BetterStopAdblock // demo: http://tinyurl.com/js9zat4 // source: http://pastebin.com/YimkrtKB // issue: http://tinyurl.com/zetgbtx else if (Aak.aabs.bsa && insertedNode.id == Aak.aabs.bsa) { Aak.uw[Aak.aabs.bsa] = null; Aak.detected('BetterStopAdblock{insert}'); Aak.removeElement(insertedNode); } // Many false positive else { //Aak.removeElement(insertedNode); } } } } }, blockDetect : function () { // Exclude domains // issue: https://github.com/reek/anti-adblock-killer/issues/1466 // issue: https://github.com/reek/anti-adblock-killer/issues/1263 // issue: https://greasyfork.org/en/forum/discussion/8422/ // issue: https://github.com/reek/anti-adblock-killer/issues/986 // issue: https://github.com/reek/anti-adblock-killer/issues/857 // issue: https://github.com/reek/anti-adblock-killer/issues/617 // issue: https://greasyfork.org/fr/forum/discussion/5426 // issue: https://github.com/reek/anti-adblock-killer/issues/419 // issue: https://github.com/reek/anti-adblock-killer/issues/377 var excludes = ["360.cn", "amazon.", "apple.com", "ask.com", "baidu.com", "bing.com", "bufferapp.com", "chatango.com", "chromeactions.com", "easyinplay.net", "ebay.com", "facebook.com", "flattr.com", "flickr.com", "ghacks.net", "google.", "imdb.com", "imgbox.com", "imgur.com", "instagram.com", "jsbin.com", "jsfiddle.net", "linkedin.com", "live.com", "mail.ru", "microsoft.com", "msn.com", "paypal.com", "pinterest.com", "preloaders.net", "qq.com", "reddit.com", "stackoverflow.com", "tampermonkey.net", "twitter.com", "vimeo.com", "wikipedia.org", "w3schools.com", "yahoo.", "yandex.ru", "youtu.be", "youtube.com", "xemvtv.net", "vod.pl", "agar.io", "pandoon.info", "fsf.org", "adblockplus.org", "plnkr.co", "exacttarget.com", "dolldivine.com", "popmech.ru", "calm.com"]; var host = location.host; var excluded = false; excludes.forEach(function (exclude) { if (new RegExp(exclude).test(host)) { excluded = true; if (Aak.opts.logExcluded) { Aak.warn('Excluded'); } return false; } }); // Include domains // IsEventupported: http://tinyurl.com/oeez8c7 if (!excluded) { var handlerEvents = function () { var rule = Aak.rules[name]; rule.host.forEach(function (host) { // Check host if (new RegExp(host).test(location.host)) { // Native mode if (!Aak.useGM && Aak.isTopframe) { Aak.warn('Run natively.'); } // Log rule used if (rule.host[0] != '.*?') { Aak.detected('rule', rule); } // Before DOM load if (rule.onStart) { rule.onStart(); } // On all statements if (rule.onAlways) { rule.onAlways(); // start Aak.onEvent(window, 'DOMContentLoaded', rule.onAlways); // idle Aak.onEvent(window, 'load', rule.onAlways); // end } // Before Script Executed if (rule.onBeforeScript) { // options: contains, search, replace, override, remove, external var optionsBeforeScript = rule.onBeforeScript(); if (typeof optionsBeforeScript == "object") { var handlerBeforeScript = function (e, options) { var isEvent = e instanceof window.Event; var thisScript = (e.target || e.srcElement) || e; options.forEach(function (o) { // hasAttribute var src = o.external ? 'src' : 'innerHTML'; var search = new RegExp(o.contains, o.flags || ''); if (thisScript[src] && thisScript[src].length && search.test(thisScript[src])) { // Stop script execution if (isEvent) { e.preventDefault(); e.stopPropagation(); } // Create new script var parent = thisScript.parentNode; var newScript = document.createElement('script'); // Replace a part of the script if (o.replace) { newScript[src] = thisScript[src].replace(search, o.replace); parent.replaceChild(newScript, thisScript); } // Override script else if (o.override) { newScript[src] = o.override; parent.replaceChild(newScript, thisScript); } // Remove script else if (o.remove) { parent.removeChild(thisScript); } if (o.detected) { Aak.detected(o.detected); } if (Aak.opts.logInterceptedScripts) { Aak.log(src, o, thisScript, newScript); } } }); }; // Browser supporting event beforescriptexecute if ('onbeforescriptexecute' in document) { Aak.onEvent(window, 'beforescriptexecute', function (e) { handlerBeforeScript(e, optionsBeforeScript); }); } else { // Browser not suppoting beforescriptexecute var loadDocument = function (optionsBeforeScript) { //if (document.referrer === '') //return; Aak.warn('onbeforescript-compatible'); // Stop loading Aak.addScript('window.stop();'); // chrome/opera //Aak.addScript('document.open();'); // firefox // Get content Aak.request({ url : location.href, headers : { "Referer" : document.referrer }, onload : function (result) { var html = result.responseText; var parser = new window.DOMParser(); var doc = parser.parseFromString(html, "text/html"); var scripts = doc.scripts; for (var i = 0; i < scripts.length; i++) { var thisScript = scripts[i]; handlerBeforeScript(thisScript, optionsBeforeScript); } // Convert to string html = doc.documentElement.outerHTML; // Write new content to HTML document: Aak.addScript('document.open(); document.write(unescape("' + window.escape(html) + '")); document.close();'); // chrome/opera //Aak.addScript('document.write(unescape("' + escape(html) + '")); document.close();'); // firefox } }); }; loadDocument(optionsBeforeScript); } } } // After Script Executed if (rule.onAfterScript) { if ('onafterscriptexecute' in document) { // Mozilla Firefox Aak.onEvent(window, 'afterscriptexecute', rule.onAfterScript); } } // When DOM Load if (rule.onIdle) { if (!Aak.useGM) { // Native mode rule.onIdle(); } else { //Aak.onEvent(window, 'DOMContentLoaded', rule.onIdle); Aak.onEvent(window, 'DOMContentLoaded', rule.onIdle); } } // When Window Load if (rule.onEnd) { if (!Aak.useGM) { // Native mode rule.onEnd(); } else { Aak.onEvent(window, 'load', rule.onEnd); } } // When DOM AttrModified if (rule.onAttrModified) { Aak.onEvent(window, 'DOMAttrModified', rule.onAttrModified, false); } // When DOM SubtreeModified if (rule.onSubtreeModified) { Aak.onEvent(window, 'DOMSubtreeModified', rule.onSubtreeModified, false); } // When DOM Elements are Inserted in Document if (rule.onInsert) { // Mutation Observer // doc: http://tinyurl.com/mxxzee4 // support: http://tinyurl.com/nepn7vy if (typeof window.MutationObserver != 'undefined' || typeof WebKitMutationObserver != 'undefined') { // Mutation Observer var MutationObserver1 = window.MutationObserver || window.WebKitMutationObserver; // Create an observer instance var obs1 = new MutationObserver1(function (mutations) { // We can safely use `forEach` because we already use mutation // observers that are more recent than `forEach`. (source: MDN) mutations.forEach(function (mutation) { // we want only added nodes if (mutation.addedNodes.length) { Array.prototype.forEach.call(mutation.addedNodes, function (addedNode) { if (Aak.opts.logInsertedNodes) { Aak.log(addedNode); } rule.onInsert(addedNode); }); } }); }); // Observer obs1.observe(document, { childList : true, subtree : true }); } // Mutation Events (Alternative Solution) // doc: http://tinyurl.com/op95rfy else { Aak.onEvent(window, "DOMNodeInserted", function (e) { if (Aak.opts.logInsertedNodes) { Aak.log(e.target); } rule.onInsert(e.target); }, false); } } // When DOM Elements are Removed in Document if (rule.onRemove) { // Mutation Observer // doc: http://tinyurl.com/mxxzee4 // support: http://tinyurl.com/nepn7vy if (typeof window.MutationObserver != 'undefined' || typeof WebKitMutationObserver != 'undefined') { // Mutation Observer var MutationObserver2 = window.MutationObserver || window.WebKitMutationObserver; // Create an observer instance var obs2 = new MutationObserver2(function (mutations) { // We can safely use `forEach` because we already use mutation // observers that are more recent than `forEach`. (source: MDN) mutations.forEach(function (mutation) { // we want only removed nodes if (mutation.removedNodes.length) { Array.prototype.forEach.call(mutation.removedNodes, function (removedNode) { if (Aak.opts.logRemovedNodes) { Aak.log(removedNode); } rule.onRemove(removedNode); }); } }); }); // Observer obs2.observe(document, { childList : true, subtree : true }); } // Mutation Events (Alternative Solution) // doc: http://tinyurl.com/op95rfy else { Aak.onEvent(window, "DOMNodeRemoved", function (e) { if (Aak.opts.logRemovedNodes) { Aak.log(e.target); } rule.onRemove(e.target); }, false); } } // Aak Events Aak.onEvent(window, 'detected', function (e) { Aak.info(['AntiAdbKiller', Aak.isTopframe ? 'topframe' : 'subframe', location.host, e.detail]); }); } }); }; // Apply rules for (var name in Aak.rules) { if (Aak.rules.hasOwnProperty(name)) { handlerEvents(Aak, name); } } } } }; Aak.initialize(); })(window); -
0
Imgur Direct Images
Version -1.0.1.user.js
0 downloads
// ==UserScript== // @name Imgur Direct Images // @version 1.0.1 // @description Direct images on Imgur including albums // @namespace https://github.com/AbdurazaaqMohammed // @author Abdurazaaq Mohammed // @license The Unlicense // @homepage https://github.com/AbdurazaaqMohammed/userscripts // @supportURL https://github.com/AbdurazaaqMohammed/userscripts/issues // @match https://imgur.com/* // @exclude https://imgur.com/ // @grant none // @run-at document-start // @downloadURL https://update.greasyfork.org/scripts/499642/Imgur Direct Images.user.js // @updateURL https://update.greasyfork.org/scripts/499642/Imgur Direct Images.meta.js // ==/UserScript== (function() { 'use strict'; const url = window.location.href; if(url.includes('/a/')) { // Try to clean the crap. If you try to hide all elements imgur will redirect to the homepage for some reason. document.head.appendChild(document.createElement('style')).innerHTML = 'a:not(.Gallery-Content--media) { display: none !important; } *{ background-color: black !important; }'; const intervalID = setInterval(function() { const images = document.querySelectorAll('.Gallery-Content--media img'); if(images[0]) { const links = []; clearInterval(intervalID); images.forEach(image => { const directLink = image.src.split('?')[0].replace('_d.', '.'); //_d is a lower quality image. if(!links.includes(directLink)) links.push(directLink); // For some reason it shows all links twice. }); window.location.href = 'https://abdurazaaqmohammed.github.io/website/imgviewer?viewimg=' + links.join(','); } }, 200); } else { window.location.href = url.replace('imgur', 'i.imgur') + '.jpg'; // It always works even if it's not a jpg. } })(); -
0
IMDB VidSrc Player
Version -1.3.2.user.js
0 downloads
// ==UserScript== // @name IMDB VidSrc Player // @version 1.3.2 // @description Add a multi-server video player directly into IMDB movie/series pages. // @author https://github.com/atefr // @license MIT // @match https://www.imdb.com/title/* // @match https://m.imdb.com/title/* // @icon https://m.media-amazon.com/images/G/01/imdb/images-ANDW73HA/favicon_desktop_32x32._CB1582158068_.png // @connect imdb.com // @connect m.imdb.com // @connect vidsrc-embed.ru // @connect vidsrc-embed.su // @connect 111movies.com // @connect 2embed.cc // @connect www.2embed.cc // @connect vidfast.pro // @connect vidsrc.mov // @connect autoembed.co // @connect multiembed.mov // @connect hnembed.cc // @connect vaplayer.ru // @connect hndrama.cc // @namespace https://greasyfork.org/users/1397577 // @downloadURL https://update.greasyfork.org/scripts/517653/IMDB VidSrc Player.user.js // @updateURL https://update.greasyfork.org/scripts/517653/IMDB VidSrc Player.meta.js // ==/UserScript== (function () { "use strict"; const logError = (error) => console.error(`Error: ${error.message || error}`); let cachedNextData = null; const PLAYER_CONTAINER_ID = "gm-vidsrc-player"; const SERVER_STORAGE_KEY = "imdb-vidsrc-server"; let lastPath = ""; const SERVERS = [ { id: "vidsrc-embed-ru", name: "VidSrc", buildUrl: (context) => buildVidsrcEmbedUrl("https://vidsrc-embed.ru", context), }, { id: "vidsrc-embed-su", name: "VidSrc (su)", buildUrl: (context) => buildVidsrcEmbedUrl("https://vidsrc-embed.su", context), }, { id: "111movies", name: "111Movies", buildUrl: (context) => build111MoviesUrl(context), }, { id: "2embed", name: "2Embed", buildUrl: (context) => build2EmbedUrl(context), }, { id: "vidfast", name: "VidFast", buildUrl: (context) => buildVidfastUrl(context), }, { id: "vidsrc-mov", name: "VidSrc (mov)", buildUrl: (context) => buildVidsrcMovUrl(context), }, { id: "autoembed", name: "AutoEmbed", buildUrl: (context) => buildAutoEmbedUrl(context), }, { id: "multiembed", name: "MultiEmbed", buildUrl: (context) => buildMultiEmbedUrl(context), }, { id: "hnembed", name: "HnEmbed", buildUrl: (context) => buildHnembedUrl(context), }, { id: "vaplayer", name: "VaPlayer", buildUrl: (context) => buildVaplayerUrl(context), }, { id: "hndrama", name: "HnDrama", buildUrl: (context) => buildHndramaUrl(context), }, ]; init(); function init() { lastPath = `${window.location.pathname}${window.location.search}`; scheduleInsert(); const rawPushState = history.pushState; history.pushState = function (...args) { const result = rawPushState.apply(this, args); handleLocationChange(); return result; }; const rawReplaceState = history.replaceState; history.replaceState = function (...args) { const result = rawReplaceState.apply(this, args); handleLocationChange(); return result; }; window.addEventListener("popstate", handleLocationChange, true); const observer = new MutationObserver(() => { if (isTitlePage() && !document.getElementById(PLAYER_CONTAINER_ID)) { scheduleInsert(); } }); observer.observe(document.documentElement, { childList: true, subtree: true, }); } function isTitlePage() { return /^\/title\/tt\d+/.test(window.location.pathname); } function scheduleInsert() { window.requestAnimationFrame(() => { insertPlayer(); }); } function handleLocationChange() { const currentPath = `${window.location.pathname}${window.location.search}`; if (currentPath === lastPath) { return; } lastPath = currentPath; cachedNextData = null; scheduleInsert(); } function extractSeasonEpisode() { const seasonEpisodeDiv = document.querySelector( '[data-testid="hero-subnav-bar-season-episode-numbers-section"]', ); if (seasonEpisodeDiv) { const seasonEpisodeText = seasonEpisodeDiv.textContent.trim(); const match = seasonEpisodeText.match(/S(\d+)\s*.\s*E(\d+)/); if (match) { return { season: match[1], episode: match[2], }; } } const nextData = getNextData(); const episodeNumber = nextData?.props?.pageProps?.aboveTheFoldData?.series?.episodeNumber; if (episodeNumber?.seasonNumber && episodeNumber?.episodeNumber) { return { season: String(episodeNumber.seasonNumber), episode: String(episodeNumber.episodeNumber), }; } return null; } function extractSeriesId() { const seriesLink = document.querySelector('[data-testid="hero-title-block__series-link"]'); if (seriesLink) { const href = seriesLink.getAttribute("href"); const match = href.match(/\/title\/(tt\d+)\//); if (match) { return match[1]; } } const nextData = getNextData(); const seriesId = nextData?.props?.pageProps?.aboveTheFoldData?.series?.series?.id; return seriesId || null; } function insertPlayer() { if (!isTitlePage()) { return; } const imdbId = window.location.pathname.split("/")[2]; if (!imdbId || !/^tt\d+$/.test(imdbId)) { return; } const existing = document.getElementById(PLAYER_CONTAINER_ID); if (existing) { existing.remove(); } const context = buildContentContext(imdbId); const container = createPlayerContainer(context); const targetLocation = document.querySelector("main"); if (targetLocation) { targetLocation.before(container); } else { logError("Target location for player insertion not found on the page"); document.body.prepend(container); } } function getContentType() { const ogType = document.querySelector('meta[property="og:type"]')?.getAttribute("content"); if (ogType === "video.episode") { return "episode"; } if (ogType === "video.tv_show") { return "series"; } const nextData = getNextData(); const titleType = nextData?.props?.pageProps?.aboveTheFoldData?.titleType; if (titleType?.id === "tvEpisode" || titleType?.isEpisode) { return "episode"; } if (titleType?.id === "tvSeries" || titleType?.isSeries) { return "series"; } const title = document.title || ""; if (title.includes("TV Episode")) { return "episode"; } if (title.includes("TV Series")) { return "series"; } return "movie"; } function buildContentContext(imdbId) { const contentType = getContentType(); const seasonEpisode = extractSeasonEpisode(); return { imdbId, contentType, season: seasonEpisode ? seasonEpisode.season : null, episode: seasonEpisode ? seasonEpisode.episode : null, seriesId: extractSeriesId() || imdbId, }; } function buildVidsrcEmbedUrl(baseUrl, context) { if (context.contentType === "movie") { return `${baseUrl}/embed/${context.imdbId}/`; } if (context.contentType === "series") { return `${baseUrl}/embed/tv?imdb=${context.seriesId}`; } if (context.season && context.episode) { return `${baseUrl}/embed/${context.seriesId}/${context.season}-${context.episode}/`; } return null; } function build111MoviesUrl(context) { if (context.contentType === "movie") { return `https://111movies.com/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://111movies.com/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function build2EmbedUrl(context) { if (context.contentType === "movie") { return `https://www.2embed.cc/embed/${context.imdbId}`; } if (context.contentType === "series") { return `https://www.2embed.cc/embedtvfull/${context.seriesId}`; } if (context.season && context.episode) { return `https://www.2embed.cc/embedtv/${context.seriesId}?s=${context.season}&e=${context.episode}`; } return null; } function buildVidfastUrl(context) { if (context.contentType === "movie") { return `https://vidfast.pro/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://vidfast.pro/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function buildVidsrcMovUrl(context) { if (context.contentType === "movie") { return `https://vidsrc.mov/embed/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://vidsrc.mov/embed/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function buildAutoEmbedUrl(context) { if (context.contentType === "movie") { return `https://autoembed.co/movie/imdb/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://autoembed.co/tv/imdb/${context.seriesId}-${episode.season}-${episode.episode}`; } return null; } function buildMultiEmbedUrl(context) { const baseId = context.contentType === "movie" ? context.imdbId : context.seriesId; const params = new URLSearchParams({ video_id: baseId, tmdb: "0", }); if (context.contentType !== "movie") { const episode = getPreferredEpisode(context); if (!episode) { return null; } params.set("s", episode.season); params.set("e", episode.episode); } return `https://multiembed.mov/?${params.toString()}`; } function buildHnembedUrl(context) { if (context.contentType === "movie") { return `https://hnembed.cc/embed/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://hnembed.cc/embed/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function buildVaplayerUrl(context) { if (context.contentType === "movie") { return `https://vaplayer.ru/embed/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://vaplayer.ru/embed/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function buildHndramaUrl(context) { if (context.contentType === "movie") { return `https://hndrama.cc/embed/movie/${context.imdbId}`; } const episode = getPreferredEpisode(context); if (episode) { return `https://hndrama.cc/embed/tv/${context.seriesId}/${episode.season}/${episode.episode}`; } return null; } function getSavedServerId(availableServers) { const savedId = localStorage.getItem(SERVER_STORAGE_KEY); return availableServers.some((entry) => entry.server.id === savedId) ? savedId : availableServers[0].server.id; } function getNextData() { if (cachedNextData !== null) { return cachedNextData; } const script = document.getElementById("__NEXT_DATA__"); if (!script || !script.textContent) { cachedNextData = null; return cachedNextData; } try { cachedNextData = JSON.parse(script.textContent); } catch (error) { logError(error); cachedNextData = null; } return cachedNextData; } function getPreferredEpisode(context) { if (context.season && context.episode) { return { season: context.season, episode: context.episode, }; } if (context.contentType !== "series") { return null; } return { season: "1", episode: "1", }; } function injectStyles() { if (document.getElementById("gm-vidsrc-style")) { return; } const style = document.createElement("style"); style.id = "gm-vidsrc-style"; style.textContent = ` #gm-vidsrc-player { width: 100%; padding: 12px 16px 16px; background: #101010; border: 1px solid #1f1f1f; border-radius: 4px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35); color: #f5f5f5; box-sizing: border-box; } #gm-vidsrc-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; } #gm-vidsrc-title { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #f5c518; } #gm-vidsrc-controls { display: flex; align-items: center; gap: 8px; } #gm-vidsrc-controls label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: #b3b3b3; } #gm-vidsrc-controls select { background: #1a1a1a; color: #f5f5f5; border: 1px solid #2a2a2a; border-radius: 6px; padding: 6px 12px; font-size: 13px; } #gm-vidsrc-controls select:focus { outline: 2px solid #f5c518; outline-offset: 2px; } #gm-vidsrc-iframe { width: 100%; height: 65vh; min-height: 360px; border: 0; border-radius: 4px; background: #000; } #gm-vidsrc-message { padding: 18px; border-radius: 6px; background: #171717; border: 1px dashed #2a2a2a; font-size: 13px; color: #d0d0d0; display: none; } @media (max-width: 768px) { #gm-vidsrc-player { margin: 0 0 20px; padding: 12px 12px 14px; border-radius: 0; } #gm-vidsrc-iframe { height: 50vh; min-height: 280px; } } `; document.head.appendChild(style); } function createPlayerContainer(context) { injectStyles(); const container = document.createElement("section"); container.id = PLAYER_CONTAINER_ID; const header = document.createElement("div"); header.id = "gm-vidsrc-header"; const title = document.createElement("div"); title.id = "gm-vidsrc-title"; title.textContent = "Stream"; const controls = document.createElement("div"); controls.id = "gm-vidsrc-controls"; const label = document.createElement("label"); label.setAttribute("for", "gm-vidsrc-server"); label.textContent = "Server"; const select = document.createElement("select"); select.id = "gm-vidsrc-server"; controls.appendChild(label); controls.appendChild(select); header.appendChild(title); header.appendChild(controls); container.appendChild(header); const availableServers = SERVERS.map((server) => ({ server, url: server.buildUrl(context), })).filter((entry) => entry.url); const message = document.createElement("div"); message.id = "gm-vidsrc-message"; container.appendChild(message); if (!availableServers.length) { message.textContent = context.contentType === "episode" ? "Season or episode info is missing on this page." : "No available servers support this title."; message.style.display = "block"; return container; } const savedServerId = getSavedServerId(availableServers); availableServers.forEach((entry) => { const option = document.createElement("option"); option.value = entry.server.id; option.textContent = entry.server.name; if (entry.server.id === savedServerId) { option.selected = true; } select.appendChild(option); }); select.disabled = availableServers.length === 1; const iframe = createIframe(); const initialEntry = availableServers.find((entry) => entry.server.id === savedServerId) || availableServers[0]; iframe.src = initialEntry.url; container.appendChild(iframe); select.addEventListener("change", () => { const entry = availableServers.find((item) => item.server.id === select.value); if (!entry) { return; } localStorage.setItem(SERVER_STORAGE_KEY, entry.server.id); iframe.src = entry.url; }); return container; } function createIframe() { const iframe = document.createElement("iframe"); iframe.id = "gm-vidsrc-iframe"; iframe.allowFullscreen = true; iframe.loading = "lazy"; iframe.setAttribute("webkitallowfullscreen", "true"); iframe.setAttribute("mozallowfullscreen", "true"); return iframe; } })(); -
0
YouTubeā Ultimate Downloader v13.2 š ā All-in-One Media Suite šš„šµ - Ad-Free + SponsorBlock š”
Version -13.2.xGA.user.js
0 downloads
// ==UserScript== // @name YouTubeā Ultimate Downloader v13.2 š ā All-in-One Media Suite šš„šµ | Ad-Free + SponsorBlock š” // @name:pt-BR YouTubeā Ultimate Downloader v13.2 š ā SuĆte de MĆdia Tudo-em-Um šš„šµ | Sem AnĆŗncios + SponsorBlock š” // @description Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:pt-BR Adiciona um botĆ£o flutuante para baixar vĆdeos, Shorts e mĆŗsicas do YouTube em alta qualidade, com sistema automĆ”tico ao SponsorBlock integrado e a capacidade de ignorar o pop-up de detecção do YouTube para uma experiĆŖncia rĆ”pida e fluida. // @description:ar Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:bg Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:cs Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:da Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:de Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:el Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:eo Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:es Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:fi Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:fr Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:fr-CA Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:he Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:hu Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:id Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:it Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:ja Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:ko Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:nb Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:nl Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:pl Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:ro Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:ru Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:sk Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:sr Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:sv Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:th Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:tr Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:uk Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:ug Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:vi Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:zh-CN Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @description:zh-TW Adds a floating button to download YouTube videos, Shorts, and music in high quality, with an automatic system integrated with SponsorBlock and the ability to bypass YouTube's detection pop-up for a fast and seamless experience. // @namespace https://greasyfork.org/users/152924 // @homepageURL https://greasyfork.org/scripts/34613 // @supportURL https://greasyfork.org/scripts/34613/feedback // @author Punisher // @version 13.2.x GA // @date 2026-06-16 // @icon https://iili.io/fOyuFFS.png // @compatible chrome // @compatible firefox // @compatible opera // @compatible safari // @compatible edge // @compatible brave // @license CC-BY-NC-ND-4.0 // @match https://*.youtube.com/* // @match https://music.youtube.com/* // @grant GM_addStyle // @run-at document-idle // @downloadURL https://update.greasyfork.org/scripts/34613/YouTubeā Ultimate Downloader v132 š ā All-in-One Media Suite šš„šµ | Ad-Free %2B SponsorBlock š”.user.js // @updateURL https://update.greasyfork.org/scripts/34613/YouTubeā Ultimate Downloader v132 š ā All-in-One Media Suite šš„šµ | Ad-Free %2B SponsorBlock š”.meta.js // ==/UserScript== (function() { "use strict"; let video; let sponsorSegments = []; let lastVideoIdSB = null; const sponsorCategories = ["sponsor", "intro", "outro", "selfpromo", "interaction"]; async function SB_fetchSegments(videoId) { try { const res = await fetch(`https://sponsor.ajay.app/api/skipSegments?videoID=${videoId}&categories=${JSON.stringify(["sponsor","intro","outro","selfpromo","interaction"])}`); return res.ok ? await res.json() : []; } catch { return []; } } async function SB_loadData() { const vid = getVideoID(location.href); if (!vid || vid === lastVideoIdSB) return; lastVideoIdSB = vid; sponsorSegments = await SB_fetchSegments(vid); } function SB_skipSegments() { if (!video || !sponsorSegments.length) return; const t = video.currentTime; for (const seg of sponsorSegments) { const [start, end] = seg.segment; if (t >= start && t < end) { video.currentTime = end + 0.1; break; } } } const floatBtnID = "ytPunisherBtn"; const btnColor = "#333333"; const MultiURL = [ { name: "Download 1", baseURL: "//y2mate.stream/convert/?videoId=", useCoder: false, extra: "" }, { name: "Download 2", baseURL: "//mpcourtefontaine.fr/#q=", useCoder: true, extra: "" }, { name: "Download 3", baseURL: "//saveanyyoutube.com/watch?v=", useCoder: false, extra: "" }, { name: "Download 4", baseURL: "//under250art.ca/convert/?id=", useCoder: false, extra: "" }, { name: "Download 5", baseURL: "//www.climbtree70.fr/?id=", useCoder: false, extra: "" }, { name: "Download 6", baseURL: "//yout.com/video/?url=", useCoder: true, extra: "" } ]; const cssSelectorArr=[".video-ads",".ytp-ad-module",".ytp-ad-player-overlay",".ytp-ad-overlay-container",".ytp-ad-image-overlay",".ytp-ad-text-overlay",".ytp-ad-progress",".ytp-ad-skip-button",".ytp-ad-skip-button-modern",".ytp-ad-button",".ytp-ad-click-target","ytd-companion-ad-renderer","#player-ads","ytd-ad-slot-renderer","ytd-display-ad-renderer","ytd-promoted-video-renderer","ytd-compact-promoted-video-renderer","ytd-promoted-sparkles-web-renderer","ytd-promoted-sparkles-text-search-renderer","ytd-sponsor-message-renderer","ytd-video-masthead-ad","ytd-search-pyv-renderer","ytd-engagement-panel-section-list-renderer[target-id='engagement-panel-ads']","ytd-shorts-ad-renderer","#shorts-player ytd-ad-slot-renderer","ytd-reel-shelf-renderer ytd-ad-slot-renderer","ytd-reel-video-renderer ytd-ad-slot-renderer","ytm-companion-ad-renderer"]; const checkRunFlag = id => { if (document.getElementById(id)) return true; const style = document.createElement("style"); style.id = id; (document.head || document.body).appendChild(style); return false; }; const generateRemoveADCssText = arr => arr.map(s => `${s}{display:none!important}`).join(" "); const getVideoID = url => /(?:youtube\.com\/(?:watch\?v=|shorts\/)|youtu\.be\/)([0-9A-Za-z_-]{11})/.exec(url)?.[1] || null; const getVideoDom = () => { const v = document.querySelector("#movie_player video, ytd-player video, video.html5-main-video, video"); if (v && v !== video) { video = v; video.addEventListener("loadeddata", playAfterAd); video.addEventListener("canplay", playAfterAd); } return video; }; const playAfterAd = async () => { if (!video || !video.paused || video.readyState < 3 || video.currentTime >= 5) return; try { await video.play(); } catch {} }; const generateRemoveADHTMLElement = id => { if (checkRunFlag(id)) return; const style = document.createElement("style"); style.appendChild(document.createTextNode(generateRemoveADCssText(cssSelectorArr))); (document.head || document.body).appendChild(style); }; const closeOverlay = () => { document.querySelectorAll("ytd-popup-container a[href='/premium']").forEach(el => el.closest("ytd-popup-container")?.remove()); document.querySelectorAll("tp-yt-iron-overlay-backdrop").forEach(el => { el.className = ""; el.removeAttribute("opened"); }); }; const nativeTouch=function(){ if(typeof Touch==='undefined'||typeof TouchEvent==='undefined'){this.click();return;} const t=new Touch({identifier:Date.now(),target:this,clientX:0,clientY:0}); this.dispatchEvent(new TouchEvent("touchstart",{bubbles:true,cancelable:true,touches:[t],targetTouches:[t],changedTouches:[t]})); this.dispatchEvent(new TouchEvent("touchend",{bubbles:true,cancelable:true,touches:[],targetTouches:[],changedTouches:[t]})); }; const skipAd = () => { if (!video) return; const btn = document.querySelector(".ytp-ad-skip-button, .ytp-skip-ad-button, .ytp-ad-skip-button-modern"); const shortMsg = document.querySelector(".video-ads.ytp-ad-module .ytp-ad-player-overlay, .ytp-ad-button-icon"); if (btn) { btn.click(); nativeTouch.call(btn); video.currentTime = video.duration; } else if (shortMsg) video.currentTime = video.duration; }; const removeAdblockPopup = () => { document.querySelectorAll("ytd-enforcement-message-view-model,tp-yt-paper-dialog").forEach(el => el.remove()); document.querySelectorAll("tp-yt-iron-overlay-backdrop").forEach(el => { el.removeAttribute("opened"); el.style.display = "none"; el.remove(); }); document.documentElement.style.overflow = "auto"; document.body.style.overflow = "auto"; document.querySelectorAll("#content,#page-manager,ytd-app").forEach(el => { el.style.filter = "none"; el.style.pointerEvents = "auto"; }); }; const removePlayerAD = id => { if (checkRunFlag(id)) return; const obs = new MutationObserver(() => { getVideoDom(); closeOverlay(); skipAd(); playAfterAd(); removeAdblockPopup(); SB_loadData(); }); obs.observe(document.body, { childList: true, subtree: true }); }; function addFloatButton() { if (document.getElementById(floatBtnID)) return; const wrapper = document.createElement("div"); wrapper.id = floatBtnID; const mainBtn = document.createElement("button"); mainBtn.className = "punisher-main"; const menu = document.createElement("div"); menu.className = "punisher-menu"; MultiURL.forEach(link => { const btn = document.createElement("button"); btn.textContent = link.name; btn.onclick = () => { const vid = getVideoID(location.href); if (!vid) return; const finalParam = link.useCoder ? decodeURIComponent(location.href) : vid; const extra = link.extra || ""; window.open(link.baseURL + finalParam + extra, "_blank"); menu.classList.remove("show"); }; menu.appendChild(btn); }); wrapper.appendChild(mainBtn); wrapper.appendChild(menu); function updateMenuSide() { const rect = wrapper.getBoundingClientRect(); const middle = window.innerWidth / 2; menu.classList.remove("left", "right"); if (rect.left > middle) menu.classList.add("left"); else menu.classList.add("right"); } let dragging = false, ox = 0, oy = 0; const limit = (x, y) => ({ x: Math.max(0, Math.min(x, innerWidth - wrapper.offsetWidth)), y: Math.max(0, Math.min(y, innerHeight - wrapper.offsetHeight)) }); const start = (x, y) => { dragging = true; const r = wrapper.getBoundingClientRect(); ox = x - r.left; oy = y - r.top; wrapper.style.cursor = "grabbing"; }; const move = (x, y) => { if (!dragging) return; const p = limit(x - ox, y - oy); wrapper.style.left = p.x + "px"; wrapper.style.top = p.y + "px"; wrapper.style.right = wrapper.style.bottom = "auto"; updateMenuSide(); }; const end = () => { dragging = false; wrapper.style.cursor = "grab"; }; mainBtn.onclick = e => { e.stopPropagation(); updateMenuSide(); menu.classList.toggle("show"); }; document.addEventListener("click", e => { if (!wrapper.contains(e.target)) menu.classList.remove("show"); }); wrapper.addEventListener("mousedown", e => start(e.clientX, e.clientY)); document.addEventListener("mousemove", e => move(e.clientX, e.clientY)); document.addEventListener("mouseup", end); wrapper.addEventListener("touchstart", e => start(e.touches[0].clientX, e.touches[0].clientY), { passive: true }); document.addEventListener("touchmove", e => move(e.touches[0].clientX, e.touches[0].clientY), { passive: true }); document.addEventListener("touchend", end); document.body.appendChild(wrapper); let hideTimer; function isFullscreen() { return document.fullscreenElement || document.webkitFullscreenElement; } function showButton() { wrapper.style.opacity = "1"; clearTimeout(hideTimer); if (isFullscreen()) { hideTimer = setTimeout(() => { wrapper.style.opacity = "0"; }, 3000); } } document.addEventListener("fullscreenchange", showButton); document.addEventListener("webkitfullscreenchange", showButton); document.addEventListener("mousemove", showButton); document.addEventListener("touchstart", showButton); showButton(); } GM_addStyle(`#${floatBtnID}{position:fixed;top:70%;right:20px;transform:translateY(-50%);z-index:9999;transition:opacity .3s ease;} .punisher-main{background:rgba(51,51,51,.85) url("https://iili.io/fObpSDv.png") no-repeat center;background-size:55%;width:55px;height:55px;border-radius:50%;border:none;box-shadow:0 4px 10px rgba(0,0,0,.25);cursor:pointer;} .punisher-menu{display:none;flex-direction:column;position:absolute;top:50%;transform:translateY(-50%);background:rgba(51,51,51,.85);border-radius:8px;overflow:hidden;min-width:110px;backdrop-filter:blur(6px);} .punisher-menu.show{display:flex;} .punisher-menu.left{right:70px;} .punisher-menu.right{left:70px;} .punisher-menu button{background:transparent;border:none;color:#fff;font-size:11px;padding:6px 10px;cursor:pointer;text-align:left;} .punisher-menu button:hover{background:rgba(255,255,255,.08);}` ); GM_addStyle(`ytd-enforcement-message-view-model,tp-yt-paper-dialog,tp-yt-iron-overlay-backdrop{display:none!important}`); generateRemoveADHTMLElement("yt-remove-ad-css"); removePlayerAD("yt-remove-player-ad"); setInterval(() => { SB_skipSegments(); }, 500); addFloatButton(); })(); -
0
Pandora music replay and download
Version -1.3.3.user.js
0 downloads
// ==UserScript== // @name Pandora music replay and download // @namespace https://greasyfork.org/users/35010 // @version 1.3.3 // @description Gives pandora music replay and download function! // @require https://code.jquery.com/jquery-3.2.1.min.js // @require https://cdn.jsdelivr.net/npm/vue@2.6.14 // @author Thesunfei // @grant none // @include http://*.pandora.com/* // @include https://*.pandora.com/* // @license MIT // @downloadURL https://update.greasyfork.org/scripts/31738/Pandora music replay and download.user.js // @updateURL https://update.greasyfork.org/scripts/31738/Pandora music replay and download.meta.js // ==/UserScript== /*jshint multistr: true */ if (self !== top) return; $(function () { var styleele = $("<style></style>"); styleele.html( ` #audioitems { position:fixed; right:100px; top:10%; background-color:rgba(0,0,0,.3); z-index:1000; width:400px; box-sizing:border-box; padding:0 20px 20px 20px; cursor:move; opacity:.5; transition:opacity .5s,box-shadow .5s; border-radius:3px; max-height:80%; overflow-y:auto; color:white; box-shadow:1px 1px 2px rgba(0,0,0,.2); display:flex; flex-direction:column; user-select:none; } #audiolist { flex:1; overflow-y:auto; position:relative; } #audiolist::-webkit-scrollbar { width:5px; } #audiolist::-webkit-scrollbar-track { background-color:rgba(0,0,0,.3); } #audiolist::-webkit-scrollbar-thumb { background-color:rgba(255,255,255,.3); } #audioitems:hover { opacity:1; box-shadow:2px 2px 15px rgba(0,0,0,.4); } #audioitems audio { width:100%; } .audioalbum { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .audioartist { flex:1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .audiowrap:not(:last-child) { margin-bottom:15px; } .audiowrap { display:flex; } .audiocloned { flex:1; display:none; } .audioinfo { flex: 1; display: flex; flex-direction: column; justify-content: space-between; padding:0 10px; font-size:13px; overflow:hidden; } .audiotitle { font-weight:bold; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; } .imgwrap { width:90px; height:90px; position:relative; } .audioimg { width:100%; height:100%; object-fit:contain; } .audiocontrol { position:absolute; width:100%; height:100%; left:0; top:0; display:none; background-position:center; background-size:50px 50px; background-repeat:no-repeat; background-color:rgba(0,0,0,.2); cursor:pointer; opacity:.6; transition:all .2s; } .audiocontrol:hover { opacity:1; } .audioplay { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAMhUlEQVR4Xu1di7HVNhCVKkioIKGCQAVABUAFgQoIFQAVABUEKgivgoQKAhUEKghUsJnjrN7Ifva1drX6+KMZD8x9sixpj/YvybsdFiL60Tn3i3PuZ37uOOfwWyjh93j0X5xzeEL55pz7xL/h98/ee/y2q+K3Phom9j3n3H3nHAg9JbblEAMoAIy/nHMftw6KTQKAiALBQXQ8LQuAMDze+48tO6L59mYAQERY2c+cc48m7Fwz7lLvgEN8cM699d6DS3RfugYAEUFW/+qce8KyvPsJjToIveGNc+7Kex/rFl2NoUsAEBHYeljtXU2YsjOBK0BUdFW6AgAT/kUHcr0UkQCAV977boDQBQAOQPgpoLoBQlMAsIx/zYpdqVXXc7sQDc9b6gjNAEBEYPW/dazR1wIOLIc33vtXtT4Yf6c6AJjd/75Brb40fWA2ghtU1Q+qAoCIwO6x6s+yPAMva3KDKgBgWf8Hu2lrEf87+/KxssBm45X1ZSp3uY/wO4QCUxTxg+Be/qFWx7nfj2voBsUBQETw3IHlx8GYEnP5Obhk2S1rGrjhmENwPeNfBJtKFvT/qfceimKxUhQAFVj+FbteP9QOyjAgAG48D4tR6H8F8Xmp9osBgIiw6uHCtS5Y6e9A+BosMqXzLD4ABIy3BGd4571/mtIXaR1zAPDK+LOAvMdqx2qoqiVLJ5StHCi61lwB44ZeYCraTAFQiPjvnXPQjLsNqMyBhLnCSw5mSXG0VB8K7QNLEJgBgMO1YPvQmi0KYutPtkb46cAZCBBZyGGwKKYgMAGA8cr/Cl9Bae3XghKSNtgaQnj4J8l7C3XNQJANAGPiwx0KOW8q5wwm3KQJnivoB3CD5xYTEFgA4G8Dto9V/2grWTS5lGNxCfs+lxsgDe1BTn+yAGBk6kG7h6zf5apfIg5zA+gGudZClomoBgARQZ4hayenIPiBdg5biAgiATGSnIIcRFWMRQUAVmjg29cW+OnB8ru26bWDk77HvgOIhJx4A3wEYrexGABs1kDua337IP79o8j7VDCwXoAFoQUBROhdqdmsAUCO0ncoZS+V+KGegXL4yXt/V/JdEQAy5T6If+doyp6EGKjLyiFMPK2FgKRTeCCTSjIAWE7Bx68pJ9sXzJqBOIC7OEm/kgBAy/pP4guIPxEHWp0gWRQkAYCIwFK03qtkNCrmadevZHLdJFGwCoBMrf/wdn4uQjP8BElWQQoAYO8j2UFasCdO8570O7uvT0Sw7zUeQyTNPL40QRcBkMGCTo3fEJaZlsFFEbwGAGj9mv33cEhsYnu0IZ2KNsWWARRxabkYMFoEQMbqT1I+pKM46w8+Aq0yvsgFLgFAs/qrs34iQj+RPr2plDENoDNEwSIXmAVAxupXBSQ0kxHZy8T/x+pAVGzXYeWMQNwsF1gCgEbrxIFJGn0hh/5giwEAaAfERzoZEkl3W4gIDiJpjuF77/2NNP0bAGC7/x/F7N1uwYYnAAjd7mb/vWIeV1+xpNEcADSKxiy6VkdiUGEBAKFlZNzAGbU7sUBEGBvOT5KUG465OQBg9cebJFM+0GT1o2MrAAhiodn++5TJ09RRcgFsir0df28EAKWt2dTjlwCAMF5YCbAWkqJkGqLUfkepC4x8NFMAaNhK02CPAACxfrALs1FprY3E9RQA/wpTvXB+rtVOINUCUgAgfGcXZiMRweMq2ZD6zXt/K0zCNQCUaGoe7csAwC7MRmW08JprxwDQaP/NlL+A4EwAbN5sVCqD1+76GADSjJ+myp8xADZtNirCxddOuwEA7GOG/JcUKFJQGpsWIw4Qj6HpsW2aySQiePiwM1tSbsE/EgCAxA3pRo+hAckXS9QtAIDNmY1KMTDEbQIApNu8mmv/hUTAHEbhN+jebFRYA8N2sgAAaXBBvRfNmgsU5ADTrnZtNir2bAx6QACA1P6vHvZdAk5FAHRtNirCxIM/wCsVwC7kPyuwcTjYmsEstdddtFFDR4+icAB9995rN4aaE6gyB5j2v6toIxFBKZdsLn0AAEhNiCaJH52IgLludGM2KoJDTwEAqQewGwWwoQiYA0LzaKNCEXwFAEgtgK6yfhuLgK7MRsVivtIAoGn4dzrjHQIgdLG62ajQ5z6eADBXS0cNVk1SPQFQlpg5rVcxG7UAkOYANg8Bx5ToWATMAaao2aiICXyBCBA5UuA7yFkK1u9K+2/9fUV7Rc1G6XycAFBQ0OiVImbjCQAj6lRoBvsocUKqaZbyCYAKlMv8BM5Mwj6F5JO8JN/TAACsSHIk2akESigyros9i9i7WCSRRqEEfj39AHpiSt7E5Re49cSU3c84xbA5V3KU3+kIklBRURfsHiu+Su6k1g8gjQWcruA0JFS//EILAOlZAGcw6DIAmt11pA0GneHgtBW9VquIWbf20YlXVLq3cwgHnwkhklm+WbeoWSfpmiK0PySESDXH0eZCSQdL1JXavcZ9KGrWSftKRNLk3iElDPl90l1BR08KrWLWSQCgoeOQFIqPKJIJj5oWXtWsEwJAurtrSO49N4akz3J1sy69a8Milu7uGm0Mkb6cfB69ZBCauhV0gGZmnWQ+iEi6u3u0NUzKPtC3LvSAggBobtalAkARA0DTo82hGkVwr9vDuzHrBACQmvIu6H/xARFSl/AeD4joyqwTAEDqzR0fEMGWgNQjiNeah4aNREB3Zp2A+DjTUXqy6+wRMVKHEPq49UOiujXrBADQXD1785AopT+guTWQwQG6NusEAJBq/6PNvUc8KHITZl0KABRufDQ72tt5pKNiN2PWpRCfObbmUo/lo2K5UWmOYFNlMEEEbM6sSwGA0vb/6r0fHQS+9+PiN2nWJQJAGvufVdr3emHEZs26ROJrTL9ZTm15ZczF68lSBqapMxEBmzfrUuaAL8qSXs+TdmUM6wEan8C1fzllEFZ1IgDswqxbmxfFaWChyfRLoxgEUtcwXoMCCS2zyMaHucnhNChssTrKtXGw+6U3uiye63ReHLm25Dr6uyLr9+Lqxx/Xro7VcAG0e14dawwc5XU+6MXFU93WAKDVBaqLAuP57qo5zvfTsH6MQ395NOsC0lBjmLzVq8u7muWOO0NEOMkdSTvSshqyXz3tgz1OuJdGcgJl6GjzaKF0xnqrr7wSBsOASXxnTTleBQBzAU2uwKoC0ttk99afDJMPQ0nawpcEAAaB9HaqMJ8wCSGH8P5ZEmeAlT4EezTnMiff5yABgFYhxJBPECQSnhcbruLTEn9V8Yu7kgwA7pg0fTz+1mkZJIAgU+NPZv2hKyIAZIoCvA4QIB35FAczYGC2D41f6ukLrYlPctcAAJ3TWgWnOFjgApkyP1nrn35eDADmApqNJPG3oROAExQ9MyeB43ZRhbV9XPumUfjCGFT7NVUAMNAHQqdxfs7bLqjQqBNE9AzHxmV+Xn2HgxoADAJNVsp0rPA0YpdRtQhi5mSbvM7KHla9xsMX92E2zp/aySwAMAi0AaOphXAY5dBA2VMrfSY6QNwIIxkgkFxhvgTQ6pcspK4Ui3o8V2D5FqeEfnbO3c/lnNkcgLkAlBcrEMBURAwBomE3hRW91xkmXjwXJsRHgyYAYBDAPATRLDgBmtzEla1rCOVgGmS9NIdvqWkz4psCoAAnCBMARROBjU2lfDHhX+BE8DWQCP5uSnxzAEQgACe4JxhYStUq166kdORSHd6uBcJbrfhrhQ8WQ67MN1cClyaDiCxMxLnm4YVE20h26IIr8Gp/yKsdgRzrkmXqXeqMmQ4w9xHFwUXSiQOnwQMwVPUjsEYPosOOz7XlL41b7eRJmcyiAGCRgMnBitVkFKWMIdQBZ4CYwIOgiCkgmOAQa2DteEqs9Hi8yOhBuntRa6g4AApZCCnAAAAACjz4fxx3wCbJkfhgNh5fnAEiw7wFofHk+OlT+hvXqbaFvQoAwsgqiATpRPdYPymVy6rjVQHA3AArC8EPK3+B1Vy0bgcmHoJjVSOk1QEQcQO4Q3G+TWndoDVh177f9PyCZgCIdANwA2jTRyxXvOqbmbNNARBxA4gFcARr51GvoOrm/IIuAHAgIHRD+DDnXQFgAgToB3sRDTiq5l1tBS+F/XUJgAgIiDDCkQQwSC63TBl76To4lQz6DfZINpPxa4PsGgBx5zmLBkAAIHq1HKDRw3OHq2E3kfq+GQBMwBDcsfi3teIIuT64oHtk8bvhAEsDYR997J+H27YUh8AKD+7lQHTTmMMawaz/vkkOkDIJHJeHDoFn6svHb1OdAjI7ltUhloDfvmxxdafM038tRTh6zxKBrQAAAABJRU5ErkJggg==); } .audiopause { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAL5UlEQVR4Xu1djZHVNhCWKkioIKGCQAVABUAFgQqACoAKgAoCFYSrILkKAhXkroJABZv5zOrGz/dsa1erH9vSzBuYd36Wpf20++2PZO922IjoZ+fcb865X/lzzzmH70IL349Hf+Wcwye0b865L/wdvv/qvcd3u2p+66NhYT9wzj10zkHQU2FbDjGAAsD42zl3uXVQbBIARBQEDqHjU7MBCMPHe39Z80E0fW8GAESElf3COfdkos414871G2iIz865D957aInmW9MAICLY6t+dc8/Yljc/oaMHBG/46Jz75L0fc4umxtAkAIgIaj2s9qYmTPkwQSvAVDTVmgIAC/51A3Y9l5AAgLfe+2aA0AQADiD4KaCaAUJVALCNf8fELteqa/m+MA2vanKEagAgIqj6lw0z+lLAgefw3nv/tlSH436KA4DV/R8bZPW55QO3EdqgKD8oCgAigrrHqu9tfgagDV6VmqAiAGBb/yeHaUuN7TvH8rGyoGbHK+tqanf5GRF3CA2uKPIHIbz8U6kH5+d+WoIbZAcAESFyB5U/TsbkmMuvISTLYVnTxA3nHELoGf8i2ZSz4fmfe+9BFLO1rAAooPIvOPT6uXRShgEBcOPzOJuEfhDEbCYhGwCICKseIVzrhpWOEOvH0kKfGwibDwAB482hGTDW59YTifuZA4BXxl8Z7D1WO1ZDUZYsnXT2ckB0rbUCxg1eYGraTAGQSfifnHNvShAiqbCXrmet8IaTWVa3BqF9ZAkCMwBwuhZqH6zZoiG3/mxrgp8OnIEAk4UaBotmCgITABiv/GvECnKzXwtJSO7B3tB759wvkt/NXGsGgmQAGAsf4VDYeVM7ZzDhJrfguQI/QBg8tZmAwAIA/xiofaz6J1upokmVHJtL+Pep2gBlaI9SnicJAEauHtg9bP0uV/2C64jAGLhBqreQ5CKqAUBEsGeo2klpSH7gPodtRASTgBxJSkMNoirHogIAExrE9rUNcXqo/KZ9eu3gpL/j2AFMQkq+ATECcdhYDAB2a2D3tbF9CP/hUex9LBiYF2BBaEEAE3pf6jZrAJBC+g5F9mKFH64zIIdfvPf3Jf2KAJBo9yH8e0cjexJh4Fp2FeHiaT0EER+IBgDbKcT4Na2rfcGsGZgDhIuj+JUEAP8qy7i68AXCn5gDLSeINgVRACAiJDW00atoNCrmadc/SdS62H8AuS22VQAksv7D+/lrAlj7e0KcIMoriAEA/H0UO0jbhfde8ztpP7u/nojg32sihqiUero0QYsASFBBnfEbwjLRM1g0wWsAAOvX7L9HQGIT26MN5ZT1VuwZIAYjbYsJo1kAJKz+KPIhHUW/fogRaMn4rBZYAoBm9XfVnxGpCaZgVgucBUDC6lclJDLO2e5unZCIO6sF5gCgYZ04MEnDF3YnpNwDIiIEiKQ1hjip5FaZ/i0AsN+PqJ+03ZVmoqQd9Ot/zICljM4BQEM0zqLLQmBERCn38d6vxjqW7l+7/7lnIyJUE+H8JEm7FZg7BwBNzD/b6q8tgNr9LwAAG1mlmhqbYu+O73kCAKWvmW31s7rrGmAGBUoucBKjmQJAo1ayJntqr8Da/a+YJ5BuaYr+ZMFOAfCfsNQL5+da7QQ6O9baAqjd/5qBJyJEXCUbUr957++E+94AQOn7Z8/21RZA7f4jAKCpKr7R2mMAaNj/ndwlXrUFULv/CABoyOBNuH4MAGmxZ5F0b20B1O5/DQBMlKWBu5ug3QAAjjHD/ksaji8Baczaagugdv8xk0tEiPBhZ7akDdo7AACFG9KNHtnVf3cD4+SpjAwOeZsAAOk2r+zsPwy99gqs3X8cBAYtLvUGhvLxAABpckFUex47iHPX1RZA7f5j506xZ2PgAQEAUv+/WNq3tgBq9y8AgNSMD/EArySARex/5wCx4tcReSTKAABpOPG79167MTR+RHxl7RVYu3/JhBERSsElm0sfAQBSF6Jo4UdtAdTuXwgAKZd7DgBII4DFCGA3ARLxD2ZA6s29BQCkqCla9Vt7BdbuXwIBxWK+0AAga/p3OuDaAqjdvxAAUj532QGwMsMdALcnqGsAwbJMrUkUdAUOoNIA0hrAbPV/PRIoEfftaxU5gSuYAFHNXUlEdy9ADgixPMU/SCyzlg5J+nzT+6cCtnb/ueera4AdkUCNxuwA6AAgvNlaciRZJ4ECvZxqggRdabaMXfc4wI40gNYNlIaCexxAsCwLawBVHKADYEGgW/ICtBpAWlLck0HtagBpZndIBkl/1NPB7QJAurdzSAf3gpD9mACpOR8KQqTE4WRzoWAxqC6tbYNr9y+ZNCKSFvcOJWGo75PuCupFoZGSKeUFaOQ4FIVy+FBaTNjLwtsDgLQsfCju7RtDdhIIUtQDnmwMkRYTRp9HH7lQZi+rbYNr9x87f0Qk3d19sjVMqj7wXEV4QG0B1O4/BgCKQhDc9mRzqIYI9u3hEdIpQQIVrvzNAh4fECHdXdoPiGgHANJo7ukBEewJSCOC+Fn21HBtFVy7/zWMKdX/2SNipAEhPFs/JGpFQrlNgPKVMrcPiVLGA7J7A7VXYO3+IzSAlP2fbO7tB0VuOA6gCONjtIsHReLQR+lrSbKSwdorsHb/S/gkIs1LPeaPimUzIK0RzEoGawugdv9zAFCSv2vvPc4VvGn9uPiNmoCcx8VrTp7MqgXWiNDR/q5c/WdlZPnKmMXXkx1NSDnHq7T9ca+MYR6giQncxJdzDv7o9y7y0igGgbS8CD8DgQTLRH1Bb8YzwEUf8NJOiFxEN7PnOvUXR0bMXiuXKAp4w6PLXxyZoAXw0/7qWGPUKF/ng6dYPNVt7d3BWi7QTYEhABJUP55C//Jo1gLSVGMY+uqryw3naNe3IiKc5I6iHWlbjdKuvlOPfU7UCkhOoAwPmj1bKJ2RrV2vzPZhmN+dc/fWXua5CgDWAppagVUCsjVhlH7eBJcPjxq1hS8KAAwCTY4AP4VLCDsELdJb5Aww6UOyR3Muc/T7HCQA0BLCDoJIoYfLEoW/SvzGjxMNANYC0vLxcV/dM4gAQiLjj1b94VFEAGAQSItHpyBAOXI3B2fAwCsfjF8a6Qt3E5/krgEAHk7rFXRzMKMFDNR+FOufdi8GAGsBzUaScd8ghtAEyDccvjHbx2vfNIQvzJ9qv6YKAAZ8IDz0S+/9hyMjgIheOOfArVKa+tAONQAYBNITKc4NEpFG7DI6VAaRyR5WvSbCN57Hs3n+WDQlAYBBoEkbT58PHsJhyKEB2VOTPhMOML4JIxkgkLzCfA6giDhCne1SG/BcQeVjnKntq3PuYepcJWsA1gIgL1YggDZADgGmYTeNid67BBdvPBcmwscNTQDAIIB7CKFZaALcEoACNwAgNts4mQZbj0iqRTMTvikAMmiCMFkgmkhsbAoILPjXzjmcwmbVTIVvDoARCKAJHliNmu+De4IfNB074O1aELzVig/TeAmPIdXmT2ViZgKmN1ZuXIjBDKKQ0AoodmhCK/Bqf8yrHdvrrFuSq7f0MNkAwNogJXkUM4nQCvgADEU9B2b0EDr8+FRffmms6iBPzARmBQCDAJODFaupKIoZQ7gGmgHmAR8kRUwBwQKHWYNqxyfHSh+PF7H9Z7m9oewAYBBYewgxwAAAAAp88P8xd8AmyRPzwWp8/OIMCBnuLQSNT0qcPuZ5x9fA3kP42U1cEQCEkSnOspNO3B6ujyrlshpoUQCwNsDKAjewihdYzUXt+8DFQ3KsqJdTHAAjbYBw6MsC3KC2YNf6h61/7723CA+v9XXr79UAMOIG0AZg00dsF7zqs9v6ucmtCoCRNoBZwAqwDh61CiqQvDel1f25yWgCAAcCQjOCD3PeFAAmQAA/2Itp+IRYSAsrfqoFmgTACAiIHyCQBDBIXm7Zguq/Zm8HeySr2fi1iWgaAOOH5yoaAAGAyB1VXJu3ub+D0SM0DVa/idL3zQBgAoYQjsW/tYkj7PoQgm5Rxa8heZMAmIABIdpxfB5h21waAis8hJeD0E1zDmsCs/775gEwNyGclweHwGcay8d3U04Bmz221SGXgO+utri6Y8DyPxRka3qtLJBLAAAAAElFTkSuQmCC); } .audiocontrol.audioload { background-color:transparent; justify-content:center; align-items:center; } .loading .audiocontrol.audioload:after { content:""; display:block; width:50px; height:50px; border-radius:50%; box-sizing:border-box; border-left:4px solid white; border-right:4px solid rgba(255,255,255,.3); border-top:4px solid rgba(255,255,255,.3); border-bottom:4px solid rgba(255,255,255,.3); animation:rotate .6s linear infinite; -webkit-animation:rotate .6s linear infinite; } @keyframes rotate { from {transform:rotate(0)} to {transform:rotate(360deg)} } .audiodownload { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACIElEQVRoQ+2Z/VHDMAzF9SaAEWCDjlAmoEzAdQJgAmAC6AR0A9gARoAJaDcoE4h7ubiXpk1qywq0d/Y/vWss+f0sxR8KxLGp6ruIjHtcrkTkDsDca1h4OVJVCifAvrYAcL6vU+zz/wAQAG7jujlKiEABaKZXiUCYjZJCsctOq19JoZJCxtQJZiWFjiqFVHUkIicdUeez58iM6DvwLQEsIv1IdAqpKsXdxDrO6McT6wWAzxgfKQB03DX7MWOl9HkE8BBjkAJAh/cxTjP7/IjIKDaNogEoSlV5EbnOFNhnTvHj2PShoySAgSGSxZsABoIwiTcDOEOYxWcBOEFkic8GyITIFu8CYIRwEe8GkAjhJt4VIBLCVbw7wB4Id/EbAKp6ajysrQDMmtvrjh17S3x9sr007OpfAN6CXbUT1+K/RYQQljYHMG1BhNNrl3iWIa3jrQ97AeBWRJ4syhs2WxC7/NUznyO+chvKkwHA66TZC+ElfkgA+mZ+TgHw/rBuqjoRkZeMtNkI6FARCINQ/IeI8FbFPOcVkldOtzY0gJvQLkeHBMBViosIG1eu5rW189khAcwAVAD1e/LamPWrsOa3iwoFwDHJ+cJzGecvU6i5ufE/Rof/sc/62SFFwDQXbYDYL4ymwQYwYvXurNrQgvM/rLzl8ixFZBJKL1tllfpTUe4gQ9nzG/NG3TS5LjSUMqvfAmCdOS+7EgGvmbT6OfoI/AI45RJAJRGMxwAAAABJRU5ErkJggg==); background-position:center; background-repeat:no-repeat; background-size:20px; display:block; width:30px; } .audiofns { display:flex; } .audiotrack { flex:1; position:relative; cursor:default; } .playing .audiopause{ display:block; } .paused .audioplay { display:block; } .loading .audioload { display:flex; } .audiotrack { flex:1; height:30px; background-color:rgba(0,0,0,.2); position:relative; } .audioposition { height:100%; position:absolute; width:2px; background-color:white; box-shadow:0 0 3px white; transition:all .2s; } .audiops { height:100%; position:absolute; width:1px; background-color:white; opacity:.5; } #topinfo { display:flex; align-items:center; flex-shrink:0; padding:5px 0; } #playmode { border:none; background-color:transparent; background-position:center; background-repeat:no-repeat; background-size:contain; width:40px; height:40px; margin-right:10px; outline:none; opacity:.6; transition:all .2s; } #playmode:hover { opacity:1; } #playmode.loop { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACzElEQVRoQ+1Z7XHVMBDcrQCogHQAqYBQAaECSAWECoAKCBUQKkioAFIBSQekAkIFxyxz8sh6kuU3T07kmXe/Zel270O6NbFy48r9xx5A6wia2VcAbwGcA3hP8m7qjK4iYGZHAH5EDl8DeDkFojcAjwH8BPAsAXFCUmA2rCsA8s7MciCURorEBojuAFRAqCZUG4PNBuDMvAJwDOAAwPPWBTxzv8M4ElUA7vg7AKcAFN6HNkXhLDgxCcDMxPKFM546/hdAtrAaIVSUnyZ73ZAcRb4IwFuanI9Zv/L+fFnrz7uAcOLUTuOzv5HU/TCyLIDMBmL7mKRa3KJmZqoxERdb1nktKAH4FRXpjTv/e1HPfXMz+zOH+WINmJmK9bMvEPNHpUtkCUBmproKF1mR+SkAMQO6AUd9dwmn4z296ynXr+ek7CiFkvy7JalO0LWlAMT2G/d41G97RZECUJd54c7q7bF419mVmBTAkP8kq7f0roe3+D4FYEN17wG04Le+x2oi4B1Sr+HvJC+z94CZdZtC0Q19R/LJGgFkyU1TSKFRmKpXeD07264oZccqWqWo2ANomxDb77bqCPiApRlFdkVSAth/W0UNJDOK7gFNbasCoPk4sD6aUWZFwAd8TUlqr5Ni6/bZPf1FopdqQjyIfagCiNRinaQp6bC1k6X9fDoT+0FK+UTyY7y+pgsFqTt8c29TmjsvdSKkzgb7xSL2j+X8UCyO4HX8kFoqEmamUVbOB+aL4sJGBDJhk5/3ok6YWdBeYwFLZ5+WxIX0LSQlLM65QLI0oSV1ITGeExBuXZMqSpgpABXIh6VSY4t9xboE3LNa15uSVbY4r8lSKYBiWkLCbO01VwPKPxVwbOckT5q42XiTkjYqEArho+i8LkFMyetqYQpn1yBqF5lAaEobfjT0phfNeUqotQqEFLsvJKVed2NVAN14WnBkD+ChI/QPgyYlQIajvcoAAAAASUVORK5CYII=); background-size:30px; } #playmode.repeat { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADE0lEQVRoQ+1Z7XHVMBDcqwCogHQQUgGhAkIFJBUQKgAqIKmAUEFCBSQVkHRAKiBUcMwyJ89ZT7Jkx3bsGeu3n7S79yHdPsHKl6wcPzYCY0dQVb8BOAZwAeCjiDx0nbGoCKjqIYCfDvAtgDddJJZG4DmAawD7EYkTESGZnbUoAkSnqikSTCNGYofE4ggUSLAmWBvNqiZgyrwFcARgD8CrsQu4cr8DH4kiAQP+AcApAIb3qRejcBZAdBJQVap8aYrHwP8CSBbWSAwZ5ZfRXnci0op8loC1NIL3qt9Yf74q9efHkDDh2E792d9FhPdDayUJJDag2kciwhY36VJV1hiF8ysJnh/kCPxyRXpn4H9Pitw2V9U/Ncpna0BVWaxf7QMqf5i7RKYgpKqsq3CRZZXvIuAV4A3Y6rtTgPZ7Wtdjrt/WpGwrhaL8uxcRdoJBy7Vf/v6mBsyQg2ICVPu9bdTqt302tw7GV2UQ4IuIfO6zR+23MQF2mdf2Y749encdVSXQTxGA2Qg0+S8ixVs6VklVmbtUnuscAG9wrtkIaFPdwwjw4mEXORWRK1UN+62DQCIiG4EginVIvoZ/MLrJe8CFHENqYMoIuBv6QURerJFAsj7jNsrQMEzFK7ymT49ZxLns6N0qa4C7vB2tiDcCfZTfIhCpZQMWZ5TwMKQB9n+togaiGYX3AKe2WQiEF+j1kIehS0XOx0H11oxSFQF7HnNKYnvtNFuH1ErXbyK/lBPinsdQJODcYp7DKelgbJC5/WwoovrBStl5FJZ8oWB1hzMeNaX1IW7g6U6E1NlRP1vE9mOCb4rFDn/nH1J9APX5VlU5yRF8UD5rLuxEIBE2nj2LO6GqwXv1BhbP5nyRNBfitxAHEp9zQTh6QlP6QlQ8ZSDcmyeVtTBjAql5tk/0x/qWqtPAPSt1vS5bZSwwtfvQAaTSNBKqvddUDfjBPBx+ISIntUjm/C7njZIEQ/jMgVkkiS57nS2M4Vw0idJFRhKc0po/GsaYlcdMsZqnBFsrSdCxOxcRuteLWUUCi0GaAbIReOoI/QNAeHtArFvxvAAAAABJRU5ErkJggg==); background-size:30px; } #playmode.shuffle { background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADgUlEQVRoQ+2Zi23UQBBAZyoAKoAOCBUQKoBUQFIBoQKSCggVkFRAUgFQAZcO0gGhgkHvGJ/G67W93vMRn5SVokh36/W8+e7Mqez50j2XXx4BHtqCi7SAmb0TkZci8kVV74eUtDgAMzsUke8u9EpE3gxBLBEA7X8LWgfiSFXvcpZYHABCmtmpiHwOAuNGWAKY1lokgEMci8jXMYgWgJnx0Ht/CGqIV6p687+yjZm98AA+EBEs8TSB+Kiql81nKcDv5IFmHzA8dD6WFWpBzQzF4f/8Da17VX3WB4DGSV99C5BTVb2qFTR9zrMO/o7GS9atqm72dmLAD2QDpuP/28ypl6p6UvK2oT1m9klEzjJ7cFmyDlaJLvRHRA5jMI8GsZlxALHBi56El43m6BHhCVDOjevcXRVLUwuiVW5xrzSdjgI0p3twXSQWqYIws1T4lnBmhvAUtGbxPZrvVOVigABCMDeZio8nQWSEJ56Iq7VwZobWf5UIz57JAP6SFOJaVY/GYiInvKq23MhdFqU8F5FezTfvqgLogRgM7IzwP1U1usmG3yEOVPXHmFKqARziOomJLESPz2d9ekzg9PttAchQaCnWjhaEV/d4JRh1iykQWwG4FQYhkovZrMJXB3GqIffZ1BJcO9ZFyiEAvZj7KrK1BUJ6zVniJF68prhG6d7ZAAbcaacQswI8BMTsAKGaEhPx7rQTS8wCEK7EXAdoOFZ+JUghaAtHi1Op/8+ShVxQLl/NtfdGVddNSQait7edInTcu5UFMsJzNhMEKvR67RqiGqBH+Kyf7xKiCmCK8DWW8MLI9YT2cd7JXI3wASIdWiHcq9hlufBNNzbaa0yygGcbpmaxTyXr0KkVrczlriVkpqEZhCgGMLMP3GUSKa/ShqSEIgNBA0/8rFOsmRV3fYMAbs7XLjgDp7iYHDN4qloZCM5BcM6ljhRBpIMtOiQEbjqlXMfEaOM4psoqgn+app3EqrFicxwWwRrETHTXjjuVTuYaGWnAz/omxTUgPu1A2yiuZLUsvwFwd4E81QYapzDNKngqqScIXDI3SIvbW710zoUat8Fcd7mRdomaave4IpGB8UrzS008rlUsi7NQrUC1z3l8MDONMdCp9IsE6MlQ2WvK4gAyhWww6y0RIF43OtPo1CUXB+CVmGxEEDPF6PwuFiEWCTAl8B8BpmhrF3v33gJ/ARQ6qUBrzes6AAAAAElFTkSuQmCC); background-size:30px; } #playingtitle { margin:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; padding:0; cursor:pointer; } #playingtitle:hover { text-decoration:underline; } ` ); var audioitems = $( ` <div id='audioitems' :style="{left:this.mpos.left+'px',top:this.mpos.top+'px'}" @mousedown="mDown"> <div id="topinfo"> <button id="playmode" :class="playmode" @click="playModeSwitch"></button> <h3 id="playingtitle" @click="showPlayingItem">{{currentaudioobj.title?"Now Playing : "+currentaudioobj.title:""}}</h3> </div> <div id="audiolist"> <div :class="['audiowrap',i.status]" v-for="i in audioobjs"> <div class='imgwrap'> <img class='audioimg' :src='i.image'> <div class="audiocontrol audioplay" @click="currentaudioobj.domobj&¤taudioobj.domobj.pause();i.domobj.play()"></div> <div class="audiocontrol audiopause" @click="i.domobj.pause()"></div> <div class="audiocontrol audioload"></div> </div> <div class='audioinfo'> <div class='audiotitle' :title="i.title">{{i.title}}</div> <div class='audioalbum' :title="i.album">{{i.album}}</div> <div class='audioartist' :title="i.artist">{{i.artist}}</div> <div class="audiofns" v-if="i.src"> <div class="audiotrack" @click="i.domobj.currentTime=$event.offsetX/$event.target.clientWidth*i.totaltime"> <div class="audioposition" :style="{left:i.currenttime/i.totaltime*100+'%'}"></div> </div> <a class="audiodownload" :href="i.src" :download="getFormatedSongFilename(i)"></a> </div> </div> <audio preload class='audiocloned' :src="i.src" v-if="i.src" v-bindele="i" @loadedmetadata="i.totaltime=$event.srcElement.duration;i.status='paused'" @timeupdate="i.currenttime=$event.target.currentTime" @play="pausePandora();i.status='playing';currentaudioobj=i;" @pause="currentaudioobj={};i.status='paused'" @ended="i.status='paused';playNext(i)"></audio> </div> </div> </div> ` ); $("body").append(styleele).append(audioitems); Vue.directive("bindele",{ bind:function(el,binding){ binding.value.domobj=el; } }); window.vm = new Vue({ el: "#audioitems", data: { playmode: "loop", mpos: { start: { x: 0, y: 0 }, offset: { x: 0, y: 0 }, last: { x: 0, y: 0 }, movable: false, left:parseFloat(getComputedStyle($("#audioitems")[0]).left.replace("px","")), top:parseFloat(getComputedStyle($("#audioitems")[0]).top.replace("px","")) }, audiourls: [], audioobjs: [], currentaudioobj: {}, pandora:window.Pandora }, methods: { mDown:function(e){ this.mpos.start.x = e.clientX; this.mpos.start.y = e.clientY; this.mpos.last.x = e.clientX; this.mpos.last.y = e.clientY; this.mpos.movable = true; }, mMove:function(e){ if (!this.mpos.movable) return; this.mpos.offset.x = e.clientX - this.mpos.last.x; this.mpos.offset.y = e.clientY - this.mpos.last.y; this.mpos.left+=this.mpos.offset.x; this.mpos.top+=this.mpos.offset.y; this.mpos.last.x = e.clientX; this.mpos.last.y = e.clientY; }, mUp:function(){ this.mpos.movable = false; }, getAlbum: function () { //Pull the album information var album = $("[data-qa='playing_album_name']"); //Make sure only the current album is passed on. // Only take the first in the array to avoid extras that can come in because of timing issues // The additional one is from the previous song if (album.length > 1) { album = album.first().text(); } else if (album.length == 1) { album = album.text(); } else { album = ""; } return album; }, getAudioURL: function () { var audios = document.querySelectorAll("body>audio"), that = this; $.each(audios, function (index, item) { if (that.audiourls.indexOf(item.src) == -1) { that.audiourls.push(item.src); } }); }, getAudio: function (audioobj) { var that=this; var xhr = new XMLHttpRequest(); xhr.open("get", audioobj.httpsrc); xhr.responseType = "blob"; xhr.onreadystatechange = function () { if (this.status == 200 && this.readyState == 4) { audio = this.response; //Get the url of the audio object audiourl = URL.createObjectURL(audio); //Set the audio element with the url to get it audioobj.src = audiourl; } else if (this.status != 200) { that.audioobjs.splice(that.audioobjs.indexOf(audioobj),1); } }; xhr.send(); }, pausePandora:function(){ window.Pandora?Pandora.pauseTrack():null; }, playNext: function (last) { switch (this.playmode) { case "repeat": last.domobj.play(); break; case "shuffle": this.audioobjs.filter(function(v){return v!=last})[Math.round(Math.random() * (this.audioobjs.length - 2))].domobj.play(); break; case "loop": this.audioobjs.indexOf(last) == this.audioobjs.length - 1 ? (this.audioobjs[0].domobj.play()) : (this.audioobjs[this.audioobjs.indexOf(last) + 1].domobj.play()); break; } }, getFormatedSongFilename: function (obj) { //What separates artist, album, and track in the filename var downloadElementSeparator = " - "; //Include a spot for an album, if missing, in the download filename. var includeAlbumPlaceholder = true; var filename = this.sanitizeString(downloadElementSeparator, obj.artist) + downloadElementSeparator; //Add the artist if (obj.album) { //See if we have an album to add filename = filename + this.sanitizeString(downloadElementSeparator, obj.album) + downloadElementSeparator; // Album object exists so add it } else if (includeAlbumPlaceholder == true) { // Album object does not exist, see if we need to add an album placeholder filename = filename + downloadElementSeparator; // Add album placeholder by just adding another separator } filename = filename + this.sanitizeString(downloadElementSeparator, obj.title) + ".m4a"; //Add title and extension return filename; }, sanitizeString: function (downloadElementSeparator, dirtyString) { //Remove any illegal characters based on the operating system. dirtyString = dirtyString.replace(/[*?"|]/g, ""); //windows filename restrictions -> replace with space * ? | dirtyString = dirtyString.replace(/["]/g, "''"); //windows filename restrictions -> replace with '' " dirtyString = dirtyString.replace(/[<>]/g, "_"); //windows filename restrictions -> replace with underscore < > dirtyString = dirtyString.replace(/[\\\/]/g, ","); //windows filename restrictions -> replace with comma \ / dirtyString = dirtyString.replace(/[:]/g, ";"); //windows filename restrictions -> replace with semicolon : var sepRegEx = new RegExp(downloadElementSeparator, "g"); //create RegExp object to find downloadElementSeparator dirtyString = dirtyString.replace(sepRegEx, "-"); //downloadElementSeparator -> replace with dash - return dirtyString; }, playModeSwitch: function () { switch (this.playmode) { case "loop": this.playmode = "repeat"; break; case "repeat": this.playmode = "shuffle"; break; case "shuffle": this.playmode = "loop"; } }, showPlayingItem:function(){ $("#audiolist").animate({scrollTop:this.currentaudioobj.domobj.parentElement.offsetTop},500); } }, watch: { audiourls: function () { var httpsrc = this.audiourls[this.audiourls.length - 1], that = this, audioobj = { domobj: null, title: $("[data-qa='mini_track_title']").text(), album: that.getAlbum(), artist: $("[data-qa='mini_track_artist_name']").text(), image: $("[data-qa='mini_track_image']").prop("src"), httpsrc: httpsrc, src: "", currenttime: 0, totaltime: 0, status: "loading" }; if (audioobj.title=="Advertisement") return; this.audioobjs.push(audioobj); this.getAudio(audioobj); } }, mounted: function () { setInterval(this.getAudioURL, 1000); $("body").on("mousemove",function(e){ this.mMove(e); }.bind(this)); $("body").on("mouseup",function(e){ this.mUp(e); }.bind(this)); } }); }); -
1
WebRTC Control
https://addons.mozilla.org/en-US/firefox/addon/webrtc-control/?utm_content=addons-manager-reviews-link&utm_medium=firefox-browser&utm_source=firefox-browser https://mybrowseraddon.com/webrtc-control.html -
-
1
Upload to Imgur
https://addons.mozilla.org/en-US/firefox/addon/upload_to_imgur/?utm_content=addons-manager-reviews-link&utm_medium=firefox-browser&utm_source=firefox-browser -
-
1
Video DownloadHelper
https://addons.mozilla.org/en-US/firefox/addon/video-downloadhelper/?utm_content=addons-manager-reviews-link&utm_medium=firefox-browser&utm_source=firefox-browser https://v10.downloadhelper.net/
-
