|
1 | 1 | // ==UserScript== |
2 | 2 | // @name Digitally Imported Userscript |
3 | 3 | // @namespace LTKDIFMU |
4 | | -// @version 2017.3.20 |
| 4 | +// @version 2017.3.24 |
5 | 5 | // @author LethaK Maas |
6 | 6 | // @description Removes afk popup and minimize ads if possible |
7 | 7 | // @include http://www.di.fm* |
|
11 | 11 | // @icon http://i.imgur.com/7yj2PGY.png |
12 | 12 | // @grant none |
13 | 13 | // ==/UserScript== |
14 | | -setTimeout(function () { |
15 | | - setInterval(function(){ |
16 | | - // Member Premium Emulator (less ads) |
17 | | - try{ |
18 | | - di.app.MemberApp.Controller.models.member.attributes.user_type = "premium"; |
19 | | - di.app.MemberApp.Controller.models.member.attributes.confirmed = true; |
20 | | - di.app.MemberApp.Controller.models.member.attributes.confirmed_at = di.app.MemberApp.Controller.models.member.attributes.created_at; |
21 | | - }catch(err){} |
22 | | - di.app.module("WebplayerApp.IcecastPlayer.player.member").getAccess = function() { console.warn('[DIUserscript] member.getAccess: %s', 'premium'); return "premium"; }; |
| 14 | +(function(){ |
| 15 | + |
| 16 | + console.warn('[DIUserscript] Initializing'); |
| 17 | + |
| 18 | + window.trackCandidate = null; |
| 19 | + |
| 20 | + |
| 21 | + var defineProp = function(obj, propName, propValue){ |
| 22 | + delete obj[propName]; |
| 23 | + Object.defineProperty(obj, propName, { |
| 24 | + value: propValue, |
| 25 | + writable : false, |
| 26 | + enumerable : true, |
| 27 | + configurable : false |
| 28 | + }); |
| 29 | + return obj; |
| 30 | + }; |
| 31 | + |
| 32 | + var WebplayerApp = di.app.module("WebplayerApp"); |
| 33 | + |
| 34 | + // Ads Adblocks... |
| 35 | + defineProp(WebplayerApp.Ads.Adblocks, 'logger', new di.log.Console("(DIUserscript) WebplayerApp.Ads.Adblocks ")); |
| 36 | + |
| 37 | + defineProp(WebplayerApp.Ads.Adblocks, 'adHasVisual', function(){ |
| 38 | + console.warn('[DIUserscript] Ads.Adblocks.adHasVisual: false'); |
| 39 | + return false; // Prevents the player popup from displaying during 'Sponsored Message' ad |
| 40 | + }); |
| 41 | + |
| 42 | + // Ads Supervisor... |
| 43 | + NS('di.app.WebplayerApp.Ads.Supervisor'); |
| 44 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'logger', new di.log.Console("(DIUserscript) WebplayerApp.Ads.Supervisor ")); |
| 45 | + |
| 46 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'selectAds_', function(e){ |
| 47 | + console.warn('[DIUserscript] Ads.Supervisor.selectAds_: []', this); |
| 48 | + return []; |
| 49 | + }); |
| 50 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'requestAd', function(e){ |
| 51 | + console.warn('[DIUserscript] Ads.Supervisor.requestAd: false'); |
| 52 | + return jQuery.Deferred().reject().promise(); |
| 53 | + }); |
| 54 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'eligibleForPreroll', function(){ |
| 55 | + console.warn('[DIUserscript] Ads.Supervisor.eligibleForPreroll: false'); |
| 56 | + return false; |
| 57 | + }); |
| 58 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'eligibleForMidroll', function(){ |
| 59 | + console.warn('[DIUserscript] Ads.Supervisor.eligibleForMidroll: false'); |
| 60 | + return false; |
| 61 | + }); |
| 62 | + defineProp(di.app.WebplayerApp.Ads.Supervisor, 'startAd', function(){ |
| 63 | + console.warn('[DIUserscript] Ads.Supervisor.startAd: void 0'); |
| 64 | + return jQuery.Deferred().reject().promise(); |
| 65 | + }); |
| 66 | + |
| 67 | + // AdManagers ! |
| 68 | + /* |
| 69 | + (AudioAddict.WP.wp.adManager) instanceof (window.AdManager) // true |
| 70 | + (AudioAddict.WP.AdManager) instanceof (window.AdManager) // false, object |
| 71 | + (AudioAddict.WP.wp.adManager) // object |
| 72 | + */ |
| 73 | + |
| 74 | + // Silence ads whenever they get played ... |
| 75 | + jQuery(document).off("ad-begin.diu").on("ad-begin.diu", function(e, x){ |
| 76 | + console.warn('[DIUserscript] Ad begin (muting)', e, x); |
| 77 | + if(trackCandidate!==null){ |
| 78 | + //AudioAddict.WP.wp.adapter.load(trackCandidate); |
| 79 | + } |
| 80 | + AudioAddict.WP.wp.tempMute(); |
| 81 | + }); |
| 82 | + jQuery(document).off("ad-end.diu").on("ad-end.diu", function(e, x){ |
| 83 | + console.warn('[DIUserscript] Ad end (unmuting)', e, x); |
| 84 | + AudioAddict.WP.wp.tempUnMute(); |
| 85 | + }); |
| 86 | + |
| 87 | + // WebPlayer... |
| 88 | + |
| 89 | + /* |
| 90 | + (AudioAddict.WP.wp) instanceof (AudioAddict.WP.WebPlayer) //true |
| 91 | + (AudioAddict.WP.wp.channel) instanceof (window.Channel) // true |
| 92 | + */ |
| 93 | + |
| 94 | + NS('AudioAddict.WP.WebPlayer').prototype.logger = new di.log.Console("(DIUserscript) AudioAddict.WP.WebPlayer"); |
| 95 | + |
| 96 | + // Member... |
| 97 | + defineProp(window, 'Member', function(e) { |
| 98 | + if (this.getAccess = function() { |
| 99 | + console.warn('[DIUserscript] Member getAccess (premium) instead of ', n); |
| 100 | + return 'premium'; |
| 101 | + } |
| 102 | + , |
| 103 | + this.setAccess = function(e) { |
| 104 | + e != n && (n = e, |
| 105 | + $(document).trigger("member-access", 'premium')); |
| 106 | + } |
| 107 | + , |
| 108 | + this.getListenKey = function() { |
| 109 | + return i; |
| 110 | + } |
| 111 | + , |
| 112 | + this.setListenKey = function(e) { |
| 113 | + e != i && (i = e ? e : "", |
| 114 | + $(document).trigger("member-listenkey", e)); |
| 115 | + } |
| 116 | + , |
| 117 | + this.getSpeed = function() { |
| 118 | + var e = t.wp.streamlist.getSpeeds(t.wp.member.getAccess(), "webplayer"); |
| 119 | + return e[r] && "object" == typeof e[r] ? r : ($.log(LogPrefix() + "(DIUserscript) AudioAddict.WP.Member: Current speed {" + r + "} is invalid; defaulting to first available {" + Object.keys(e)[0] + "}"), |
| 120 | + r = Object.keys(e)[0]); |
| 121 | + } |
| 122 | + , |
| 123 | + "undefined" == typeof e) |
| 124 | + throw "(DIUserscript) AudioAddict.WP.Member: FATAL: No parameters provided"; |
| 125 | + if ("premium" == e.access && !e.listenKey) |
| 126 | + throw "(DIUserscript) AudioAddict.WP.Member: FATAL: listenKey is required for Premium users"; |
| 127 | + var t = NS("AudioAddict.WP") |
| 128 | + , n = "premium"/*e.access*/ |
| 129 | + , i = e.listenKey ? e.listenKey : "" |
| 130 | + , r = e.speed; |
| 131 | + $.log(LogPrefix() + "(DIUserscript) AudioAddict.WP.Member: Initialized"); |
| 132 | + }); |
23 | 133 |
|
24 | 134 |
|
25 | | - }, 100); |
26 | 135 | setInterval(function(){ |
| 136 | + // Removing Premium ad display |
| 137 | + jQuery('.premium-upsell').remove(); |
| 138 | + |
| 139 | + // Breaking anti AFK system |
| 140 | + di.eventbus.trigger('user:active'); |
| 141 | + di.app.timedAlerts.stop(); |
| 142 | + $('.modal-btn.continue').click(); |
| 143 | + $('.modal-btn.countdown-btn').click(); |
| 144 | + }, 1000); |
27 | 145 |
|
28 | | - try{ |
29 | | - var WebplayerApp = di.app.module("WebplayerApp"); |
30 | | - |
31 | | - |
32 | | - // Ads Blocks |
33 | | - WebplayerApp.Ads.Adblocks.logger = new di.log.Console("WebplayerApp.Ads.Adblocks [DIUserscript]"); |
34 | | - WebplayerApp.Ads.Adblocks.onAdBlockEnd = function(){ |
35 | | - console.warn('[DIUserscript] Adblocks.onAdBlockEnd'); |
36 | | - this.adblockActive = !1; |
37 | | - di.eventbus.trigger("webplayer:adblock:end"); |
38 | | - }; |
39 | | - //WebplayerApp.Ads.Adblocks.onAdBegin = function(e, t) { |
40 | | - // console.warn('[DIUserscript] Adblocks.onAdBegin: void'); |
41 | | - // return void 0; |
42 | | - //}; |
43 | | - WebplayerApp.Ads.Adblocks.adHasVisual = function(){ |
44 | | - console.warn('[DIUserscript] Adblocks.adHasVisual: false'); |
45 | | - return false; |
46 | | - }; |
47 | | - WebplayerApp.Ads.Adblocks._events.start[0] = function(e){ |
48 | | - console.warn('[DIUserscript] Adblocks._events.start: void 0; (premium)'); |
49 | | - return void 0; |
50 | | - }; |
51 | | - |
52 | | - di.app.WebplayerApp.Ads.Supervisor._events.start[0].callback = function(e){ |
53 | | - console.warn('[DIUserscript] Ads.Supervisor._events.start: void 0; (premium)'); |
54 | | - return void 0; |
55 | | - }; |
56 | | - |
57 | | - |
58 | | - // Ads Supervisor |
59 | | - WebplayerApp.Ads.Supervisor.logger = new di.log.Console("WebplayerApp.Ads.Supervisor [DIUserscript]"); |
60 | | - WebplayerApp.Ads.Supervisor.supervise = function(e){}; |
61 | | - WebplayerApp.Ads.Supervisor.eligibleForPreroll = function(){ |
62 | | - console.warn('[DIUserscript] Ads.Supervisor.eligibleForPreroll: false'); |
63 | | - return false; |
64 | | - }; |
65 | | - WebplayerApp.Ads.Supervisor.eligibleForMidroll = function(){ |
66 | | - console.warn('[DIUserscript] Ads.Supervisor.eligibleForMidroll: false'); |
67 | | - return false; |
68 | | - }; |
69 | | - WebplayerApp.Ads.Supervisor.requestAd = function(e){ |
70 | | - console.warn('[DIUserscript] Ads.Supervisor.requestAd: resolved promise'); |
71 | | - return jQuery.Deferred().resolve().promise(); |
72 | | - }; |
73 | | - WebplayerApp.Ads.Supervisor.selectAds_ = function(e){ |
74 | | - console.warn('[DIUserscript] Ads.Supervisor.selectAds_: []'); |
75 | | - return []; |
76 | | - }; |
77 | | - WebplayerApp.Ads.Supervisor.startAd = function(e){ |
78 | | - console.warn('[DIUserscript] Ads.Supervisor.selectAds_: []'); |
79 | | - //return jQuery.Deferred().resolve().promise(); |
80 | | - }; |
81 | | - |
82 | | - // Silence ads whenever they get played ... |
83 | | - jQuery(document).off("ad-begin.diu").on("ad-begin.diu", function(e, x){ |
84 | | - console.warn('[DIUserscript] Ad begin (muting)', e, x); |
85 | | - //jQuery(document).trigger("metadata-track-complete", [jQuery.extends(x, {duration: 1000, ended: x.started+1000, length: 1})]); |
86 | | - //AudioAddict.WP.wp.mute(); |
87 | | - di.app.WebplayerApp.IcecastPlayer.player.mute(); |
88 | | - }); |
89 | | - jQuery(document).off("ad-end.diu").on("ad-end.diu", function(e, x){ |
90 | | - console.warn('[DIUserscript] Ad end (unmuting)', e, x); |
91 | | - //AudioAddict.WP.wp.unMute(); |
92 | | - di.app.WebplayerApp.IcecastPlayer.player.unMute(); |
93 | | - }); |
94 | | - |
95 | | - //// Emptying ad providers |
96 | | - //var defaultProvider = function(e){ |
97 | | - // if (this.type = "default", this.isReady = e.yes, this.isExternal = e.no, this.hasBanner = e.yes, this.begin = function() { |
98 | | - // return console.warn("[DIUserscript] AudioAddict.WP.AdProvider_X: Beginning ad"), t.show(), this |
99 | | - // }, this.end = function() { |
100 | | - // return console.warn("[DIUserscript] AudioAddict.WP.AdProvider_X: Ending ad"), t.hide(), this |
101 | | - // }, "undefined" == typeof e) |
102 | | - // throw "[DIUserscript] AudioAddict.WP.AdProvider_X: FATAL: Ad manager reference object not provided"; |
103 | | - // var t = $("#adprovider-default").appendTo(e.canvas()).hide() |
104 | | - //}; |
105 | | - // |
106 | | - // |
107 | | - ////di.eventbus.trigger = function (e, tpl, tplB){ |
108 | | - //// console.warn('EVENTBUS', e); |
109 | | - ////}; |
110 | | - // |
111 | | - //NS("AudioAddict.WP.AdManager.providers").default = defaultProvider; |
112 | | - //NS("AudioAddict.WP.AdManager.providers").internal = null; |
113 | | - NS("AudioAddict.WP.AdManager.providers").adswizz = null; |
114 | | - |
115 | | - //NS("AudioAddict.WP.AdManager").providers = null; |
116 | | - //NS("AudioAddict.WP.AdManager.providers"); |
117 | | - //di.app.module("WebplayerApp.app.webplayer").submodules.ads = null; |
118 | | - //di.app.webplayer.ads = null; |
119 | | - |
120 | | - |
121 | | - // //NS("AudioAddict.WP.wp").initAdManager = function(){ return null;}; |
122 | | - // //di.app.WebplayerApp.Ads.Provider = null; |
123 | | - // //AudioAddict.WP.wp.adManager.stop(); |
124 | | - // //AudioAddict.WP.adManager = null; |
125 | | - // //AudioAddict.WP.wp.adManager = null; |
126 | | - // //NS("AudioAddict.WP").AdManager = null; |
127 | | - // //NS("AudioAddict.WP").AdProvider = null; |
128 | | - // //jQuery('[id^="adprovider"]').remove(); |
129 | | - |
130 | | - // Removing Premium ad display |
131 | | - jQuery('.premium-upsell').remove(); |
132 | | - |
133 | | - // Breaking anti AFK system |
134 | | - di.app.timedAlerts.stop(); |
135 | | - di.eventbus.trigger('user:active'); |
136 | | - $('.modal-btn.continue').click(); |
137 | | - $('.modal-btn.countdown-btn').click(); |
138 | | - |
139 | | - } catch(err){ |
140 | | - console.error('[DIUserscript] An error occured: %s', err.message, err); |
141 | | - } |
142 | 146 |
|
143 | | - }, 1000); |
144 | | -}, 2000); |
| 147 | + |
| 148 | + // R&D |
| 149 | + //jQuery('#player').get(0)._stop(); |
| 150 | + |
| 151 | + //jQuery(document).on('add-new', function(e, d){ |
| 152 | + // console.warn('[DIUserscript] on add-new (nope)', e, d); |
| 153 | + //}); |
| 154 | + |
| 155 | + // Trying to bypass audio ads |
| 156 | + jQuery(document).off("metadata-load.diu").on("metadata-load.diu", function(e,d){ |
| 157 | + console.warn('[DIUserscript] metadata-load.diu trackCandidate', e, d); |
| 158 | + trackCandidate = d; |
| 159 | + }); |
| 160 | + |
| 161 | + |
| 162 | +})(); |
0 commit comments