mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Added localmode for embedded players, configurable on embed-code create
This commit is contained in:
@@ -364,61 +364,6 @@ var Channel = {
|
||||
}
|
||||
},
|
||||
|
||||
seekToClick: function(e){
|
||||
var acceptable = ["bar", "controls", "duration"];
|
||||
|
||||
if(acceptable.indexOf(e.target.getAttribute("id")) >= 0) {
|
||||
if(full_playlist == undefined) return;
|
||||
var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth;
|
||||
total = total * e.clientX;
|
||||
|
||||
if(!chromecastAvailable){
|
||||
if(videoSource == "youtube") Player.player.seekTo(total + Player.np.start);
|
||||
else if(videoSource == "soundcloud") Player.soundcloud_player.seek((total + Player.np.start) * 1000);
|
||||
dMinutes = Math.floor(duration / 60);
|
||||
dSeconds = duration - dMinutes * 60;
|
||||
currDurr = total;
|
||||
if(currDurr - Player.np.start > duration) {
|
||||
currDurr = duration - Player.np.start;
|
||||
}
|
||||
currDurr = currDurr - Player.np.start;
|
||||
minutes = Math.floor(currDurr / 60);
|
||||
seconds = currDurr - (minutes * 60);
|
||||
document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" <span id='dash'>/</span> "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds);
|
||||
per = (100 / duration) * currDurr;
|
||||
if(per >= 100)
|
||||
per = 100;
|
||||
else if(duration === 0)
|
||||
per = 0;
|
||||
document.getElementById("bar").style.width = per + "%"
|
||||
} else {
|
||||
castSession.sendMessage("urn:x-cast:zoff.me", {type: "seekTo", seekTo: total});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
seekToMove: function(e){
|
||||
var pos_x = event.clientX - Math.ceil(document.getElementById("seekToDuration").offsetWidth / 2);
|
||||
if(pos_x < 0) pos_x = 0;
|
||||
else if(pos_x + document.getElementById("seekToDuration").offsetWidth > document.getElementById("controls").offsetWidth) {
|
||||
pos_x = document.getElementById("controls").offsetWidth - document.getElementById("seekToDuration").offsetWidth;
|
||||
}
|
||||
Helper.css("#seekToDuration", "left", pos_x + "px");
|
||||
try{
|
||||
var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth;
|
||||
total = total * event.clientX;
|
||||
var _time = Helper.secondsToOther(total);
|
||||
var _minutes = Helper.pad(_time[0]);
|
||||
var _seconds = Helper.pad(Math.ceil(_time[1]));
|
||||
Helper.setHtml("#seekToDuration", _minutes + ":" + _seconds);
|
||||
|
||||
var acceptable = ["bar", "controls", "duration"];
|
||||
if(acceptable.indexOf(event.target.getAttribute("id")) >= 0 && dragging) {
|
||||
document.getElementById("bar").style.width(((100 / duration) * total) + "%");
|
||||
}
|
||||
} catch(e){}
|
||||
},
|
||||
|
||||
set_title_width: function(start){
|
||||
if(window.innerWidth > 600){
|
||||
var add_width = document.getElementsByClassName("brand-logo")[0].offsetWidth
|
||||
|
||||
@@ -5,6 +5,7 @@ var song_title = "";
|
||||
var paused = false;
|
||||
var client = false;
|
||||
var startTime = 0;
|
||||
var full_playlist;
|
||||
var hostMode = false;
|
||||
var soundcloud_enabled = true;
|
||||
var socket_connected = false;
|
||||
@@ -12,6 +13,8 @@ var dynamicListeners = {};
|
||||
var player_ready = false;
|
||||
var previousSoundcloud;
|
||||
var buffering = false;
|
||||
var prev_chan_list = "";
|
||||
var local_new_channel = false;
|
||||
var empty_clear = false;
|
||||
var fix_too_far = false;
|
||||
var beginning = false;
|
||||
@@ -76,12 +79,12 @@ window.addEventListener("message", receiveMessage, false);
|
||||
window.addEventListener("DOMContentLoaded", function() {
|
||||
});
|
||||
window.addEventListener("load", function() {
|
||||
if(hash.length >= 2 && hash.indexOf("autoplay") > 0){
|
||||
autoplay = true;
|
||||
Helper.css("#player", "visibility", "hidden");
|
||||
} else {
|
||||
//paused = true;
|
||||
}
|
||||
if(hash.length >= 2 && hash.indexOf("autoplay") > 0){
|
||||
autoplay = true;
|
||||
Helper.css("#player", "visibility", "hidden");
|
||||
} else {
|
||||
//paused = true;
|
||||
}
|
||||
if(hash.indexOf("videoonly") > -1) {
|
||||
Helper.addClass("#wrapper", "hide");
|
||||
Helper.addClass("#controls", "hide");
|
||||
@@ -89,6 +92,7 @@ window.addEventListener("load", function() {
|
||||
Helper.addClass("#player_overlay", "video_only");
|
||||
Helper.css("#zoffbutton", "bottom", "0px");
|
||||
}
|
||||
|
||||
M.Modal.init(document.getElementById("locked_channel"), {
|
||||
dismissible: false
|
||||
});
|
||||
@@ -98,6 +102,10 @@ window.addEventListener("load", function() {
|
||||
//add = "localhost";
|
||||
socket = io.connect(''+add+':8080', connection_options);
|
||||
|
||||
if(hash.indexOf("localmode") > 1) {
|
||||
change_offline(true, false);
|
||||
}
|
||||
|
||||
socket.on('auth_required', function() {
|
||||
M.Modal.getInstance(document.getElementById("locked_channel")).open();
|
||||
});
|
||||
@@ -125,7 +133,7 @@ window.addEventListener("load", function() {
|
||||
setup_list_listener();
|
||||
|
||||
if(autoplay) {
|
||||
startWaitTimerPlay();
|
||||
startWaitTimerPlay();
|
||||
}
|
||||
|
||||
window.onYouTubeIframeAPIReady = Player.onYouTubeIframeAPIReady;
|
||||
@@ -147,13 +155,13 @@ window.addEventListener("load", function() {
|
||||
function resizePlaylistPlaying(){};
|
||||
|
||||
function startWaitTimerPlay() {
|
||||
setTimeout(function() {
|
||||
if(videoSource == "youtube") {
|
||||
Player.player.playVideo();
|
||||
} else if(videoSource == "soundcloud"){
|
||||
Player.soundcloud_player.play();
|
||||
}
|
||||
}, 5000);
|
||||
setTimeout(function() {
|
||||
if(videoSource == "youtube") {
|
||||
Player.player.playVideo();
|
||||
} else if(videoSource == "soundcloud"){
|
||||
Player.soundcloud_player.play();
|
||||
}
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
function setup_host_listener(id) {
|
||||
@@ -183,78 +191,78 @@ function loadChromecastVideo(){}
|
||||
function toast(msg) {
|
||||
switch(msg) {
|
||||
case "suggested_thumbnail":
|
||||
if(embed) return;
|
||||
msg = "The thumbnail has been suggested!";
|
||||
break;
|
||||
if(embed) return;
|
||||
msg = "The thumbnail has been suggested!";
|
||||
break;
|
||||
case "faulty_start_end":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "wait_longer":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "suggested_description":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "thumbnail_denied":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "description_denied":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "addedsong":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "addedplaylist":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "savedsettings":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "wrongpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "deleted_songs":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "shuffled":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "deletesong":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "voted":
|
||||
msg=Helper.rnd(["You voted!", "You vote like a boss", "Voting is the key to democracy", "May you get your song to the very top!", "I love that song! I vouch for you.", "Only you vote that good", "I like the way you vote...", "Up the video goes!", "Voted Zoff for president", "Only 999 more to go!"]);
|
||||
break;
|
||||
msg=Helper.rnd(["You voted!", "You vote like a boss", "Voting is the key to democracy", "May you get your song to the very top!", "I love that song! I vouch for you.", "Only you vote that good", "I like the way you vote...", "Up the video goes!", "Voted Zoff for president", "Only 999 more to go!"]);
|
||||
break;
|
||||
case "alreadyvoted":
|
||||
msg=Helper.rnd(["You can't vote twice on that song!", "I see you have voted on that song before", "One vote per person!", "I know you want to hear your song, but have patience!", "I'm sorry, but I can't let you vote twice, Dave."]);
|
||||
break;
|
||||
msg=Helper.rnd(["You can't vote twice on that song!", "I see you have voted on that song before", "One vote per person!", "I know you want to hear your song, but have patience!", "I'm sorry, but I can't let you vote twice, Dave."]);
|
||||
break;
|
||||
case "skip":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "listhaspass":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "noskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "alreadyskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "notyetskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "correctpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "changedpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "suggested":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
case "alreadyplay":
|
||||
if(embed) return;
|
||||
break;
|
||||
if(embed) return;
|
||||
break;
|
||||
}
|
||||
before_toast();
|
||||
M.toast({html: msg, displayLength: 4000});
|
||||
@@ -274,38 +282,121 @@ function emit() {
|
||||
}
|
||||
}
|
||||
|
||||
function change_offline(enabled, already_offline){
|
||||
if(client) {
|
||||
offline = false;
|
||||
return;
|
||||
}
|
||||
offline = enabled;
|
||||
socket.emit("offline", {status: enabled, channel: chan != undefined ? chan.toLowerCase() : ""});
|
||||
if(!Helper.mobilecheck()) {
|
||||
if(document.querySelectorAll("#offline-mode").length == 1 && M.Tooltip.getInstance(document.getElementById("offline-mode"))) {
|
||||
Helper.tooltip("#offline-mode", 'destroy');
|
||||
}
|
||||
}
|
||||
|
||||
function handleEvent(e, target, tried, type) {
|
||||
for(var y = 0; y < e.path.length; y++) {
|
||||
var target = e.path[y];
|
||||
if(dynamicListeners[type] && dynamicListeners[type]["#" + target.id]) {
|
||||
dynamicListeners[type]["#" + target.id].call(target);
|
||||
return;
|
||||
} else {
|
||||
if(target.classList == undefined) return;
|
||||
for(var i = 0; i < target.classList.length; i++) {
|
||||
if(dynamicListeners[type] && dynamicListeners[type]["." + target.classList[i]]) {
|
||||
dynamicListeners[type]["." + target.classList[i]].call(target);
|
||||
return;
|
||||
}
|
||||
var mouseEnter = function(e){
|
||||
Helper.removeClass("#seekToDuration", "hide");
|
||||
};
|
||||
|
||||
var mouseLeave = function(e){
|
||||
dragging = false;
|
||||
Helper.addClass("#seekToDuration", "hide");
|
||||
};
|
||||
|
||||
var mouseDown = function(e) {
|
||||
var acceptable = ["bar", "controls", "duration"];
|
||||
if(acceptable.indexOf(e.target.id) >= 0) {
|
||||
dragging = true;
|
||||
}
|
||||
};
|
||||
|
||||
var mouseUp = function(e) {
|
||||
dragging = false;
|
||||
};
|
||||
|
||||
if(enabled){
|
||||
Helper.addClass("#viewers", "hide");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass(".prev playbar", "margin-playbar");
|
||||
Helper.removeClass(".prev playbar", "hide");
|
||||
Helper.removeClass(".skip playbar", "hide");
|
||||
Helper.removeClass("#offline-mode", "waves-cyan");
|
||||
Helper.addClass("#offline-mode", "cyan");
|
||||
Helper.removeClass(".delete-context-menu", "context-menu-disabled");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Disable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
socket.removeEventListener("color");
|
||||
document.getElementById("controls").addEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").addEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").addEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").addEventListener("mousemove", seekToMove);
|
||||
document.getElementById("controls").addEventListener("click", seekToClick);
|
||||
|
||||
document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>");
|
||||
var controlElement = document.querySelector("#controls");
|
||||
Helper.css("#seekToDuration", "bottom", "50px");
|
||||
Helper.addClass("#controls", "ewresize");
|
||||
}
|
||||
if(full_playlist != undefined && !already_offline){
|
||||
for(var x = 0; x < full_playlist.length; x++){
|
||||
full_playlist[x].votes = 0;
|
||||
}
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
} else {
|
||||
|
||||
if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass("#playpause", "margin-playbar");
|
||||
Helper.removeClass("#viewers", "hide");
|
||||
Helper.addClass(".prev playbar", "hide");
|
||||
Helper.addClass(".skip playbar", "hide");
|
||||
Helper.addClass("#offline-mode", "waves-cyan");
|
||||
Helper.removeClass("#offline-mode", "cyan");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Enable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
document.getElementById("controls").removeEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").removeEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").removeEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").removeEventListener("mousemove", seekToMove);
|
||||
document.getElementById("controls").removeEventListener("click", seekToClick);
|
||||
Helper.removeElement("#seekToDuration");
|
||||
socket.on("color", Player.setBGimage);
|
||||
socket.emit("pos", {channel: chan.toLowerCase()});
|
||||
var add = "";
|
||||
//if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
||||
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()});
|
||||
Helper.removeClass("#controls", "ewresize");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addListener(type, element, callback) {
|
||||
if(dynamicListeners[type] == undefined) dynamicListeners[type] = {};
|
||||
dynamicListeners[type][element] = callback;
|
||||
}
|
||||
|
||||
function before_toast(){
|
||||
/*if($('.toast').length > 0) {
|
||||
var toastElement = $('.toast').first()[0];
|
||||
var toastInstance = toastElement.M_Toast;
|
||||
toastInstance.remove();
|
||||
}*/
|
||||
M.Toast.dismissAll();
|
||||
//Materialize.Toast.removeAll();
|
||||
var toastElement = $('.toast').first()[0];
|
||||
var toastInstance = toastElement.M_Toast;
|
||||
toastInstance.remove();
|
||||
}*/
|
||||
M.Toast.dismissAll();
|
||||
//Materialize.Toast.removeAll();
|
||||
}
|
||||
|
||||
document.addEventListener("click", function(e) {
|
||||
@@ -318,7 +409,8 @@ addListener("click", "#zoffbutton", function(e) {
|
||||
});
|
||||
|
||||
addListener("click", ".vote-container", function(e) {
|
||||
var id = this.getAttribute("data-video-id");
|
||||
var that = e;
|
||||
var id = that.getAttribute("data-video-id");
|
||||
List.vote(id, "pos");
|
||||
});
|
||||
|
||||
@@ -336,6 +428,18 @@ addListener("click", ".next_page", function(e) {
|
||||
List.dynamicContentPage(1);
|
||||
});
|
||||
|
||||
addListener("click", ".prev", function(event){
|
||||
this.preventDefault();
|
||||
if(!offline) return;
|
||||
List.skip(false);
|
||||
});
|
||||
|
||||
addListener("click", ".skip", function(event){
|
||||
this.preventDefault();
|
||||
if(!offline) return;
|
||||
List.skip(true);
|
||||
});
|
||||
|
||||
addListener("click", ".last_page", function(e){
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(10);
|
||||
|
||||
@@ -23,7 +23,7 @@ function removeAllListeners() {
|
||||
|
||||
function resizeFunction() {
|
||||
if(chan && !Helper.mobilecheck()){
|
||||
if(document.querySelector("#wrapper") == null) return;
|
||||
if(document.querySelector("#wrapper") == null) return;
|
||||
if(!client && !embed) document.querySelector("#hide-playlist").style.left = (document.querySelector("#video-container").offsetWidth - document.querySelector("#hide-playlist").offsetWidth) + "px";
|
||||
if(window.innerWidth > 600 && document.querySelector("#wrapper").style.height != "") {
|
||||
document.querySelector("#wrapper").style.height = "";
|
||||
@@ -753,10 +753,10 @@ function disable_debug(){
|
||||
localStorage.debug = false;
|
||||
}
|
||||
|
||||
function embed_code(autoplay, width, height, color, embed_code){
|
||||
function embed_code(autoplay, width, height, color, embed_code, embed_local){
|
||||
var autoplay_add = "";
|
||||
if(autoplay == "&autoplay") autoplay_add = 'allow="autoplay"';
|
||||
return '<iframe src="https://zoff.me/_embed#' + chan.toLowerCase() + '&' + color + autoplay + embed_videoonly + '" width="' + width + 'px" height="' + height + 'px" ' + autoplay_add + '></iframe>';
|
||||
return '<iframe src="https://zoff.me/_embed#' + chan.toLowerCase() + '&' + color + autoplay + embed_videoonly + embed_local + '" width="' + width + 'px" height="' + height + 'px" ' + autoplay_add + '></iframe>';
|
||||
}
|
||||
|
||||
function change_offline(enabled, already_offline){
|
||||
@@ -795,88 +795,129 @@ function change_offline(enabled, already_offline){
|
||||
};
|
||||
|
||||
if(enabled){
|
||||
/*if(list_html == undefined){
|
||||
var tempOuter = document.createElement("div");
|
||||
list_html.innerHTML = list_html;
|
||||
//list_html.find(".list-remove").removeClass("hide");
|
||||
list_html = list_html.innerHTML;
|
||||
}*/
|
||||
//$(".list-remove").removeClass("hide");
|
||||
Helper.addClass("#viewers", "hide");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass(".prev playbar", "margin-playbar");
|
||||
Helper.removeClass(".prev playbar", "hide");
|
||||
Helper.removeClass("#offline-mode", "waves-cyan");
|
||||
Helper.addClass("#offline-mode", "cyan");
|
||||
Helper.removeClass(".delete-context-menu", "context-menu-disabled");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Disable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
socket.removeEventListener("color");
|
||||
document.getElementById("controls").addEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").addEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").addEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").addEventListener("mousemove", Channel.seekToMove);
|
||||
document.getElementById("controls").addEventListener("click", Channel.seekToClick);
|
||||
|
||||
document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>");
|
||||
var controlElement = document.querySelector("#controls");
|
||||
if(!Helper.mobilecheck()) Helper.css("#seekToDuration", "top", -controlElement.offsetHeight - 25 + "px");
|
||||
else if(Helper.mobilecheck()) Helper.css("#seekToDuration", "top", -controlElement.offsetHeight - 25 + "px");
|
||||
Helper.addClass("#controls", "ewresize");
|
||||
}
|
||||
if(full_playlist != undefined && !already_offline){
|
||||
for(var x = 0; x < full_playlist.length; x++){
|
||||
full_playlist[x].votes = 0;
|
||||
Helper.addClass("#viewers", "hide");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass(".prev playbar", "margin-playbar");
|
||||
Helper.removeClass(".prev playbar", "hide");
|
||||
Helper.removeClass("#offline-mode", "waves-cyan");
|
||||
Helper.addClass("#offline-mode", "cyan");
|
||||
Helper.removeClass(".delete-context-menu", "context-menu-disabled");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Disable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
socket.removeEventListener("color");
|
||||
document.getElementById("controls").addEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").addEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").addEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").addEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").addEventListener("mousemove", seekToMove);
|
||||
document.getElementById("controls").addEventListener("click", seekToClick);
|
||||
|
||||
document.querySelector("#main_components").insertAdjacentHTML("beforeend", "<div id='seekToDuration' class='hide'>00:00/01:00</div>");
|
||||
var controlElement = document.querySelector("#controls");
|
||||
if(!Helper.mobilecheck()) Helper.css("#seekToDuration", "top", -controlElement.offsetHeight - 25 + "px");
|
||||
else if(Helper.mobilecheck()) Helper.css("#seekToDuration", "top", -controlElement.offsetHeight - 25 + "px");
|
||||
Helper.addClass("#controls", "ewresize");
|
||||
}
|
||||
if(full_playlist != undefined && !already_offline){
|
||||
for(var x = 0; x < full_playlist.length; x++){
|
||||
full_playlist[x].votes = 0;
|
||||
}
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
} else {
|
||||
if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass("#playpause", "margin-playbar");
|
||||
Helper.removeClass("#viewers", "hide");
|
||||
Helper.addClass(".prev playbar", "hide");
|
||||
Helper.addClass("#offline-mode", "waves-cyan");
|
||||
Helper.removeClass("#offline-mode", "cyan");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Enable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
document.getElementById("controls").removeEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").removeEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").removeEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").removeEventListener("mousemove", seekToMove);
|
||||
document.getElementById("controls").removeEventListener("click", seekToClick);
|
||||
Helper.removeElement("#seekToDuration");
|
||||
socket.on("color", Player.setBGimage);
|
||||
socket.emit("pos", {channel: chan.toLowerCase()});
|
||||
var add = "";
|
||||
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()});
|
||||
Helper.removeClass("#controls", "ewresize");
|
||||
}
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
} else {
|
||||
/*if(list_html == undefined){
|
||||
var tempOuter = document.createElement("div");
|
||||
list_html.innerHTML = list_html;
|
||||
//list_html.find(".list-remove").removeClass("hide");
|
||||
list_html = list_html.innerHTML;
|
||||
}*/
|
||||
if(!Admin.logged_in) Helper.addClass(".delete-context-menu", "context-menu-disabled");
|
||||
Helper.removeClass(".margin-playbar", "margin-playbar");
|
||||
Helper.addClass("#playpause", "margin-playbar");
|
||||
Helper.removeClass("#viewers", "hide");
|
||||
Helper.addClass(".prev playbar", "hide");
|
||||
Helper.addClass("#offline-mode", "waves-cyan");
|
||||
Helper.removeClass("#offline-mode", "cyan");
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#offline-mode", {
|
||||
delay: 5,
|
||||
position: "bottom",
|
||||
html: "Enable local mode"
|
||||
});
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
document.getElementById("controls").removeEventListener("mouseenter", mouseEnter, false);
|
||||
document.getElementById("controls").removeEventListener("mouseleave", mouseLeave, false);
|
||||
document.getElementById("controls").removeEventListener("mousedown", mouseDown, false);
|
||||
document.getElementById("controls").removeEventListener("mouseup", mouseUp, false);
|
||||
document.getElementById("controls").removeEventListener("mousemove", Channel.seekToMove);
|
||||
document.getElementById("controls").removeEventListener("click", Channel.seekToClick);
|
||||
Helper.removeElement("#seekToDuration");
|
||||
socket.on("color", Player.setBGimage);
|
||||
socket.emit("pos", {channel: chan.toLowerCase()});
|
||||
var add = "";
|
||||
//if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
||||
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase()});
|
||||
Helper.removeClass("#controls", "ewresize");
|
||||
}
|
||||
function seekToClick(e){
|
||||
var acceptable = ["bar", "controls", "duration"];
|
||||
|
||||
if(acceptable.indexOf(e.target.getAttribute("id")) >= 0) {
|
||||
if(full_playlist == undefined) return;
|
||||
var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth;
|
||||
total = total * e.clientX;
|
||||
|
||||
if(!chromecastAvailable){
|
||||
if(videoSource == "youtube") Player.player.seekTo(total + Player.np.start);
|
||||
else if(videoSource == "soundcloud") Player.soundcloud_player.seek((total + Player.np.start) * 1000);
|
||||
dMinutes = Math.floor(duration / 60);
|
||||
dSeconds = duration - dMinutes * 60;
|
||||
currDurr = total;
|
||||
if(currDurr - Player.np.start > duration) {
|
||||
currDurr = duration - Player.np.start;
|
||||
}
|
||||
currDurr = currDurr - Player.np.start;
|
||||
minutes = Math.floor(currDurr / 60);
|
||||
seconds = currDurr - (minutes * 60);
|
||||
document.getElementById("duration").innerHTML = Helper.pad(minutes)+":"+Helper.pad(seconds)+" <span id='dash'>/</span> "+Helper.pad(dMinutes)+":"+Helper.pad(dSeconds);
|
||||
per = (100 / duration) * currDurr;
|
||||
if(per >= 100)
|
||||
per = 100;
|
||||
else if(duration === 0)
|
||||
per = 0;
|
||||
document.getElementById("bar").style.width = per + "%"
|
||||
} else {
|
||||
castSession.sendMessage("urn:x-cast:zoff.me", {type: "seekTo", seekTo: total});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function seekToMove(e){
|
||||
var pos_x = event.clientX - Math.ceil(document.getElementById("seekToDuration").offsetWidth / 2);
|
||||
if(pos_x < 0) pos_x = 0;
|
||||
else if(pos_x + document.getElementById("seekToDuration").offsetWidth > document.getElementById("controls").offsetWidth) {
|
||||
pos_x = document.getElementById("controls").offsetWidth - document.getElementById("seekToDuration").offsetWidth;
|
||||
}
|
||||
Helper.css("#seekToDuration", "left", pos_x + "px");
|
||||
try{
|
||||
var total = full_playlist[full_playlist.length - 1].duration / document.getElementById("controls").offsetWidth;
|
||||
total = total * event.clientX;
|
||||
var _time = Helper.secondsToOther(total);
|
||||
var _minutes = Helper.pad(_time[0]);
|
||||
var _seconds = Helper.pad(Math.ceil(_time[1]));
|
||||
Helper.setHtml("#seekToDuration", _minutes + ":" + _seconds);
|
||||
|
||||
var acceptable = ["bar", "controls", "duration"];
|
||||
if(acceptable.indexOf(event.target.getAttribute("id")) >= 0 && dragging) {
|
||||
document.getElementById("bar").style.width(((100 / duration) * total) + "%");
|
||||
}
|
||||
} catch(e){}
|
||||
}
|
||||
|
||||
function resizePlaylistPlaying(playing) {
|
||||
|
||||
@@ -76,6 +76,7 @@ var not_export_html = "";
|
||||
var embed_height = 300;
|
||||
var embed_width = 600;
|
||||
var embed_videoonly = "";
|
||||
var embed_localmode = "";
|
||||
var embed_autoplay = "&autoplay";
|
||||
var connect_error = false;
|
||||
var access_token_data_youtube = {};
|
||||
@@ -840,13 +841,13 @@ document.addEventListener("submit", function(event) {
|
||||
addListener("change", "#width_embed", function(event) {
|
||||
var that = this.target;
|
||||
embed_width = that.value;
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("change", "#height_embed", function(event) {
|
||||
var that = this.target;
|
||||
embed_height = that.value;
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("click", ".prev_page", function(event) {
|
||||
@@ -994,7 +995,7 @@ addListener("change", '#view_channels_select', function(event) {
|
||||
addListener("input", '#color_embed', function(e){
|
||||
var that = e;
|
||||
color = that.value.substring(1);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("click", ".chan-link", function(e){
|
||||
@@ -1172,13 +1173,19 @@ addListener("submit", "#listImportSpotify", function(event){
|
||||
addListener("change", "#autoplay", function(e) {
|
||||
if(e.checked) embed_autoplay = "&autoplay";
|
||||
else embed_autoplay = "";
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("change", "#videoonly", function(e) {
|
||||
if(e.checked) embed_videoonly = "&videoonly";
|
||||
else embed_videoonly = "";
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly);
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("change", "#localmode", function(e) {
|
||||
if(e.checked) embed_localmode = "&localmode";
|
||||
else embed_localmode = "";
|
||||
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode);
|
||||
});
|
||||
|
||||
addListener("click", "#playbutton_remote", function(event) {
|
||||
|
||||
@@ -426,7 +426,7 @@ var Player = {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(offline) {
|
||||
if(offline && !embed) {
|
||||
var url = 'https://img.youtube.com/vi/'+id+'/mqdefault.jpg';
|
||||
if(videoSource == "soundcloud") url = Player.np.thumbnail;
|
||||
getColor(url);
|
||||
|
||||
Reference in New Issue
Block a user