mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Fallback with iframed soundcloud player for rate-limit reached
- Messes up history of current tab, but it's better than not playing any music
This commit is contained in:
@@ -2,6 +2,7 @@ var gulp = require('gulp'),
|
||||
gutil = require('gulp-util'),
|
||||
uglify = require('gulp-uglify'),
|
||||
//sourcemaps = require('gulp-sourcemaps'),
|
||||
gutil = require('gulp-util'),
|
||||
concat = require('gulp-concat'),
|
||||
cssnano = require('gulp-cssnano');
|
||||
|
||||
@@ -38,7 +39,7 @@ gulp.task('js', function () {
|
||||
compress: true,
|
||||
enclose: true,
|
||||
}))
|
||||
|
||||
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
|
||||
//.pipe(sourcemaps.write('maps'))
|
||||
.pipe(gulp.dest('server/public/assets/dist'));
|
||||
});
|
||||
@@ -52,6 +53,7 @@ gulp.task('embed', function () {
|
||||
compress: true,
|
||||
enclose: true
|
||||
}))
|
||||
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
|
||||
//.pipe(sourcemaps.write('maps'))
|
||||
.pipe(gulp.dest('server/public/assets/dist'));
|
||||
});
|
||||
@@ -65,6 +67,7 @@ gulp.task('token', function() {
|
||||
compress: true,
|
||||
enclose: true
|
||||
}))
|
||||
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
|
||||
|
||||
//.pipe(sourcemaps.write('maps'))
|
||||
.pipe(gulp.dest('server/public/assets/dist'));
|
||||
@@ -79,6 +82,7 @@ gulp.task('callback', function () {
|
||||
compress: true,
|
||||
enclose: true
|
||||
}))
|
||||
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
|
||||
|
||||
//.pipe(sourcemaps.write('maps'))
|
||||
.pipe(gulp.dest('server/public/assets/dist'));
|
||||
@@ -97,6 +101,7 @@ gulp.task('remotecontroller', function () {
|
||||
compress: true,
|
||||
enclose: true
|
||||
}))
|
||||
.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
|
||||
|
||||
//.pipe(sourcemaps.write('maps'))
|
||||
.pipe(gulp.dest('server/public/assets/dist'));
|
||||
|
||||
54
package-lock.json
generated
54
package-lock.json
generated
@@ -2755,6 +2755,27 @@
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.4.4",
|
||||
"uglify-js": "^2.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"source-map": "~0.5.1",
|
||||
"uglify-to-browserify": "~1.0.0",
|
||||
"yargs": "~3.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
@@ -4920,20 +4941,6 @@
|
||||
"inherits": "~2.0.1",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"rechoir": {
|
||||
@@ -6057,25 +6064,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"source-map": "~0.5.1",
|
||||
"uglify-to-browserify": "~1.0.0",
|
||||
"yargs": "~3.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"uglify-to-browserify": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-cssnano": "^2.1.3",
|
||||
"gulp-uglify": "^3.0.1",
|
||||
"gulp-util": "~3.0.6"
|
||||
"gulp-util": "^3.0.8"
|
||||
},
|
||||
"homepage": "https://github.com/zoff-music/zoff#readme",
|
||||
"dependencies": {
|
||||
|
||||
@@ -197,7 +197,8 @@ var Channel = {
|
||||
Player.player.setVolume(Crypt.get_volume());
|
||||
} catch(e){}
|
||||
try {
|
||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
|
||||
else Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
} catch(e){}
|
||||
}
|
||||
Helper.removeClass(".video-container", "no-opacity");
|
||||
|
||||
@@ -35,6 +35,15 @@ function resizeFunction() {
|
||||
if(!client && !embed) {
|
||||
var scPlaying = false;
|
||||
var ytPlaying = false;
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(paused) {
|
||||
try {
|
||||
ytPlaying = Player.player.getPlayerState() == YT.PlayerState.PLAYING || Player.player.getPlayerState() == YT.PlayerState.BUFFERING;
|
||||
} catch(e) {}
|
||||
scPlaying = !paused;
|
||||
resizePlaylistPlaying(ytPlaying || scPlaying);
|
||||
})
|
||||
} else {
|
||||
try {
|
||||
ytPlaying = Player.player.getPlayerState() == YT.PlayerState.PLAYING || Player.player.getPlayerState() == YT.PlayerState.BUFFERING;
|
||||
} catch(e) {}
|
||||
@@ -42,6 +51,7 @@ function resizeFunction() {
|
||||
scPlaying = Player.soundcloud_player.isPlaying();
|
||||
} catch(e){}
|
||||
resizePlaylistPlaying(ytPlaying || scPlaying);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -185,7 +195,8 @@ function hide_native(way) {
|
||||
Helper.setHtml("#chromecast_text", "Playing on<br>" + castSession.getCastDevice().friendlyName);
|
||||
}
|
||||
Player.player.setVolume(100);
|
||||
Player.soundcloud_player.setVolume(1);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(100);
|
||||
else Player.soundcloud_player.setVolume(1);
|
||||
|
||||
Helper.addClass("#player_overlay_text", "hide");
|
||||
} else if(way == 0){
|
||||
@@ -214,7 +225,8 @@ function hide_native(way) {
|
||||
if(!Helper.mobilecheck()){
|
||||
Player.player.setVolume(Crypt.get_volume());
|
||||
Playercontrols.visualVolume(Crypt.get_volume());
|
||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
|
||||
else Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
}
|
||||
Helper.addClass("#player_overlay", "hide");
|
||||
Helper.removeClass("#player_overlay_text", "hide");
|
||||
|
||||
@@ -40,7 +40,8 @@ var Hostcontroller = {
|
||||
try {
|
||||
Playercontrols.visualVolume(arr.value);
|
||||
Player.setVolume(arr.value);
|
||||
Player.soundcloud_player.setVolume(arr.value / 100);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(arr.value);
|
||||
else Player.soundcloud_player.setVolume(arr.value / 100);
|
||||
try {
|
||||
localStorage.setItem("volume", arr.value);
|
||||
} catch(e){}
|
||||
|
||||
@@ -12,6 +12,9 @@ try {
|
||||
} catch(e) {
|
||||
_VERSION = 6;
|
||||
}
|
||||
var SC_widget;
|
||||
var scUsingWidget = false;
|
||||
var SC_player;
|
||||
var soundcloud_enabled = true;
|
||||
var local_new_channel = false;
|
||||
var sc_need_initialization = false;
|
||||
@@ -257,25 +260,29 @@ window.addEventListener("DOMContentLoaded", function() {
|
||||
tagSC.readyState == "complete"){
|
||||
tagSC.onreadystatechange = null;
|
||||
if(sc_need_initialization) {
|
||||
Player.soundcloudReady();
|
||||
//Player.soundcloudReady();
|
||||
} else {
|
||||
SC.initialize({
|
||||
SC_player = SC;
|
||||
SC_player.initialize({
|
||||
client_id: api_key.soundcloud
|
||||
}, function() {
|
||||
});
|
||||
}
|
||||
Player.loadSoundCloudIframe();
|
||||
}
|
||||
};
|
||||
} else { //Others
|
||||
tagSC.onload = function(){
|
||||
if(sc_need_initialization) {
|
||||
Player.soundcloudReady();
|
||||
//Player.soundcloudReady();
|
||||
} else {
|
||||
SC.initialize({
|
||||
SC_player = SC;
|
||||
SC_player.initialize({
|
||||
client_id: api_key.soundcloud
|
||||
}, function() {
|
||||
});
|
||||
}
|
||||
Player.loadSoundCloudIframe();
|
||||
};
|
||||
}
|
||||
tagSC.src = "https://connect.soundcloud.com/sdk/sdk-3.3.0.js";
|
||||
@@ -283,7 +290,7 @@ window.addEventListener("DOMContentLoaded", function() {
|
||||
firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
|
||||
}
|
||||
} else if(window.location.pathname == "/" && client) {
|
||||
Player.loadSoundCloudPlayer();
|
||||
//Player.loadSoundCloudPlayer();
|
||||
}
|
||||
|
||||
if(Helper.mobilecheck()) {
|
||||
@@ -676,6 +683,7 @@ function addDynamicListeners() {
|
||||
Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
|
||||
Player.soundcloud_player.kill();
|
||||
} catch(error){}
|
||||
if(scUsingWidget) document.querySelector("#sc_player").innerHTML = "";
|
||||
socket.removeEventListener("np");
|
||||
socket.removeEventListener("id");
|
||||
socket.removeEventListener(id);
|
||||
@@ -711,7 +719,9 @@ function addDynamicListeners() {
|
||||
});
|
||||
|
||||
addListener("click", "#player_overlay", function(event) {
|
||||
if(videoSource == "soundcloud") Playercontrols.play_pause();
|
||||
if(videoSource == "soundcloud") {
|
||||
Playercontrols.play_pause();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
|
||||
@@ -7,6 +7,7 @@ var Player = {
|
||||
stopInterval: false,
|
||||
fireplace: "",
|
||||
np: {},
|
||||
seeking: false,
|
||||
soundcloud_dead: false,
|
||||
soundcloud_player: {
|
||||
setVolume: function(val) {}
|
||||
@@ -301,7 +302,7 @@ var Player = {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if(SC == null) return;
|
||||
if(SC_player == null) return;
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
@@ -314,7 +315,7 @@ var Player = {
|
||||
soundcloud_loading = false;
|
||||
var _autoAdd = "false";
|
||||
try {
|
||||
if(SC == null || !SC.stream) return;
|
||||
if(SC_player == null || !SC_player.stream) return;
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
@@ -324,14 +325,15 @@ var Player = {
|
||||
_autoAdd = "true";
|
||||
Helper.removeClass("#player_loader_container", "hide");
|
||||
}
|
||||
SC.stream("/tracks/" + id).then(function(player){
|
||||
|
||||
SC_player.stream("/tracks/" + id).then(function(player){
|
||||
Player.soundcloud_player = player;
|
||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||
window.player = player;
|
||||
Player.soundcloud_dead = false;
|
||||
SC.get('/tracks', {
|
||||
SC_player.get('/tracks', {
|
||||
ids: id
|
||||
}).then(function(tracks) {
|
||||
var sound = tracks[0];
|
||||
@@ -342,18 +344,17 @@ var Player = {
|
||||
});
|
||||
if(_autoplay) {
|
||||
player.play().then(function(){
|
||||
scUsingWidget = false;
|
||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
Player.soundcloud_player.seek((seekTo) * 1000);
|
||||
}).catch(function(e){
|
||||
});
|
||||
}
|
||||
}).catch(function(error) {
|
||||
curr_playing = id;
|
||||
emit("skip", {error: 5, id: id, channel: chan.toLowerCase()});
|
||||
setTimeout(function() {
|
||||
toast("Seems the SoundCloud-API rate-limit has been reached..", "red lighten");
|
||||
}, 1000);
|
||||
Player.initializeSCWidget(_autoplay, id);
|
||||
});
|
||||
//Player.initializeSCWidget(_autoplay, id);
|
||||
//Player.initializeSCWidget(_autoplay, id);
|
||||
} else {
|
||||
try {
|
||||
Player.soundcloud_player.seek(seekTo * 1000);
|
||||
@@ -382,6 +383,46 @@ var Player = {
|
||||
Helper.addClass("#player_overlay_text", "hide");
|
||||
},
|
||||
|
||||
initializeSCWidget: function(_autoplay, id) {
|
||||
try {
|
||||
Player.soundcloud_player.unbind("finish", Player.soundcloudFinish);
|
||||
Player.soundcloud_player.unbind("pause", Player.soundcloudPause);
|
||||
Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
|
||||
//Player.soundcloud_player.unbind("seek", Player.soundcloudSeek);
|
||||
}catch(e){}
|
||||
var this_autoplay = "";
|
||||
scUsingWidget = true;
|
||||
if(_autoplay) this_autoplay = "?auto_play=true";
|
||||
if(document.querySelectorAll("#scplayerElement").length == 0) {
|
||||
var single = "single_active=false";
|
||||
if(_autoplay) single = "&"+single;
|
||||
else single = "?"+single;
|
||||
document.querySelector("#sc_player").innerHTML = '<iframe id="scplayerElement" style="opacity:0;" width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay;" \
|
||||
src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/' + id + this_autoplay + '"> \
|
||||
</iframe>';
|
||||
Player.addSCWidgetElements();
|
||||
} else {
|
||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||
Player.soundcloud_player.load('https://api.soundcloud.com/tracks/' + id + this_autoplay, {single_active: false});
|
||||
}
|
||||
},
|
||||
|
||||
addSCWidgetElements: function() {
|
||||
try {
|
||||
Player.soundcloud_player = SC_widget.Widget(document.querySelector("#scplayerElement"));
|
||||
Player.soundcloud_player.seek = Player.soundcloud_player.seekTo;
|
||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||
} catch(e) {
|
||||
setTimeout(function() {
|
||||
Player.addSCWidgetElements();
|
||||
}, 500);
|
||||
}
|
||||
},
|
||||
|
||||
loadVideoById: function(id, this_duration, start, end){
|
||||
if(id == undefined) return;
|
||||
var s;
|
||||
@@ -504,7 +545,8 @@ var Player = {
|
||||
castSession.setVolume(vol/100);
|
||||
} else {
|
||||
Player.player.setVolume(vol);
|
||||
Player.soundcloud_player.setVolume(vol / 100);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(vol);
|
||||
else Player.soundcloud_player.setVolume(vol / 100);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -661,9 +703,19 @@ var Player = {
|
||||
playing = false;
|
||||
end_programmatically = false;
|
||||
} else {
|
||||
was_stopped = true;
|
||||
if(!scUsingWidget) was_stopped = true;
|
||||
if(!embed && !client && window.location.pathname != "/") {
|
||||
var scPlaying = false;
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(paused) {
|
||||
scPlaying = !paused;
|
||||
try {
|
||||
resizePlaylistPlaying(Player.player.getPlayerState() == YT.PlayerState.PLAYING || scPlaying || Player.player.getPlayerState() == YT.PlayerState.BUFFERING);
|
||||
} catch(e) {
|
||||
resizePlaylistPlaying(scPlaying);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
try {
|
||||
scPlaying = Player.soundcloud_player.isPlaying();
|
||||
} catch(e){}
|
||||
@@ -673,6 +725,7 @@ var Player = {
|
||||
resizePlaylistPlaying(scPlaying);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!chromecastAvailable){
|
||||
if(Helper.mobilecheck()) {
|
||||
Helper.css("#playpause", "visibility", "visible");
|
||||
@@ -697,10 +750,20 @@ var Player = {
|
||||
if(videoSource == "youtube") {
|
||||
Player.soundcloud_player.pause();
|
||||
} else if(soundcloud_loading){
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.getPosition(function(pos) {
|
||||
Player.seeking = true;
|
||||
Player.soundcloud_player.seek((seekTo) * 1000);
|
||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume());
|
||||
soundcloud_loading = false;
|
||||
})
|
||||
} else {
|
||||
Player.seeking = true;
|
||||
Player.soundcloud_player.seek((seekTo) * 1000);
|
||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||
soundcloud_loading = false;
|
||||
}
|
||||
}
|
||||
if(embed) {
|
||||
Helper.css("#player", "visibility", "visible");
|
||||
}
|
||||
@@ -714,11 +777,18 @@ var Player = {
|
||||
}
|
||||
if(!embed && !client && window.location.pathname != "/") {
|
||||
var scPlaying = false;
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(paused) {
|
||||
scPlaying = !paused;
|
||||
resizePlaylistPlaying(scPlaying);
|
||||
});
|
||||
} else {
|
||||
try {
|
||||
scPlaying = Player.soundcloud_player.isPlaying();
|
||||
} catch(e){}
|
||||
resizePlaylistPlaying(scPlaying);
|
||||
}
|
||||
}
|
||||
|
||||
Helper.css("#playpause", "visibility", "visible");
|
||||
Helper.css("#playpause", "pointer-events", "all");
|
||||
@@ -739,6 +809,7 @@ var Player = {
|
||||
if(u == undefined) u = "";*/
|
||||
paused = false;
|
||||
was_stopped = false;
|
||||
|
||||
socket.emit('pos', {channel: chan.toLowerCase()});
|
||||
} else {
|
||||
paused = false;
|
||||
@@ -748,13 +819,13 @@ var Player = {
|
||||
},
|
||||
|
||||
soundcloudReady: function() {
|
||||
if(SC == undefined && sc_need_initialization) {
|
||||
if(SC_player == undefined && sc_need_initialization) {
|
||||
sc_need_initialization = true;
|
||||
return;
|
||||
}
|
||||
sc_need_initialization = false;
|
||||
try {
|
||||
SC.initialize({
|
||||
SC_player.initialize({
|
||||
client_id: api_key.soundcloud
|
||||
}, function() {
|
||||
});
|
||||
@@ -942,7 +1013,13 @@ var Player = {
|
||||
dMinutes = Math.floor(duration / 60);
|
||||
dSeconds = duration - dMinutes * 60;
|
||||
if(videoSource == "soundcloud") {
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.getPosition(function(pos) {
|
||||
currDurr = Math.floor(pos) / 1000;
|
||||
});
|
||||
} else {
|
||||
currDurr = Math.floor(Player.soundcloud_player.currentTime()) / 1000;
|
||||
}
|
||||
} else {
|
||||
currDurr = Player.player.getCurrentTime() !== undefined ? Math.floor(Player.player.getCurrentTime()) : seekTo;
|
||||
}
|
||||
@@ -974,6 +1051,21 @@ var Player = {
|
||||
document.getElementById("bar").style.width = per+"%";
|
||||
}
|
||||
if(videoSource == "soundcloud") {
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(playing) {
|
||||
playing = !playing;
|
||||
if(Math.ceil(currDurr) + 1 > Player.np.end && playing) {
|
||||
end_programmatically = true;
|
||||
if(!offline) {
|
||||
Player.soundcloud_player.pause();
|
||||
was_stopped = false;
|
||||
socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
|
||||
} else {
|
||||
Player.playNext();
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if(Math.ceil(currDurr) + 1 > Player.np.end && Player.soundcloud_player.isPlaying()) {
|
||||
end_programmatically = true;
|
||||
if(!offline) {
|
||||
@@ -984,6 +1076,7 @@ var Player = {
|
||||
Player.playNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(Math.ceil(Player.player.getCurrentTime()) >= Player.np.end && (Player.player.getPlayerState() == YT.PlayerState.PLAYING)) {
|
||||
end_programmatically = true;
|
||||
@@ -1030,7 +1123,7 @@ var Player = {
|
||||
loadSoundCloudPlayer: function() {
|
||||
if(document.querySelectorAll("script[src='https://connect.soundcloud.com/sdk/sdk-3.3.0.js']").length == 1) {
|
||||
try {
|
||||
Player.soundcloudReady();
|
||||
//Player.soundcloudReady();
|
||||
} catch(error) {
|
||||
sc_need_initialization = true;
|
||||
//console.error(error);
|
||||
@@ -1043,18 +1136,54 @@ var Player = {
|
||||
if (tagSC.readyState == "loaded" ||
|
||||
tagSC.readyState == "complete"){
|
||||
tagSC.onreadystatechange = null;
|
||||
Player.soundcloudReady();
|
||||
SC_player = SC;
|
||||
//Player.soundcloudReady();
|
||||
Player.loadSoundCloudIframe();
|
||||
}
|
||||
};
|
||||
} else { //Others
|
||||
tagSC.onload = function(){
|
||||
Player.soundcloudReady();
|
||||
SC_player = SC;
|
||||
//Player.soundcloudReady();
|
||||
Player.loadSoundCloudIframe();
|
||||
};
|
||||
}
|
||||
tagSC.src = "https://connect.soundcloud.com/sdk/sdk-3.3.0.js";
|
||||
firstScriptTagSC = document.getElementsByTagName('script')[0];
|
||||
firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
|
||||
}
|
||||
},
|
||||
|
||||
loadSoundCloudIframe: function() {
|
||||
if(document.querySelectorAll("script[src='/assets/sclib/scapi.js']").length == 1) {
|
||||
try {
|
||||
Player.soundcloudReady();
|
||||
} catch(error) {
|
||||
//sc_need_initialization = true;
|
||||
//console.error(error);
|
||||
//console.error("Seems SoundCloud script isn't correctly loaded. Please reload the page.");
|
||||
}
|
||||
} else {
|
||||
tagSC = document.createElement('script');
|
||||
if (tagSC.readyState){ //IE
|
||||
tagSC.onreadystatechange = function(){
|
||||
if (tagSC.readyState == "loaded" ||
|
||||
tagSC.readyState == "complete"){
|
||||
tagSC.onreadystatechange = null;
|
||||
SC_widget = SC;
|
||||
Player.soundcloudReady();
|
||||
}
|
||||
};
|
||||
} else { //Others
|
||||
tagSC.onload = function(){
|
||||
SC_widget = SC;
|
||||
Player.soundcloudReady();
|
||||
};
|
||||
}
|
||||
tagSC.src = "/assets/sclib/scapi.js";
|
||||
firstScriptTagSC = document.getElementsByTagName('script')[0];
|
||||
firstScriptTagSC.parentNode.insertBefore(tagSC, firstScriptTagSC);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@@ -191,11 +191,23 @@ var Playercontrols = {
|
||||
play_pause: function() {
|
||||
if(!chromecastAvailable){
|
||||
if(videoSource == "soundcloud") {
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(playing) {
|
||||
playing = !playing;
|
||||
if(!playing) {
|
||||
Player.playVideo();
|
||||
} else {
|
||||
Player.pauseVideo();
|
||||
}
|
||||
was_stopped = true;
|
||||
});
|
||||
} else {
|
||||
if(!Player.soundcloud_player.isPlaying()) {
|
||||
Player.playVideo();
|
||||
} else {
|
||||
Player.pauseVideo();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(Player.player.getPlayerState() == YT.PlayerState.PLAYING)
|
||||
{
|
||||
@@ -273,7 +285,8 @@ var Playercontrols = {
|
||||
|
||||
setVolume: function(vol) {
|
||||
Player.setVolume(vol);
|
||||
Player.soundcloud_player.setVolume(vol / 100);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(vol);
|
||||
else Player.soundcloud_player.setVolume(vol / 100);
|
||||
Playercontrols.choose_button(vol, false);
|
||||
if(Player.player.isMuted())
|
||||
Player.player.unMute();
|
||||
@@ -355,6 +368,20 @@ var Playercontrols = {
|
||||
|
||||
playPause: function() {
|
||||
if(videoSource == "soundcloud") {
|
||||
if(scUsingWidget) {
|
||||
Player.soundcloud_player.isPaused(function(playing) {
|
||||
playing = !playing;
|
||||
if(!playing) {
|
||||
Helper.addClass("#play", "hide");
|
||||
Helper.removeClass("#pause", "hide");
|
||||
Player.soundcloud_player.play();
|
||||
} else {
|
||||
Helper.removeClass("#play", "hide");
|
||||
Helper.addClass("#pause", "hide");
|
||||
Player.soundcloud_player.pause();
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if(!Player.soundcloud_player.isPlaying()) {
|
||||
Helper.addClass("#play", "hide");
|
||||
Helper.removeClass("#pause", "hide");
|
||||
@@ -364,6 +391,7 @@ var Playercontrols = {
|
||||
Helper.addClass("#pause", "hide");
|
||||
Player.soundcloud_player.pause();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
state = Player.player.getPlayerState();
|
||||
button = document.getElementById("playpause");
|
||||
|
||||
@@ -202,7 +202,7 @@ var Search = {
|
||||
return;
|
||||
}
|
||||
if(keyword.length == 0) return;
|
||||
SC.get('/tracks', {
|
||||
SC_player.get('/tracks', {
|
||||
q: keyword
|
||||
}).then(function(tracks) {
|
||||
var pre_result = document.createElement("div");
|
||||
|
||||
1
server/public/assets/sclib/scapi.js
Normal file
1
server/public/assets/sclib/scapi.js
Normal file
@@ -0,0 +1 @@
|
||||
var SC=SC||{};SC.Widget=function(n){function t(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return n[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var e={};return t.m=n,t.c=e,t.p="",t(0)}([function(n,t,e){function r(n){return!!(""===n||n&&n.charCodeAt&&n.substr)}function o(n){return!!(n&&n.constructor&&n.call&&n.apply)}function i(n){return!(!n||1!==n.nodeType||"IFRAME"!==n.nodeName.toUpperCase())}function a(n){var t,e=!1;for(t in b)if(b.hasOwnProperty(t)&&b[t]===n){e=!0;break}return e}function s(n){var t,e,r;for(t=0,e=I.length;t<e&&(r=n(I[t]),r!==!1);t++);}function u(n){var t,e,r,o="";for("//"===n.substr(0,2)&&(n=window.location.protocol+n),r=n.split("/"),t=0,e=r.length;t<e&&t<3;t++)o+=r[t],t<2&&(o+="/");return o}function c(n){return n.contentWindow?n.contentWindow:n.contentDocument&&"parentWindow"in n.contentDocument?n.contentDocument.parentWindow:null}function l(n){var t,e=[];for(t in n)n.hasOwnProperty(t)&&e.push(n[t]);return e}function d(n,t,e){e.callbacks[n]=e.callbacks[n]||[],e.callbacks[n].push(t)}function E(n,t){var e,r=!0;return t.callbacks[n]=[],s(function(t){if(e=t.callbacks[n]||[],e.length)return r=!1,!1}),r}function f(n,t,e){var r,o,i=c(e);return!!i.postMessage&&(r=e.getAttribute("src").split("?")[0],o=JSON.stringify({method:n,value:t}),"//"===r.substr(0,2)&&(r=window.location.protocol+r),r=r.replace(/http:\/\/(w|wt).soundcloud.com/,"https://$1.soundcloud.com"),void i.postMessage(o,r))}function p(n){var t;return s(function(e){if(e.instance===n)return t=e,!1}),t}function h(n){var t;return s(function(e){if(c(e.element)===n)return t=e,!1}),t}function v(n,t){return function(e){var r=o(e),i=p(this),a=!r&&t?e:null,s=r&&!t?e:null;return s&&d(n,s,i),f(n,a,i.element),this}}function S(n,t,e){var r,o,i;for(r=0,o=t.length;r<o;r++)i=t[r],n[i]=v(i,e)}function R(n,t,e){return n+"?url="+t+"&"+g(e)}function g(n){var t,e,r=[];for(t in n)n.hasOwnProperty(t)&&(e=n[t],r.push(t+"="+("start_track"===t?parseInt(e,10):e?"true":"false")));return r.join("&")}function m(n,t,e){var r,o,i=n.callbacks[t]||[];for(r=0,o=i.length;r<o;r++)i[r].apply(n.instance,e);(a(t)||t===L.READY)&&(n.callbacks[t]=[])}function z(n){var t,e,r,o,i;try{e=JSON.parse(n.data);if(!e.hasOwnProperty("method"))return!1}catch(a){return!1}return t=h(n.source),r=e.method,o=e.value,(!t||A(n.origin)===A(t.domain))&&(t?(r===L.READY&&(t.isReady=!0,m(t,C),E(C,t)),r!==L.PLAY||t.playEventFired||(t.playEventFired=!0),r!==L.PLAY_PROGRESS||t.playEventFired||(t.playEventFired=!0,m(t,L.PLAY,[o])),i=[],void 0!==o&&i.push(o),void m(t,r,i)):(r===L.READY&&T.push(n.source),!1))}function A(n){return n.replace(Y,"")}var _,y,O,D=e(1),b=e(2),P=e(3),L=D.api,N=D.bridge,T=[],I=[],C="__LATE_BINDING__",k="http://wt.soundcloud.test:9200/",Y=/^http(?:s?)/;window.addEventListener?window.addEventListener("message",z,!1):window.attachEvent("onmessage",w),n.exports=O=function(n,t,e){if(r(n)&&(n=document.getElementById(n)),!i(n))throw new Error("SC.Widget function should be given either iframe element or a string specifying id attribute of iframe element.");t&&(e=e||{},n.src=R(k,t,e));var o,a,s=h(c(n));return s&&s.instance?s.instance:(o=T.indexOf(c(n))>-1,a=new _(n),I.push(new y(a,n,o)),a)},O.Events=L,window.SC=window.SC||{},window.SC.Widget=O,y=function(n,t,e){this.instance=n,this.element=t,this.domain=u(t.getAttribute("src")),this.isReady=!!e,this.callbacks={}},_=function(){},_.prototype={constructor:_,load:function(n,t){if(n){t=t||{};var e=this,r=p(this),o=r.element,i=o.src,a=i.substr(0,i.indexOf("?"));r.isReady=!1,r.playEventFired=!1,o.onload=function(){e.bind(L.READY,function(){var n,e=r.callbacks;for(n in e)e.hasOwnProperty(n)&&n!==L.READY&&f(N.ADD_LISTENER,n,r.element);t.callback&&t.callback()})},o.src=R(a,n,t)}},bind:function(n,t){var e=this,r=p(this);return r&&r.element&&(n===L.READY&&r.isReady?setTimeout(t,1):r.isReady?(d(n,t,r),f(N.ADD_LISTENER,n,r.element)):d(C,function(){e.bind(n,t)},r)),this},unbind:function(n){var t,e=p(this);e&&e.element&&(t=E(n,e),n!==L.READY&&t&&f(N.REMOVE_LISTENER,n,e.element))}},S(_.prototype,l(b)),S(_.prototype,l(P),!0)},function(n,t){t.api={LOAD_PROGRESS:"loadProgress",PLAY_PROGRESS:"playProgress",PLAY:"play",PAUSE:"pause",FINISH:"finish",SEEK:"seek",READY:"ready",OPEN_SHARE_PANEL:"sharePanelOpened",CLICK_DOWNLOAD:"downloadClicked",CLICK_BUY:"buyClicked",ERROR:"error"},t.bridge={REMOVE_LISTENER:"removeEventListener",ADD_LISTENER:"addEventListener"}},function(n,t){n.exports={GET_VOLUME:"getVolume",GET_DURATION:"getDuration",GET_POSITION:"getPosition",GET_SOUNDS:"getSounds",GET_CURRENT_SOUND:"getCurrentSound",GET_CURRENT_SOUND_INDEX:"getCurrentSoundIndex",IS_PAUSED:"isPaused"}},function(n,t){n.exports={PLAY:"play",PAUSE:"pause",TOGGLE:"toggle",SEEK_TO:"seekTo",SET_VOLUME:"setVolume",NEXT:"next",PREV:"prev",SKIP:"skip"}}]);
|
||||
@@ -4,7 +4,7 @@
|
||||
<div id="fireplace_player" class="ytplayer"></div>
|
||||
{{/unless}}
|
||||
<div id="player" class="ytplayer"></div>
|
||||
|
||||
<div id="sc_player" class="scplayer"></div>
|
||||
<div id="main_components">
|
||||
<div id="player_overlay" class="hide valign-wrapper">
|
||||
<div id="playing_on">
|
||||
|
||||
Reference in New Issue
Block a user