Skip to content

Commit d99eaa5

Browse files
committed
v2017.3.24
1 parent 9f3839b commit d99eaa5

File tree

2 files changed

+146
-128
lines changed

2 files changed

+146
-128
lines changed

DIU.meta.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name Digitally Imported Userscript
33
// @namespace LTKDIFMU
4-
// @version 2017.3.20
4+
// @version 2017.3.24
55
// @author LethaK Maas
66
// @description Removes afk popup and minimize ads if possible
77
// @include http://www.di.fm*

DIU.user.js

Lines changed: 145 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name Digitally Imported Userscript
33
// @namespace LTKDIFMU
4-
// @version 2017.3.20
4+
// @version 2017.3.24
55
// @author LethaK Maas
66
// @description Removes afk popup and minimize ads if possible
77
// @include http://www.di.fm*
@@ -11,134 +11,152 @@
1111
// @icon http://i.imgur.com/7yj2PGY.png
1212
// @grant none
1313
// ==/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+
});
23133

24134

25-
}, 100);
26135
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);
27145

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-
}
142146

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

Comments
 (0)