From d68d9b3e15364fea97b036a537519a72b1269a8e Mon Sep 17 00:00:00 2001 From: lone-cloud Date: Sun, 22 Nov 2015 11:44:34 -0800 Subject: [PATCH] notify the user about too many soundcloud cdn fuck ups --- app/pods/components/music-tab/component.js | 28 ++++++++++++------- .../components/music-tab/mixins/helpers.js | 4 +++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/pods/components/music-tab/component.js b/app/pods/components/music-tab/component.js index 6e4c830..fe0f822 100644 --- a/app/pods/components/music-tab/component.js +++ b/app/pods/components/music-tab/component.js @@ -148,24 +148,32 @@ export default Em.Component.extend(helperMixin, visualizerMixin, { audio.crossOrigin = "anonymous"; audio.oncanplay = ()=>{ this.set('timeTotal', Math.floor(audio.duration)); + this.set('soundCloudFuckUps', 0); }; audio.onerror = (event)=>{ var playQueuePointer =this.get('playQueuePointer'), song = this.get('playQueue')[playQueuePointer]; - if(song.local){ - this.send('removeAudio', playQueuePointer); + if(this.get('soundCloudFuckUps') >= this.get('maxSoundCloudFuckUps')) { + this.get('notify').alert({html: this.get('tooManySoundCloudFuckUps')}); + this.send('play'); + this.set('soundCloudFuckUps', 0); } else { - this.send('next', true); - } + if(song.local){ + this.send('removeAudio', playQueuePointer); + } else { + this.send('next', true); + } - if(event.target.error.code === 2){ - this.get('notify').alert({html: this.get('failedToDecodeFileHtml')(song.fileName)}); - } else { - this.get('notify').alert({html: this.get('failedToPlayFileHtml')(song.fileName)}); - } + if(event.target.error.code === 2){ + this.get('notify').alert({html: this.get('failedToDecodeFileHtml')(song.fileName)}); + } else { + this.get('notify').alert({html: this.get('failedToPlayFileHtml')(song.fileName)}); + } - this.set('usingBeatPreferences', false); + this.set('usingBeatPreferences', false); + this.incrementProperty('soundCloudFuckUps'); + } }; audio.ontimeupdate = ()=>{ this.set('timeElapsed', Math.floor(audio.currentTime)); diff --git a/app/pods/components/music-tab/mixins/helpers.js b/app/pods/components/music-tab/mixins/helpers.js index 0c98017..e914d2a 100644 --- a/app/pods/components/music-tab/mixins/helpers.js +++ b/app/pods/components/music-tab/mixins/helpers.js @@ -82,6 +82,7 @@ export default Em.Mixin.create({ SC_CLIENT_ID: 'aeec0034f58ecd85c2bd1deaecc41594', notFoundHtml: '', scUserNotSupportedHtml: '', + tooManySoundCloudFuckUps: '', notStreamableHtml(fileNames){ var html = ''; @@ -142,6 +143,9 @@ export default Em.Mixin.create({ ambienceWorkedLights: [], ambienceWorkedLightsHandles: {}, + soundCloudFuckUps: 0, + maxSoundCloudFuckUps: 3, + largeArtworkPic: function(){ var pic = null, currentVisName = this.get('currentVisName'),