mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Exporting of soundcloud implementation
- Fixed play/pause issue on stopping and playing the player
This commit is contained in:
@@ -123,6 +123,20 @@ a {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#player_loader_container {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: rgba(0,0,0,.5);
|
||||||
|
}
|
||||||
|
#player_loader {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#send-loader {
|
#send-loader {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
|
|||||||
@@ -799,7 +799,7 @@ var List = {
|
|||||||
exportToYoutube: function() {
|
exportToYoutube: function() {
|
||||||
ga('send', 'event', "export", "youtube");
|
ga('send', 'event', "export", "youtube");
|
||||||
|
|
||||||
var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet";
|
var request_url = "https://www.googleapis.com/youtube/v3/playlists?part=snippet&key=" + api_key;
|
||||||
Helper.removeClass(".exported-list-container", "hide");
|
Helper.removeClass(".exported-list-container", "hide");
|
||||||
Helper.removeClass("#playlist_loader_export", "hide");
|
Helper.removeClass("#playlist_loader_export", "hide");
|
||||||
Helper.ajax({
|
Helper.ajax({
|
||||||
@@ -819,10 +819,11 @@ var List = {
|
|||||||
response = JSON.parse(response);
|
response = JSON.parse(response);
|
||||||
var number_added = 0;
|
var number_added = 0;
|
||||||
var playlist_id = response.id;
|
var playlist_id = response.id;
|
||||||
var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet";
|
var request_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=" + api_key;
|
||||||
List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url)
|
List.addToYoutubePlaylist(playlist_id, full_playlist, number_added, request_url)
|
||||||
},
|
},
|
||||||
error: function(response){
|
error: function(response){
|
||||||
|
console.log(response);
|
||||||
response = response.responseText;
|
response = response.responseText;
|
||||||
Helper.log([
|
Helper.log([
|
||||||
"export to youtube response",
|
"export to youtube response",
|
||||||
@@ -832,60 +833,191 @@ var List = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
addToYoutubePlaylist: function(playlist_id, full_playlist, num, request_url) {
|
insertInYouTubePlaylist: function(playlist_id, _videoId, num, request_url) {
|
||||||
if(full_playlist[num].source != "soundcloud") {
|
var _data = JSON.stringify({
|
||||||
var _data = JSON.stringify({
|
'snippet': {
|
||||||
'snippet': {
|
'playlistId': playlist_id,
|
||||||
'playlistId': playlist_id,
|
'resourceId': {
|
||||||
'resourceId': {
|
'kind': 'youtube#video',
|
||||||
'kind': 'youtube#video',
|
'videoId': _videoId
|
||||||
'videoId': full_playlist[num].id
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
Helper.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: request_url,
|
||||||
|
headers: {
|
||||||
|
'Authorization': 'Bearer ' + access_token_data_youtube.access_token,
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
data: _data,
|
||||||
|
success: function(response){
|
||||||
|
response = JSON.parse(response);
|
||||||
|
Helper.log(["Added video: " + full_playlist[num].id + " to playlist id " + playlist_id]);
|
||||||
|
if(num == full_playlist.length - 1){
|
||||||
|
Helper.log(["All videoes added!"]);
|
||||||
|
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
||||||
|
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
||||||
|
Helper.addClass("#playlist_loader_export", "hide");
|
||||||
|
Helper.addClass(".current_number", "hide");
|
||||||
|
//$(".youtube_export_button").removeClass("hide");
|
||||||
|
} else {
|
||||||
|
//setTimeout(function(){
|
||||||
|
Helper.removeClass(".current_number", "hide");
|
||||||
|
document.querySelector(".current_number").innerText = (num + 1) + " of " + (full_playlist.length);
|
||||||
|
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url);
|
||||||
|
//}, 50);
|
||||||
|
}
|
||||||
|
}, error: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
addToYoutubePlaylist: function(playlist_id, full_playlist, num, request_url) {
|
||||||
|
console.log(full_playlist[num], num);
|
||||||
|
if(num == full_playlist.length - 1){
|
||||||
|
Helper.log(["All videoes added!"]);
|
||||||
|
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
||||||
|
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
||||||
|
Helper.addClass("#playlist_loader_export", "hide");
|
||||||
|
Helper.addClass(".current_number", "hide");
|
||||||
|
return;
|
||||||
|
//$(".youtube_export_button").removeClass("hide");
|
||||||
|
}
|
||||||
|
if(full_playlist[num].hasOwnProperty("source") && full_playlist[num].source != "soundcloud") {
|
||||||
|
List.insertInYouTubePlaylist(playlist_id, full_playlist[num].id, num, request_url)
|
||||||
|
} else {
|
||||||
|
var yt_url = "https://www.googleapis.com/youtube/v3/search?key="+api_key+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10";
|
||||||
|
yt_url+="&q="+full_playlist[num].title;
|
||||||
|
var title = full_playlist[num].title;
|
||||||
|
var temptitle = title.split("-");
|
||||||
|
temptitle = temptitle.join(" ").split(" ");
|
||||||
|
var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key+"&id=";
|
||||||
Helper.ajax({
|
Helper.ajax({
|
||||||
type: "POST",
|
type: "GET",
|
||||||
url: request_url,
|
url: yt_url,
|
||||||
headers: {
|
dataType:"jsonp",
|
||||||
'Authorization': 'Bearer ' + access_token_data_youtube.access_token,
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
},
|
|
||||||
data: _data,
|
|
||||||
success: function(response){
|
success: function(response){
|
||||||
response = JSON.parse(response);
|
response = JSON.parse(response);
|
||||||
Helper.log(["Added video: " + full_playlist[num].id + " to playlist id " + playlist_id]);
|
//Helper.log(response);
|
||||||
if(num == full_playlist.length - 1){
|
if(response.items.length === 0){
|
||||||
Helper.log(["All videoes added!"]);
|
Helper.log([
|
||||||
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
"NO MATCH FOR:",
|
||||||
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
"Spotify title: " + title,
|
||||||
Helper.addClass("#playlist_loader_export", "hide");
|
"Spotify length: " + length
|
||||||
Helper.addClass(".current_number", "hide");
|
]);
|
||||||
//$(".youtube_export_button").removeClass("hide");
|
var not_added_song = document.createElement("div");
|
||||||
} else {
|
not_added_song.innerHTML = not_export_html;
|
||||||
//setTimeout(function(){
|
|
||||||
Helper.removeClass(".current_number", "hide");
|
|
||||||
document.querySelector(".current_number").innerText = (num + 1) + " of " + (full_playlist.length);
|
|
||||||
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url);
|
|
||||||
//}, 50);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
not_added_song.querySelector(".extra-add-text").innerText = title;
|
||||||
|
not_added_song.querySelector(".extra-add-text").setAttribute("title", title);
|
||||||
|
not_added_song.querySelector(".extra-button-search").setAttribute("data-text", title);
|
||||||
|
document.querySelector(".not-exported-container").insertAdjacentHTML("beforeend", not_added_song.innerHTML);
|
||||||
|
Helper.removeClass(".not-exported", "hide");
|
||||||
|
if(num == full_playlist.length - 1){
|
||||||
|
Helper.log(["All videoes added!"]);
|
||||||
|
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
||||||
|
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
||||||
|
Helper.addClass("#playlist_loader_export", "hide");
|
||||||
|
Helper.addClass(".current_number", "hide");
|
||||||
|
//$(".youtube_export_button").removeClass("hide");
|
||||||
|
} else {
|
||||||
|
//setTimeout(function(){
|
||||||
|
Helper.removeClass(".current_number", "hide");
|
||||||
|
document.querySelector(".current_number").innerText = (num + 1) + " of " + (full_playlist.length);
|
||||||
|
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url);
|
||||||
|
//}, 50);
|
||||||
|
}
|
||||||
|
} else if(response.items.length > 0) {
|
||||||
|
for(var i = 0; i < response.items.length; i++) {
|
||||||
|
var data = response.items[i];
|
||||||
|
vid_url += data.id.videoId+",";
|
||||||
|
}
|
||||||
|
|
||||||
|
Helper.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: vid_url,
|
||||||
|
dataType:"jsonp",
|
||||||
|
success: function(response){
|
||||||
|
response = JSON.parse(response);
|
||||||
|
if(response.items.length > 0) {
|
||||||
|
var matched = false;
|
||||||
|
for(var y = 0; y < response.items.length; y++) {
|
||||||
|
var data = response.items[y];
|
||||||
|
//Helper.log(data);
|
||||||
|
//var title = data.snippet.title;
|
||||||
|
var duration = Search.durationToSeconds(data.contentDetails.duration);
|
||||||
|
var not_matched = false;
|
||||||
|
if(similarity(data.snippet.title,title) > 0.75) {
|
||||||
|
not_matched = false;
|
||||||
|
} else {
|
||||||
|
for(var i = 0; i < temptitle.length; i++) {
|
||||||
|
var data_title = temptitle[i];
|
||||||
|
|
||||||
|
if(data.snippet.title.toLowerCase().indexOf(data_title.toLowerCase()) == -1 || !(
|
||||||
|
data.snippet.title.toLowerCase().indexOf("cover") == -1 &&
|
||||||
|
title.toLowerCase().indexOf("cover") == -1 &&
|
||||||
|
((data.snippet.title.toLowerCase().indexOf("remix") == -1 &&
|
||||||
|
title.toLowerCase().indexOf("remix") == -1) ||
|
||||||
|
(data.snippet.title.toLowerCase().indexOf("remix") != -1 &&
|
||||||
|
title.toLowerCase().indexOf("remix") != -1) || !(data.snippet.title.toLowerCase().indexOf(artist[0].toLowerCase()) == -1 &&
|
||||||
|
data.snippet.channelTitle.toLowerCase().indexOf("vevo") == -1)))
|
||||||
|
)
|
||||||
|
not_matched = true;
|
||||||
|
else if(duration > 1800) not_matched = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if((!not_matched)){
|
||||||
|
matched = true;
|
||||||
|
List.insertInYouTubePlaylist(playlist_id, data.id, num, request_url);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!matched){
|
||||||
|
if(num == full_playlist.length - 1){
|
||||||
|
Helper.log(["All videoes added!"]);
|
||||||
|
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
||||||
|
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
||||||
|
Helper.addClass("#playlist_loader_export", "hide");
|
||||||
|
Helper.addClass(".current_number", "hide");
|
||||||
|
//$(".youtube_export_button").removeClass("hide");
|
||||||
|
} else {
|
||||||
|
//setTimeout(function(){
|
||||||
|
Helper.removeClass(".current_number", "hide");
|
||||||
|
document.querySelector(".current_number").innerText = (num + 1) + " of " + (full_playlist.length);
|
||||||
|
//}, 50);
|
||||||
|
}
|
||||||
|
Helper.log([
|
||||||
|
"NO MATCH FOR:",
|
||||||
|
"Spotify title: " + title,
|
||||||
|
"Spotify length: " + length
|
||||||
|
]);
|
||||||
|
var not_added_song = document.createElement("div");
|
||||||
|
not_added_song.innerHTML = not_export_html;
|
||||||
|
not_added_song.querySelector(".extra-add-text").innerText = title;
|
||||||
|
not_added_song.querySelector(".extra-add-text").setAttribute("title", title);
|
||||||
|
not_added_song.querySelector(".extra-button-search").setAttribute("data-text", title);
|
||||||
|
document.querySelector(".not-exported-container").insertAdjacentHTML("beforeend", not_added_song.innerHTML);
|
||||||
|
Helper.removeClass(".not-exported", "hide");
|
||||||
|
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}, error: function(e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
if(num == full_playlist.length - 1){
|
|
||||||
Helper.log(["All videoes added!"]);
|
|
||||||
Helper.log(["url: https://www.youtube.com/playlist?list=" + playlist_id]);
|
|
||||||
document.querySelector(".exported-list").insertAdjacentHTML("beforeend", "<a target='_blank' class='btn light exported-playlist' href='https://www.youtube.com/playlist?list=" + playlist_id + "'>" + chan + "</a>");
|
|
||||||
Helper.addClass("#playlist_loader_export", "hide");
|
|
||||||
Helper.addClass(".current_number", "hide");
|
|
||||||
//$(".youtube_export_button").removeClass("hide");
|
|
||||||
} else {
|
|
||||||
//setTimeout(function(){
|
|
||||||
Helper.removeClass(".current_number", "hide");
|
|
||||||
document.querySelector(".current_number").innerText = (num + 1) + " of " + (full_playlist.length);
|
|
||||||
List.addToYoutubePlaylist(playlist_id, full_playlist, num + 1, request_url);
|
|
||||||
//}, 50);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -10,21 +10,7 @@ var Player = {
|
|||||||
soundcloud_player: document.querySelector('#soundcloud_player'),
|
soundcloud_player: document.querySelector('#soundcloud_player'),
|
||||||
|
|
||||||
youtube_listener: function(obj) {
|
youtube_listener: function(obj) {
|
||||||
Helper.log(["object", obj]);
|
if(obj.np != undefined) {
|
||||||
var state;
|
|
||||||
fix_too_far = false;
|
|
||||||
if(embed && !autoplay && obj && obj.np.length > 0) {
|
|
||||||
if(Object.keys(obj).length == 0) {
|
|
||||||
paused = false;
|
|
||||||
empty_clear = true;
|
|
||||||
} else {
|
|
||||||
empty_clear = false;
|
|
||||||
}
|
|
||||||
Player.getTitle(obj.np[0].title, viewers);
|
|
||||||
//Player.setBGimage(video_id);
|
|
||||||
if(!Helper.mobilecheck()) {
|
|
||||||
Player.notifyUser(obj.np[0].id, obj.np[0].title);
|
|
||||||
}
|
|
||||||
video_id = obj.np[0].id;
|
video_id = obj.np[0].id;
|
||||||
Player.np = {
|
Player.np = {
|
||||||
id: video_id,
|
id: video_id,
|
||||||
@@ -32,233 +18,60 @@ var Player = {
|
|||||||
end: obj.np[0].end,
|
end: obj.np[0].end,
|
||||||
duration: obj.np[0].duration,
|
duration: obj.np[0].duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
if(!obj.np[0].hasOwnProperty("start")) {
|
if(!obj.np[0].hasOwnProperty("start")) {
|
||||||
Player.np.start = 0;
|
Player.np.start = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!obj.np[0].hasOwnProperty("end")) {
|
if(!obj.np[0].hasOwnProperty("end")) {
|
||||||
Player.np.end = Player.np.duration;
|
Player.np.end = Player.np.duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
conf = obj.conf[0];
|
|
||||||
time = obj.time;
|
|
||||||
seekTo = (time - conf.startTime) + Player.np.start;
|
|
||||||
startTime = time - conf.startTime;
|
|
||||||
song_title = obj.np[0].title;
|
song_title = obj.np[0].title;
|
||||||
duration = obj.np[0].duration;
|
duration = obj.np[0].duration;
|
||||||
videoSource = obj.np[0].hasOwnProperty("source") ? obj.np[0].source : "youtube";
|
videoSource = obj.np[0].hasOwnProperty("source") ? obj.np[0].source : "youtube";
|
||||||
if(player_ready) {
|
} else {
|
||||||
Player.cueVideoById(video_id, duration);
|
Player.np = {
|
||||||
Player.stopVideo();
|
id: "",
|
||||||
|
start: 0,
|
||||||
|
end: 0,
|
||||||
|
duration: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
document.getElementById('song-title').innerText = "Empty channel. Add some songs!";
|
||||||
|
document.title = "Zoff - the shared YouTube based radio";
|
||||||
|
Helper.css("#channel-load", "display", "none");
|
||||||
|
|
||||||
|
if(!window.MSStream && !chromecastAvailable) {
|
||||||
|
Helper.removeClass("#player_overlay", "hide");
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(embed && obj.np) {
|
|
||||||
if(window.parentWindow && window.parentOrigin) {
|
|
||||||
window.parentWindow.postMessage({type: "np", title: obj.np[0].title}, window.parentOrigin);
|
|
||||||
if(full_playlist.length > 0) {
|
|
||||||
Player.sendNext({title: full_playlist[0].title, videoId: full_playlist[0].id});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
state = Player.player.getPlayerState();
|
|
||||||
} catch(e) {
|
|
||||||
state = null;
|
|
||||||
}
|
|
||||||
if(!paused) {
|
|
||||||
gotten_np = true;
|
|
||||||
}
|
|
||||||
if((((!offline && (state != null || from_frontpage)) || (offline && (!(state != null) || from_frontpage))|| (!offline && (!(state != null) || from_frontpage)) || (offline && state == -1)) && !(offline && prev_chan_player == chan)) || (offline && video_id == undefined)){
|
|
||||||
prev_chan_player = chan;
|
|
||||||
from_frontpage = false;
|
|
||||||
Player.loaded = false;
|
|
||||||
Helper.log([
|
|
||||||
"youtube_listener",
|
|
||||||
"Received: ",
|
|
||||||
obj,
|
|
||||||
"paused variable: " + paused,
|
|
||||||
"mobile_beginning variable: " + mobile_beginning]);
|
|
||||||
try{
|
try{
|
||||||
Helper.log(["getVideoUrl(): " + Player.player.getVideoUrl().split('v=')[1]]);
|
|
||||||
} catch(e){}
|
|
||||||
Helper.log(["video_id variable: " + video_id]);
|
|
||||||
if(!obj.np){
|
|
||||||
document.getElementById('song-title').innerText = "Empty channel. Add some songs!";
|
|
||||||
document.title = "Zoff - the shared YouTube based radio";
|
|
||||||
Helper.css("#channel-load", "display", "none");
|
|
||||||
|
|
||||||
if(!window.MSStream && !chromecastAvailable) {
|
|
||||||
Helper.removeClass("#player_overlay", "hide");
|
|
||||||
}
|
|
||||||
try{
|
|
||||||
if(!chromecastAvailable) {
|
|
||||||
Player.stopVideo();
|
|
||||||
}
|
|
||||||
}catch(e){
|
|
||||||
|
|
||||||
}
|
|
||||||
//List.importOldList(channel.toLowerCase());
|
|
||||||
} else if(paused || was_stopped){
|
|
||||||
|
|
||||||
Player.getTitle(obj.np[0].title, viewers);
|
|
||||||
//Player.setBGimage(video_id);
|
|
||||||
if(!Helper.mobilecheck()) {
|
|
||||||
Player.notifyUser(obj.np[0].id, obj.np[0].title);
|
|
||||||
}
|
|
||||||
if(!chromecastAvailable) {
|
if(!chromecastAvailable) {
|
||||||
Player.stopVideo();
|
Player.stopVideo();
|
||||||
}
|
}
|
||||||
video_id = obj.np[0].id;
|
}catch(e){
|
||||||
videoSource = obj.np[0].hasOwnProperty("source") ? obj.np[0].source : "youtube";
|
|
||||||
Player.np = {
|
|
||||||
id: video_id,
|
|
||||||
start: obj.np[0].start,
|
|
||||||
end: obj.np[0].end,
|
|
||||||
duration: obj.np[0].duration,
|
|
||||||
};
|
|
||||||
if(!obj.np[0].hasOwnProperty("start")) {
|
|
||||||
Player.np.start = 0;
|
|
||||||
}
|
|
||||||
if(!obj.np[0].hasOwnProperty("end")) {
|
|
||||||
Player.np.end = Player.np.duration;
|
|
||||||
}
|
|
||||||
|
|
||||||
conf = obj.conf[0];
|
|
||||||
time = obj.time;
|
|
||||||
seekTo = (time - conf.startTime) + Player.np.start;
|
|
||||||
startTime = time - conf.startTime;
|
|
||||||
song_title = obj.np[0].title;
|
|
||||||
duration = obj.np[0].duration;
|
|
||||||
Player.setThumbnail(conf, video_id);
|
|
||||||
Player.cueVideoById(video_id, duration);
|
|
||||||
//Player.setBGimage(video_id);
|
|
||||||
} else if(!paused){
|
|
||||||
//Helper.log("gotten new song");
|
|
||||||
if(previous_video_id === undefined) {
|
|
||||||
previous_video_id = obj.np[0].id;
|
|
||||||
} else if(previous_video_id != video_id) {
|
|
||||||
previous_video_id = video_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
video_id = obj.np[0].id;
|
|
||||||
Player.np = {
|
|
||||||
id: video_id,
|
|
||||||
start: obj.np[0].start,
|
|
||||||
end: obj.np[0].end,
|
|
||||||
duration: obj.np[0].duration,
|
|
||||||
};
|
|
||||||
if(!obj.np[0].hasOwnProperty("start")) {
|
|
||||||
Player.np.start = 0;
|
|
||||||
}
|
|
||||||
if(!obj.np[0].hasOwnProperty("end")) {
|
|
||||||
Player.np.end = Player.np.duration;
|
|
||||||
}
|
|
||||||
conf = obj.conf[0];
|
|
||||||
time = obj.time;
|
|
||||||
seekTo = (time - conf.startTime) + Player.np.start;
|
|
||||||
startTime = time - conf.startTime;
|
|
||||||
song_title = obj.np[0].title;
|
|
||||||
duration = obj.np[0].duration;
|
|
||||||
videoSource = obj.np[0].hasOwnProperty("source") ? obj.np[0].source : "youtube";
|
|
||||||
Player.setThumbnail(conf, video_id);
|
|
||||||
if(mobile_beginning && Helper.mobilecheck() && seekTo === 0 && !chromecastAvailable) {
|
|
||||||
seekTo = 1 + Player.np.start;
|
|
||||||
}
|
|
||||||
|
|
||||||
try{
|
|
||||||
if(full_playlist[0].id == video_id && !mobile_beginning){
|
|
||||||
List.song_change(full_playlist[0].added);
|
|
||||||
}
|
|
||||||
if(!client) Suggestions.fetchYoutubeSuggests(video_id);
|
|
||||||
}catch(e){}
|
|
||||||
|
|
||||||
Player.getTitle(song_title, viewers);
|
|
||||||
if(player_ready && !window.MSStream) {
|
|
||||||
try {
|
|
||||||
var compared;
|
|
||||||
var prev_state = state;
|
|
||||||
try {
|
|
||||||
compared = Player.player.getVideoUrl().split('v=')[1] != video_id;
|
|
||||||
} catch(e) {
|
|
||||||
compared = true;
|
|
||||||
}
|
|
||||||
if(prev_state == 2 && !chromecastAvailable) {
|
|
||||||
Player.stopVideo();
|
|
||||||
was_stopped = true;
|
|
||||||
Player.cueVideoById(video_id, duration);
|
|
||||||
if(!durationBegun) {
|
|
||||||
Player.durationSetter();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(compared || chromecastAvailable){
|
|
||||||
if(paused && !chromecastAvailable){
|
|
||||||
Player.cueVideoById(video_id, duration);
|
|
||||||
} else {
|
|
||||||
Player.loadVideoById(video_id, duration);
|
|
||||||
Player.seekTo(seekTo);
|
|
||||||
}
|
|
||||||
if(!Helper.mobilecheck()) {
|
|
||||||
Player.notifyUser(video_id, song_title);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!paused){
|
|
||||||
if(((!mobile_beginning || chromecastAvailable) && prev_state != 2) && autoplay && videoSource != "soundcloud") {
|
|
||||||
Player.playVideo();
|
|
||||||
}
|
|
||||||
if(!durationBegun) {
|
|
||||||
Player.durationSetter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Player.player.getDuration() > seekTo || Player.player.getDuration() === 0 || chromecastAvailable || Player.player.getCurrentTime() != seekTo) {
|
|
||||||
Player.seekTo(seekTo);
|
|
||||||
}
|
|
||||||
Player.after_load = video_id;
|
|
||||||
|
|
||||||
if(!Player.loaded) {
|
|
||||||
setTimeout(function(){Player.loaded = true;},500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(e) {
|
|
||||||
if(chromecastAvailable && !paused) {
|
|
||||||
Player.loadVideoById(video_id, duration);
|
|
||||||
Player.seekTo(seekTo);
|
|
||||||
}
|
|
||||||
if(!durationBegun && !chromecastAvailable) {
|
|
||||||
Player.durationSetter();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(!autoplay) {
|
|
||||||
Player.stopVideo();
|
|
||||||
} else if(player_ready){
|
|
||||||
Player.seekTo(seekTo);
|
|
||||||
}
|
|
||||||
Player.getTitle(song_title, viewers);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if(!durationBegun) {
|
|
||||||
Player.durationSetter();
|
|
||||||
}
|
|
||||||
duration = Player.player.getDuration();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Object.keys(obj).length == 0) {
|
if(obj.conf != undefined) {
|
||||||
paused = false;
|
conf = obj.conf[0];
|
||||||
empty_clear = true;
|
|
||||||
} else {
|
|
||||||
empty_clear = false;
|
|
||||||
}
|
}
|
||||||
try {
|
time = obj.time;
|
||||||
document.getElementById("play").focus();
|
seekTo = (time - conf.startTime) + Player.np.start;
|
||||||
console.log("focused");
|
startTime = time - conf.startTime;
|
||||||
if(videoSource == "soundcloud") {
|
|
||||||
Player.player.stopVideo();
|
|
||||||
|
// Play video/autoplay video
|
||||||
|
if(obj.np != undefined) {
|
||||||
|
Player.getTitle(song_title, viewers);
|
||||||
|
if(((embed && autplay) || !embed ) && !offline && !was_stopped) {
|
||||||
|
console.log("loadVideoById \nwas_stopped=",was_stopped,"\noffline=",offline)
|
||||||
|
Player.loadVideoById(Player.np.id, duration, Player.np.start, Player.np.end);
|
||||||
} else {
|
} else {
|
||||||
SC.Widget(Player.soundcloud_player).pause();
|
console.log("cueVideoById \nwas_stopped=",was_stopped,"\noffline=",offline)
|
||||||
|
Player.cueVideoById(Player.np.id, duration, Player.np.start, Player.np.end);
|
||||||
}
|
}
|
||||||
} catch(e) {}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setThumbnail: function(conf, video_id) {
|
setThumbnail: function(conf, video_id) {
|
||||||
@@ -288,13 +101,15 @@ var Player = {
|
|||||||
Helper.log(["getVideoUrl(): " + Player.player.getVideoUrl().split('v=')[1]]);
|
Helper.log(["getVideoUrl(): " + Player.player.getVideoUrl().split('v=')[1]]);
|
||||||
} catch(e){}
|
} catch(e){}
|
||||||
Helper.log(["video_id variable: " + video_id]);
|
Helper.log(["video_id variable: " + video_id]);
|
||||||
|
|
||||||
switch(newState.data) {
|
switch(newState.data) {
|
||||||
case YT.PlayerState.UNSTARTED:
|
case YT.PlayerState.UNSTARTED:
|
||||||
break;
|
break;
|
||||||
case YT.PlayerState.ENDED:
|
case YT.PlayerState.ENDED:
|
||||||
playing = false;
|
playing = false;
|
||||||
paused = false;
|
paused = false;
|
||||||
|
was_stopped = false;
|
||||||
|
console.log(362, "was stopped", was_stopped);
|
||||||
if(!offline) {
|
if(!offline) {
|
||||||
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||||
if(u == undefined) u = "";*/
|
if(u == undefined) u = "";*/
|
||||||
@@ -305,8 +120,9 @@ var Player = {
|
|||||||
break;
|
break;
|
||||||
case YT.PlayerState.PLAYING:
|
case YT.PlayerState.PLAYING:
|
||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
console.log("Supposed to play soundcloud not youtube");
|
|
||||||
Player.player.stopVideo();
|
Player.player.stopVideo();
|
||||||
|
//was_stopped = false;
|
||||||
|
console.log(362, "was stopped", was_stopped);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(embed) {
|
if(embed) {
|
||||||
@@ -351,6 +167,8 @@ var Player = {
|
|||||||
end_programmatically = false;
|
end_programmatically = false;
|
||||||
} else {
|
} else {
|
||||||
if(!chromecastAvailable){
|
if(!chromecastAvailable){
|
||||||
|
was_stopped = true;
|
||||||
|
console.log(417, "was stopped", was_stopped);
|
||||||
if(beginning && mobile_beginning) {
|
if(beginning && mobile_beginning) {
|
||||||
Helper.css("#playpause", "visibility", "visible");
|
Helper.css("#playpause", "visibility", "visible");
|
||||||
Helper.css("#playpause", "pointer-events", "all");
|
Helper.css("#playpause", "pointer-events", "all");
|
||||||
@@ -388,9 +206,7 @@ var Player = {
|
|||||||
}
|
}
|
||||||
//Playercontrols.play_pause();
|
//Playercontrols.play_pause();
|
||||||
} else {
|
} else {
|
||||||
console.log(videoSource);
|
|
||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
console.log("you need to play now");
|
|
||||||
SC.Widget(document.querySelector("#soundcloud_player")).play();
|
SC.Widget(document.querySelector("#soundcloud_player")).play();
|
||||||
} else {
|
} else {
|
||||||
Player.player.playVideo();
|
Player.player.playVideo();
|
||||||
@@ -399,7 +215,6 @@ var Player = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
pauseVideo: function(){
|
pauseVideo: function(){
|
||||||
console.log("pause");
|
|
||||||
if(chromecastAvailable){
|
if(chromecastAvailable){
|
||||||
castSession.sendMessage("urn:x-cast:zoff.me", {type: "pauseVideo"});
|
castSession.sendMessage("urn:x-cast:zoff.me", {type: "pauseVideo"});
|
||||||
if(document.getElementById("play").classList.contains("hide")){
|
if(document.getElementById("play").classList.contains("hide")){
|
||||||
@@ -408,10 +223,8 @@ var Player = {
|
|||||||
}
|
}
|
||||||
//Playercontrols.play_pause();
|
//Playercontrols.play_pause();
|
||||||
} else {
|
} else {
|
||||||
console.log(videoSource);
|
|
||||||
paused = true;
|
paused = true;
|
||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
console.log("you need to pause now");
|
|
||||||
SC.Widget(document.querySelector("#soundcloud_player")).pause();
|
SC.Widget(document.querySelector("#soundcloud_player")).pause();
|
||||||
} else {
|
} else {
|
||||||
Player.player.pauseVideo();
|
Player.player.pauseVideo();
|
||||||
@@ -429,8 +242,64 @@ var Player = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
loadSoundCloud: function(id, this_duration, start, end, _autoplay) {
|
||||||
|
try {
|
||||||
|
if(SC == null) return;
|
||||||
|
} catch(e) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Player.stopVideo();
|
||||||
|
if(_autoplay) was_stopped = false;
|
||||||
|
Helper.removeClass(document.getElementById("player_overlay"), "hide");
|
||||||
|
document.getElementById("player_overlay_text").innerText = "Loading SoundCloud";
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
||||||
|
if(Player.soundcloud_player.src.indexOf(id) > -1) {
|
||||||
|
if(start == undefined) start = 0;
|
||||||
|
if(seekTo == undefined) seekTo = 0;
|
||||||
|
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
||||||
|
SC.Widget(Player.soundcloud_player).setVolume(embed ? 100 : Crypt.get_volume());
|
||||||
|
soundcloud_loading = false;
|
||||||
|
if(_autoplay) {
|
||||||
|
SC.Widget(Player.soundcloud_player).isPaused(function(paused) {
|
||||||
|
if(paused) SC.Widget(Player.soundcloud_player).play();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var _autoAdd = "false";
|
||||||
|
if(_autoplay) {
|
||||||
|
_autoAdd = "true";
|
||||||
|
Helper.removeClass("#player_loader_container", "hide");
|
||||||
|
}
|
||||||
|
SC.Widget(Player.soundcloud_player).unbind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
||||||
|
SC.Widget(Player.soundcloud_player).unbind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
||||||
|
SC.Widget(Player.soundcloud_player).unbind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
||||||
|
document.querySelector("#soundcloud_container").innerHTML = '<iframe width="100%" id="soundcloud_player" height="166" scrolling="no" frameborder="no" style="visibility: hidden;z-index: -999;" \
|
||||||
|
src="https://w.soundcloud.com/player/?url=' + id + '&auto_play=' + _autoAdd + '&buying=false&sharing=false&download=false&show_user=false"> \
|
||||||
|
</iframe>';
|
||||||
|
Player.soundcloud_player = document.querySelector("#soundcloud_player");
|
||||||
|
soundcloud_loading = true;
|
||||||
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
||||||
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
||||||
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
||||||
|
SC.Widget(Player.soundcloud_player).setVolume(embed ? 100 : Crypt.get_volume());
|
||||||
|
if(start == undefined) start = 0;
|
||||||
|
if(seekTo == undefined) seekTo = 0;
|
||||||
|
|
||||||
|
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
||||||
|
if(!document.hasFocus()) {
|
||||||
|
SC.Widget(Player.soundcloud_player).play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(_autoplay) was_stopped = false;
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background", "url('" + full_playlist[full_playlist.length - 1].thumbnail + "')");
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background-size", "auto");
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background-position", "20%");
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
||||||
|
Helper.addClass("#player_overlay_text", "hide");
|
||||||
|
},
|
||||||
|
|
||||||
loadVideoById: function(id, this_duration, start, end){
|
loadVideoById: function(id, this_duration, start, end){
|
||||||
console.log("load video now");
|
if(id == undefined) return;
|
||||||
var s;
|
var s;
|
||||||
var e;
|
var e;
|
||||||
if(start) s = start;
|
if(start) s = start;
|
||||||
@@ -443,45 +312,33 @@ var Player = {
|
|||||||
chrome.cast.Image('https://img.youtube.com/vi/'+id+'/mqdefault.jpg');
|
chrome.cast.Image('https://img.youtube.com/vi/'+id+'/mqdefault.jpg');
|
||||||
} else {
|
} else {
|
||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
console.log(Player.soundcloud_player.src.indexOf(id), seekTo);
|
try {
|
||||||
Player.stopVideo();
|
Player.player.stopVideo();
|
||||||
Helper.removeClass(document.getElementById("player_overlay"), "hide");
|
} catch(e) {
|
||||||
document.getElementById("player_overlay_text").innerText = "Loading SoundCloud";
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
|
||||||
if(Player.soundcloud_player.src.indexOf(id) > -1) {
|
|
||||||
console.log("seekto " + seekTo + " start " + start);
|
|
||||||
if(start == undefined) start = 0;
|
|
||||||
if(seekTo == undefined) seekTo = 0;
|
|
||||||
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
|
||||||
} else {
|
|
||||||
console.log("loaded here");
|
|
||||||
document.querySelector("#soundcloud_container").innerHTML = '<iframe width="100%" id="soundcloud_player" height="166" scrolling="no" frameborder="no" style="visibility: hidden;z-index: -999;" \
|
|
||||||
src="https://w.soundcloud.com/player/?url=' + id + '&auto_play=true&buying=false&sharing=false&download=false&show_user=false"> \
|
|
||||||
</iframe>';
|
|
||||||
Player.soundcloud_player = document.querySelector("#soundcloud_player");
|
|
||||||
soundcloud_loading = true;
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
|
||||||
SC.Widget(Player.soundcloud_player).setVolume(embed ? 100 : Crypt.get_volume());
|
|
||||||
console.log(start, seekTo);
|
|
||||||
if(start == undefined) start = 0;
|
|
||||||
if(seekTo == undefined) seekTo = 0;
|
|
||||||
|
|
||||||
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
|
||||||
}
|
}
|
||||||
Helper.css(document.getElementById("player_overlay"), "background", "url('" + full_playlist[full_playlist.length - 1].thumbnail + "')");
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-size", "auto");
|
was_stopped = false;
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-position", "20%");
|
Player.loadSoundCloud(id, this_duration, start, end, true);
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
|
||||||
Helper.addClass("#player_overlay_text", "hide");
|
|
||||||
//SC.Widget(Player.soundcloud_player).play();
|
//SC.Widget(Player.soundcloud_player).play();
|
||||||
} else {
|
} else {
|
||||||
//window.player = Player.player;
|
//window.player = Player.player;
|
||||||
|
try {
|
||||||
|
SC.Widget(Player.soundcloud_player).pause();
|
||||||
|
} catch(e) {
|
||||||
|
}
|
||||||
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
||||||
Helper.css(document.getElementById("player_overlay"), "background", "none");
|
Helper.css(document.getElementById("player_overlay"), "background", "none");
|
||||||
Helper.removeClass("#player_overlay_text", "hide");
|
Helper.addClass("#player_overlay_text", "hide");
|
||||||
Player.player.loadVideoById({'videoId': id, 'startSeconds': s, 'endSeconds': e});
|
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
||||||
|
try {
|
||||||
|
if(Player.player.getVideoUrl().indexOf(id) > -1) {
|
||||||
|
Player.player.seekTo(seekTo);
|
||||||
|
} else {
|
||||||
|
Player.player.loadVideoById({'videoId': id, 'startSeconds': s, 'endSeconds': e});
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
}
|
||||||
|
was_stopped = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(offline) {
|
if(offline) {
|
||||||
@@ -499,48 +356,26 @@ var Player = {
|
|||||||
else e = Player.np.end;
|
else e = Player.np.end;
|
||||||
|
|
||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
if(videoSource == "soundcloud") {
|
try {
|
||||||
console.log(Player.soundcloud_player.src.indexOf(id), seekTo);
|
Player.player.stopVideo();
|
||||||
Player.stopVideo();
|
} catch(e) {
|
||||||
Helper.removeClass(document.getElementById("player_overlay"), "hide");
|
|
||||||
document.getElementById("player_overlay_text").innerText = "Loading SoundCloud";
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
|
||||||
if(Player.soundcloud_player.src.indexOf(id) > -1) {
|
|
||||||
console.log("seekto " + seekTo + " start " + start);
|
|
||||||
if(start == undefined) start = 0;
|
|
||||||
if(seekTo == undefined) seekTo = 0;
|
|
||||||
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
|
||||||
} else {
|
|
||||||
console.log("loaded here");
|
|
||||||
document.querySelector("#soundcloud_container").innerHTML = '<iframe width="100%" id="soundcloud_player" height="166" scrolling="no" frameborder="no" style="visibility: hidden;z-index: -999;" \
|
|
||||||
src="https://w.soundcloud.com/player/?url=' + id + '&auto_play=false&buying=false&sharing=false&download=false&show_user=false"> \
|
|
||||||
</iframe>';
|
|
||||||
Player.soundcloud_player = document.querySelector("#soundcloud_player");
|
|
||||||
soundcloud_loading = true;
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
|
||||||
SC.Widget(Player.soundcloud_player).setVolume(embed ? 100 : Crypt.get_volume());
|
|
||||||
console.log(start, seekTo);
|
|
||||||
if(start == undefined) start = 0;
|
|
||||||
if(seekTo == undefined) seekTo = 0;
|
|
||||||
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
|
||||||
}
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background", "url('" + full_playlist[full_playlist.length - 1].thumbnail + "')");
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-size", "auto");
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-position", "20%");
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background-color", "#2d2d2d");
|
|
||||||
Helper.addClass("#player_overlay_text", "hide");
|
|
||||||
//SC.Widget(Player.soundcloud_player).play();
|
|
||||||
} else {
|
|
||||||
//window.player = Player.player;
|
|
||||||
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
|
||||||
Helper.css(document.getElementById("player_overlay"), "background", "none");
|
|
||||||
Helper.removeClass("#player_overlay_text", "hide");
|
|
||||||
Player.player.loadVideoById({'videoId': id, 'startSeconds': s, 'endSeconds': e});
|
|
||||||
}
|
}
|
||||||
|
Player.loadSoundCloud(id, this_duration, start, end, false);
|
||||||
|
//SC.Widget(Player.soundcloud_player).play();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Player.player.cueVideoById({'videoId': id, 'startSeconds': s, 'endSeconds': e});
|
try {
|
||||||
|
SC.Widget(Player.soundcloud_player).pause();
|
||||||
|
} catch(e) {
|
||||||
|
}
|
||||||
|
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
||||||
|
Helper.css(document.getElementById("player_overlay"), "background", "none");
|
||||||
|
Helper.addClass("#player_overlay_text", "hide");
|
||||||
|
Helper.addClass(document.getElementById("player_overlay"), "hide");
|
||||||
|
try {
|
||||||
|
Player.player.cueVideoById({'videoId': id, 'startSeconds': s, 'endSeconds': e});
|
||||||
|
} catch(e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -708,8 +543,10 @@ var Player = {
|
|||||||
playing = false;
|
playing = false;
|
||||||
end_programmatically = false;
|
end_programmatically = false;
|
||||||
} else {
|
} else {
|
||||||
|
was_stopped = true;
|
||||||
|
console.log(785, "was stopped", was_stopped);
|
||||||
if(!chromecastAvailable){
|
if(!chromecastAvailable){
|
||||||
if(beginning && mobile_beginning) {
|
if(Helper.mobilecheck()) {
|
||||||
Helper.css("#playpause", "visibility", "visible");
|
Helper.css("#playpause", "visibility", "visible");
|
||||||
Helper.css("#playpause", "pointer-events", "all");
|
Helper.css("#playpause", "pointer-events", "all");
|
||||||
Helper.css("#channel-load", "display", "none");
|
Helper.css("#channel-load", "display", "none");
|
||||||
@@ -727,13 +564,12 @@ var Player = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
soundcloudPlay: function() {
|
soundcloudPlay: function() {
|
||||||
console.log("playing");
|
Helper.addClass("#player_loader_container", "hide");
|
||||||
console.log(videoSource, soundcloud_loading);
|
|
||||||
if(videoSource == "youtube") {
|
if(videoSource == "youtube") {
|
||||||
SC.Widget(Player.soundcloud_player).pause();
|
SC.Widget(Player.soundcloud_player).pause();
|
||||||
} else if(soundcloud_loading){
|
} else if(soundcloud_loading){
|
||||||
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
SC.Widget(Player.soundcloud_player).seekTo((seekTo) * 1000);
|
||||||
console.log("We need to skip !", Player.np.start, seekTo)
|
SC.Widget(Player.soundcloud_player).setVolume(embed ? 100 : Crypt.get_volume());
|
||||||
soundcloud_loading = false;
|
soundcloud_loading = false;
|
||||||
}
|
}
|
||||||
if(embed) {
|
if(embed) {
|
||||||
@@ -761,27 +597,33 @@ var Player = {
|
|||||||
Helper.addClass("#play", "hide");
|
Helper.addClass("#play", "hide");
|
||||||
Helper.removeClass("#pause", "hide");
|
Helper.removeClass("#pause", "hide");
|
||||||
}
|
}
|
||||||
if((paused || was_stopped) && !offline) {
|
if((was_stopped) && !offline) {
|
||||||
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||||
if(u == undefined) u = "";*/
|
if(u == undefined) u = "";*/
|
||||||
|
console.log("Emit for position");
|
||||||
|
paused = false;
|
||||||
|
was_stopped = false;
|
||||||
socket.emit('pos', {channel: chan.toLowerCase()});
|
socket.emit('pos', {channel: chan.toLowerCase()});
|
||||||
|
} else {
|
||||||
paused = false;
|
paused = false;
|
||||||
was_stopped = false;
|
was_stopped = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
soundcloudReady: function() {
|
soundcloudReady: function() {
|
||||||
console.log("loaded");
|
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.FINISH, Player.soundcloudFinish);
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PAUSE, Player.soundcloudPause);
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.PLAY, Player.soundcloudPlay);
|
||||||
SC.Widget(Player.soundcloud_player).load("https://soundcloud.com/kid-astray/kid-astray-back-to-the-ordinary", {
|
/*SC.Widget(Player.soundcloud_player).load("https://soundcloud.com/kid-astray/kid-astray-back-to-the-ordinary", {
|
||||||
auto_play: false,
|
auto_play: false,
|
||||||
buying:false,
|
buying:false,
|
||||||
sharing:false,
|
sharing:false,
|
||||||
download:false,
|
download:false,
|
||||||
show_user:false,
|
show_user:false,
|
||||||
});
|
});*/
|
||||||
|
|
||||||
|
if(videoSource == "soundcloud" && videoId != undefined) Player.loadVideoById(videoId, Player.np.duration, Player.np.start, Player.np.end);
|
||||||
},
|
},
|
||||||
|
|
||||||
onPlayerReady: function(event) {
|
onPlayerReady: function(event) {
|
||||||
@@ -956,7 +798,7 @@ var Player = {
|
|||||||
} else {
|
} else {
|
||||||
currDurr = Player.player.getCurrentTime() !== undefined ? Math.floor(Player.player.getCurrentTime()) : seekTo;
|
currDurr = Player.player.getCurrentTime() !== undefined ? Math.floor(Player.player.getCurrentTime()) : seekTo;
|
||||||
}
|
}
|
||||||
console.log(Player.np.start, currDurr, Player.np.end);
|
|
||||||
if(currDurr - Player.np.start > duration && !offline) {
|
if(currDurr - Player.np.start > duration && !offline) {
|
||||||
currDurr = duration - Player.np.start;
|
currDurr = duration - Player.np.start;
|
||||||
}
|
}
|
||||||
@@ -986,11 +828,13 @@ var Player = {
|
|||||||
if(videoSource == "soundcloud") {
|
if(videoSource == "soundcloud") {
|
||||||
|
|
||||||
SC.Widget(Player.soundcloud_player).isPaused(function(paused) {
|
SC.Widget(Player.soundcloud_player).isPaused(function(paused) {
|
||||||
if(currDurr > Player.np.end && !paused) {
|
if(Math.ceil(currDurr) > Player.np.end && !paused) {
|
||||||
end_programmatically = true;
|
end_programmatically = true;
|
||||||
|
|
||||||
if(!offline) {
|
if(!offline) {
|
||||||
SC.Widget(Player.soundcloud_player).pause();
|
SC.Widget(Player.soundcloud_player).pause();
|
||||||
|
was_stopped = false;
|
||||||
|
console.log(1071, "was stopped", was_stopped);
|
||||||
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||||
if(u == undefined) u = "";*/
|
if(u == undefined) u = "";*/
|
||||||
socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
|
socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
|
||||||
@@ -1005,6 +849,8 @@ var Player = {
|
|||||||
|
|
||||||
if(!offline) {
|
if(!offline) {
|
||||||
Player.player.pauseVideo();
|
Player.player.pauseVideo();
|
||||||
|
was_stopped = false;
|
||||||
|
console.log(1086, "was stopped", was_stopped);
|
||||||
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
/*var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||||
if(u == undefined) u = "";*/
|
if(u == undefined) u = "";*/
|
||||||
socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
|
socket.emit("end", {id: video_id, channel: chan.toLowerCase()});
|
||||||
@@ -1036,7 +882,6 @@ var Player = {
|
|||||||
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
||||||
|
|
||||||
tag.onload = function() {
|
tag.onload = function() {
|
||||||
console.log("loaded script")
|
|
||||||
if(document.querySelectorAll("script[src='https://w.soundcloud.com/player/api.js']").length == 1) {
|
if(document.querySelectorAll("script[src='https://w.soundcloud.com/player/api.js']").length == 1) {
|
||||||
SC.Widget(Player.soundcloud_player);
|
SC.Widget(Player.soundcloud_player);
|
||||||
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.READY, Player.soundcloudReady);
|
SC.Widget(Player.soundcloud_player).bind(SC.Widget.Events.READY, Player.soundcloudReady);
|
||||||
@@ -1070,7 +915,6 @@ var Player = {
|
|||||||
SC = _SC1;
|
SC = _SC1;
|
||||||
_SC1 = _SC2;
|
_SC1 = _SC2;
|
||||||
}
|
}
|
||||||
console.log("loaded1")
|
|
||||||
window._SC1 = _SC1;
|
window._SC1 = _SC1;
|
||||||
_SC1.initialize({
|
_SC1.initialize({
|
||||||
client_id: '***REMOVED***'
|
client_id: '***REMOVED***'
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ var Search = {
|
|||||||
var duration=song.contentDetails.duration;
|
var duration=song.contentDetails.duration;
|
||||||
var secs=Search.durationToSeconds(duration);
|
var secs=Search.durationToSeconds(duration);
|
||||||
var _temp_duration = Helper.secondsToOther(secs);
|
var _temp_duration = Helper.secondsToOther(secs);
|
||||||
if(!longsongs || secs<720){
|
if((longsongs != undefined && !longsongs) || secs<720){
|
||||||
var title=song.snippet.title;
|
var title=song.snippet.title;
|
||||||
var enc_title=title;//encodeURIComponent(title).replace(/'/g, "\\\'");
|
var enc_title=title;//encodeURIComponent(title).replace(/'/g, "\\\'");
|
||||||
var id=song.id;
|
var id=song.id;
|
||||||
@@ -208,8 +208,11 @@ var Search = {
|
|||||||
//var secs=Search.durationToSeconds(duration);
|
//var secs=Search.durationToSeconds(duration);
|
||||||
var secs = duration;
|
var secs = duration;
|
||||||
var _temp_duration = Helper.secondsToOther(secs);
|
var _temp_duration = Helper.secondsToOther(secs);
|
||||||
if(!longsongs || secs<720){
|
if((longsongs != undefined && !longsongs) || secs<720){
|
||||||
var title=song.title;
|
var title=song.title;
|
||||||
|
if(title.indexOf(song.user.username) == -1) {
|
||||||
|
title = song.user.username + " - " + title;
|
||||||
|
}
|
||||||
var enc_title=title;//encodeURIComponent(title).replace(/'/g, "\\\'");
|
var enc_title=title;//encodeURIComponent(title).replace(/'/g, "\\\'");
|
||||||
var id=song.permalink_url;
|
var id=song.permalink_url;
|
||||||
//duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s");
|
//duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s");
|
||||||
@@ -608,7 +611,7 @@ addVideos: function(ids){
|
|||||||
for(var i = 0; i < response.items.length; i++) {
|
for(var i = 0; i < response.items.length; i++) {
|
||||||
var song = response.items[i];
|
var song = response.items[i];
|
||||||
var duration=Search.durationToSeconds(song.contentDetails.duration);
|
var duration=Search.durationToSeconds(song.contentDetails.duration);
|
||||||
if(!longsongs || duration<720){
|
if((longsongs != undefined && !longsongs) || duration<720){
|
||||||
enc_title= song.snippet.title;//encodeURIComponent(song.snippet.title);
|
enc_title= song.snippet.title;//encodeURIComponent(song.snippet.title);
|
||||||
//Search.submit(song.id, enc_title, duration, playlist, i);
|
//Search.submit(song.id, enc_title, duration, playlist, i);
|
||||||
x += 1;
|
x += 1;
|
||||||
|
|||||||
@@ -19,6 +19,11 @@
|
|||||||
<div id="player_overlay_text" class="valign center-align">
|
<div id="player_overlay_text" class="valign center-align">
|
||||||
Waiting for Video
|
Waiting for Video
|
||||||
</div>
|
</div>
|
||||||
|
<div id="player_loader_container" class="hide valign-wrapper">
|
||||||
|
<div id="player_loader" class="preloader-wrapper large active valign">
|
||||||
|
{{> spinner}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="player_overlay_controls" class="hide valign-wrapper">
|
<div id="player_overlay_controls" class="hide valign-wrapper">
|
||||||
<div id="playpause-overlay" class="valign center-align">
|
<div id="playpause-overlay" class="valign center-align">
|
||||||
<i id="play-overlay" class="material-icons hide">play_arrow</i>
|
<i id="play-overlay" class="material-icons hide">play_arrow</i>
|
||||||
|
|||||||
Reference in New Issue
Block a user