mirror of
https://github.com/KevinMidboe/zoff.git
synced 2026-02-10 03:19:38 +00:00
Somewhat prettier css
This commit is contained in:
@@ -1,291 +1,351 @@
|
||||
var Admin = {
|
||||
beginning: true,
|
||||
logged_in: false,
|
||||
|
||||
beginning:true,
|
||||
logged_in: false,
|
||||
update_strict_skip: function(value) {
|
||||
var form = document.getElementById("adminSettingsForm");
|
||||
form.strictSkipNumber = value;
|
||||
Admin.submitAdmin(form, false);
|
||||
},
|
||||
|
||||
update_strict_skip: function(value) {
|
||||
var form = document.getElementById("adminSettingsForm");
|
||||
form.strictSkipNumber = value;
|
||||
Admin.submitAdmin(form, false);
|
||||
},
|
||||
pw: function(msg) {
|
||||
Admin.logged_in = msg;
|
||||
if (!msg) return;
|
||||
w_p = false;
|
||||
M.Modal.init(document.getElementById("channel_info"));
|
||||
if (Admin.logged_in) {
|
||||
Helper.removeClass(".info_change_li", "hide");
|
||||
Helper.removeClass("#user_suggests", "hide");
|
||||
Helper.removeClass("#user-suggest-html", "hide");
|
||||
if (
|
||||
Helper.html(".suggested-badge") != "0" &&
|
||||
Helper.html(".suggested-badge") != ""
|
||||
) {
|
||||
Helper.removeClass(".suggested-badge", "hide");
|
||||
}
|
||||
if (conf != undefined && conf.strictSkip) {
|
||||
Helper.removeClass(".strict-skip-input", "hide");
|
||||
}
|
||||
} else {
|
||||
Admin.hideUserSuggested();
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
}
|
||||
Helper.removeClass(".delete-context-menu", "context-menu-disabled");
|
||||
names = [
|
||||
"vote",
|
||||
"addsongs",
|
||||
"longsongs",
|
||||
"frontpage",
|
||||
"allvideos",
|
||||
"removeplay",
|
||||
"skip",
|
||||
"shuffle",
|
||||
"userpass",
|
||||
"toggleChat",
|
||||
"strictSkip"
|
||||
];
|
||||
//Crypt.set_pass(chan.toLowerCase(), Crypt.tmp_pass);
|
||||
|
||||
pw: function(msg) {
|
||||
Admin.logged_in = msg;
|
||||
if(!msg) return;
|
||||
w_p = false;
|
||||
M.Modal.init(document.getElementById("channel_info"));
|
||||
if(Admin.logged_in) {
|
||||
Helper.removeClass(".info_change_li", "hide");
|
||||
Helper.removeClass("#user_suggests", "hide");
|
||||
Helper.removeClass("#user-suggest-html", "hide");
|
||||
if(Helper.html(".suggested-badge") != "0" && Helper.html(".suggested-badge") != "") {
|
||||
Helper.removeClass(".suggested-badge", "hide");
|
||||
}
|
||||
if(conf != undefined && conf.strictSkip) {
|
||||
Helper.removeClass(".strict-skip-input", "hide");
|
||||
}
|
||||
} else {
|
||||
Admin.hideUserSuggested();
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
}
|
||||
Helper.removeClass(".delete-context-menu", "context-menu-disabled");
|
||||
names = ["vote","addsongs","longsongs","frontpage", "allvideos",
|
||||
"removeplay", "skip", "shuffle", "userpass", "toggleChat", "strictSkip"];
|
||||
//Crypt.set_pass(chan.toLowerCase(), Crypt.tmp_pass);
|
||||
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].removeAttribute("disabled");
|
||||
}
|
||||
|
||||
Helper.removeClass(".card-action", "hide");
|
||||
Helper.addClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock_open";
|
||||
if(!Helper.mobilecheck()){
|
||||
Helper.tooltip('#admin-lock', {
|
||||
delay: 5,
|
||||
position: "left",
|
||||
html: "Logout"
|
||||
});
|
||||
}
|
||||
document.getElementById("password").value = "";
|
||||
document.getElementById("password").setAttribute("placeholder", "Change admin password");
|
||||
Helper.removeClass(".user-password-li", "hide");
|
||||
Helper.removeClass(".chat-toggle-li", "hide");
|
||||
Helper.removeClass(".delete-all", "hide");
|
||||
if(document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
|
||||
if(Helper.html("#admin-lock") != "lock_open"){
|
||||
Helper.addClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock_open";
|
||||
if(!Helper.mobilecheck()){
|
||||
Helper.tooltip('#admin-lock', {
|
||||
delay: 5,
|
||||
position: "left",
|
||||
html: "Logout"
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hideUserSuggested: function() {
|
||||
Helper.addClass("#user_suggests", "hide")
|
||||
Helper.addClass("#user-suggest-html", "hide");
|
||||
Helper.addClass(".suggested-badge", "hide");
|
||||
},
|
||||
|
||||
conf: function(msg) {
|
||||
if(msg[0].adminpass == ""){
|
||||
////Crypt.remove_pass(chan.toLowerCase());
|
||||
}
|
||||
Admin.set_conf(msg[0]);
|
||||
if(msg[0].adminpass !== "" && Admin.beginning){
|
||||
//emit("password", {password: Crypt.crypt_pass(Crypt.get_pass(chan.toLowerCase())), channel: chan.toLowerCase()});
|
||||
Admin.beginning = false;
|
||||
}
|
||||
},
|
||||
|
||||
pass_save: function() {
|
||||
if(!w_p) {
|
||||
//emit('password', {password: Crypt.crypt_pass(CryptoJS.SHA256(document.getElementById("password").value).toString()), channel: chan.toLowerCase(), oldpass: Crypt.crypt_pass(Crypt.get_pass(chan.toLowerCase()))});
|
||||
emit('password', {password: Crypt.crypt_pass(document.getElementById("password").value), channel: chan.toLowerCase()});
|
||||
} else {
|
||||
//emit('password', {password: Crypt.crypt_pass(CryptoJS.SHA256(document.getElementById("password").value).toString()), channel: chan.toLowerCase()});
|
||||
emit('password', {password: Crypt.crypt_pass(document.getElementById("password").value), channel: chan.toLowerCase()});
|
||||
}
|
||||
},
|
||||
|
||||
log_out: function() {
|
||||
before_toast();
|
||||
/*if(Crypt.get_pass(chan.toLowerCase())) {*/
|
||||
//Crypt.remove_pass(chan.toLowerCase());
|
||||
if(Admin.logged_in) {
|
||||
socket.emit("logout");
|
||||
M.toast({html: "Logged out", displayLength: 4000});
|
||||
Admin.display_logged_out();
|
||||
} else {
|
||||
M.toast({html: "Not logged in", displayLength: 4000});
|
||||
}
|
||||
},
|
||||
|
||||
display_logged_out: function() {
|
||||
Admin.logged_in = false;
|
||||
w_p = true;
|
||||
adminpass = "";
|
||||
names = ["vote","addsongs","longsongs","frontpage", "allvideos",
|
||||
"removeplay", "skip", "shuffle", "toggleChat", "strictSkip"];
|
||||
document.getElementById("password").value = "";
|
||||
Helper.addClass(".info_change_li", "hide");
|
||||
for (i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].setAttribute("disabled", true);
|
||||
}
|
||||
|
||||
if(Helper.html("#admin-lock") != "lock") {
|
||||
if(!Helper.mobilecheck()) {
|
||||
Helper.tooltip('#admin-lock', "destroy");
|
||||
}
|
||||
Helper.removeClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock";
|
||||
}
|
||||
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
Helper.addClass(".user-password-li", "hide");
|
||||
Helper.addClass(".chat-toggle-li", "hide");
|
||||
Helper.addClass(".delete-all", "hide");
|
||||
|
||||
if(document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
|
||||
Helper.addClass(".change_user_pass", "hide");
|
||||
Admin.hideUserSuggested();
|
||||
|
||||
Helper.removeClass("#admin-lock", "clickable");
|
||||
document.getElementById("password").setAttribute("placeholder", "Enter admin password");
|
||||
Helper.addClass(".delete-context-menu", "context-menu-disabled");
|
||||
},
|
||||
|
||||
save: function(userpass) {
|
||||
Admin.submitAdmin(document.getElementById("adminSettingsForm").elements, userpass);
|
||||
},
|
||||
|
||||
set_conf: function(conf_array) {
|
||||
conf = conf_array;
|
||||
music = conf_array.allvideos;
|
||||
longsongs = conf_array.longsongs;
|
||||
names = ["vote","addsongs","longsongs","frontpage", "allvideos",
|
||||
"removeplay", "skip", "shuffle", "userpass", "toggleChat", "strictSkip"];
|
||||
if(!conf.hasOwnProperty("toggleChat")) conf.toggleChat = true;
|
||||
toggleChat = conf.toggleChat;
|
||||
hasadmin = conf_array.adminpass != "";
|
||||
var show_disabled = true;
|
||||
if(hasadmin && Admin.logged_in || !hasadmin) {
|
||||
show_disabled = false;
|
||||
}
|
||||
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].checked = (conf_array[names[i]] === true);
|
||||
if(show_disabled) {
|
||||
document.getElementsByName(names[i])[0].setAttribute("disabled", show_disabled);
|
||||
} else {
|
||||
document.getElementsByName(names[i])[0].removeAttribute("disabled");
|
||||
}
|
||||
}
|
||||
document.getElementById("strict-input-number").value = conf.strictSkipNumber;
|
||||
if((hasadmin) && !Admin.logged_in) {
|
||||
if(Helper.html("#admin-lock") != "lock") Admin.display_logged_out();
|
||||
} else if(!hasadmin) {
|
||||
document.getElementById("password").setAttribute("placeholder", "Create admin password");
|
||||
} else {
|
||||
if(document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
}
|
||||
if(Admin.logged_in) {
|
||||
if(conf != undefined && conf.strictSkip) {
|
||||
Helper.removeClass(".strict-skip-input", "hide");
|
||||
}
|
||||
}
|
||||
if(conf != undefined && !conf.strictSkip) {
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
}
|
||||
if(!document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.addClass(".change_user_pass", "hide");
|
||||
//Crypt.remove_userpass(chan.toLowerCase());
|
||||
}
|
||||
var updated = false;
|
||||
|
||||
if(conf_array.thumbnail != undefined && conf_array.thumbnail != "") {
|
||||
document.getElementById("thumbnail_image").innerHTML = "<img id='thumbnail_image_channel' src='" + conf_array.thumbnail + "' alt='thumbnail' />";
|
||||
document.getElementById("thumbnail_input").value = conf_array.thumbnail;
|
||||
updated = true;
|
||||
}
|
||||
|
||||
if(conf_array.description != undefined && conf_array.description != "") {
|
||||
document.getElementById("description_area").innerHTML = conf_array.description;
|
||||
document.getElementById("description_input").value = conf_array.description;
|
||||
updated = true;
|
||||
}
|
||||
|
||||
if(conf_array.rules != undefined && conf_array.rules != "") {
|
||||
var existingRules = document.querySelector(".rules-container");
|
||||
if(existingRules) existingRules.remove();
|
||||
var rules = conf_array.rules.split("\n");
|
||||
var elementToAdd = "<li class='rules-container'><div class='row'><div class='col s10 offset-s1'><h4 class='center-align'>Rules</h4>";
|
||||
for(var i = 0; i < rules.length; i++) {
|
||||
elementToAdd += "<p class='initial-line-height'>" + rules[i] + "</p>";
|
||||
}
|
||||
elementToAdd += "</div></div>";
|
||||
document.querySelector(".channel_info_container").insertAdjacentHTML("afterend", elementToAdd);
|
||||
document.getElementById("rules_input").value = conf_array.rules;
|
||||
updated = true;
|
||||
}
|
||||
if(updated) M.updateTextFields();
|
||||
},
|
||||
|
||||
submitAdmin: function(form, userpass_changed) {
|
||||
voting = form.vote.checked;
|
||||
addsongs = form.addsongs.checked;
|
||||
longsongs = form.longsongs.checked;
|
||||
frontpage = form.frontpage.checked;
|
||||
allvideos = form.allvideos.checked;
|
||||
removeplay = form.removeplay.checked;
|
||||
skipping = form.skip.checked;
|
||||
shuffling = form.shuffle.checked;
|
||||
toggleChat = form.toggleChat.checked;
|
||||
strictSkip = form.strictSkip.checked;
|
||||
|
||||
if(form.strictSkipNumber) {
|
||||
strictSkipNumber = form.strictSkipNumber;
|
||||
} else {
|
||||
strictSkipNumber = conf.strictSkipNumber;
|
||||
}
|
||||
|
||||
var pass_send = userpass_changed && !form.userpass.checked ? "" : userpass;
|
||||
configs = {
|
||||
channel: chan.toLowerCase(),
|
||||
voting: voting,
|
||||
addsongs: addsongs,
|
||||
longsongs: longsongs,
|
||||
frontpage: frontpage,
|
||||
allvideos: allvideos,
|
||||
removeplay: removeplay,
|
||||
adminpass: adminpass == "" ? "" : Crypt.crypt_pass(adminpass),
|
||||
skipping: skipping,
|
||||
shuffling: shuffling,
|
||||
toggleChat: toggleChat,
|
||||
strictSkip: strictSkip,
|
||||
userpass: Crypt.crypt_pass(pass_send),
|
||||
userpass_changed: userpass_changed,
|
||||
strictSkipNumber: strictSkipNumber
|
||||
};
|
||||
|
||||
emit("conf", configs);
|
||||
},
|
||||
|
||||
hide_settings: function() {
|
||||
var sidenavElem = document.getElementsByClassName("sidenav")[0];
|
||||
M.Sidenav.getInstance(sidenavElem).close();
|
||||
},
|
||||
|
||||
shuffle: function() {
|
||||
if(!offline) {
|
||||
//var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||
//if(u == undefined) u = "";
|
||||
emit('shuffle', {channel: chan.toLowerCase()});
|
||||
} else {
|
||||
for(var x = 0; x < full_playlist.length; x++){
|
||||
var num = Math.floor(Math.random()*1000000);
|
||||
full_playlist[x].added = num;
|
||||
}
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
},
|
||||
|
||||
get_admin:function() {
|
||||
return [w_p, hasadmin];
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].removeAttribute("disabled");
|
||||
}
|
||||
|
||||
Helper.removeClass(".card-action", "hide");
|
||||
Helper.addClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock_open";
|
||||
if (!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#admin-lock", {
|
||||
delay: 5,
|
||||
position: "left",
|
||||
html: "Logout"
|
||||
});
|
||||
}
|
||||
document.getElementById("password").value = "";
|
||||
document
|
||||
.getElementById("password")
|
||||
.setAttribute("placeholder", "Change admin password");
|
||||
Helper.removeClass(".user-password-li", "hide");
|
||||
Helper.removeClass(".chat-toggle-li", "hide");
|
||||
Helper.removeClass(".delete-all", "hide");
|
||||
if (document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
|
||||
if (Helper.html("#admin-lock") != "lock_open") {
|
||||
Helper.addClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock_open";
|
||||
if (!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#admin-lock", {
|
||||
delay: 5,
|
||||
position: "left",
|
||||
html: "Logout"
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hideUserSuggested: function() {
|
||||
Helper.addClass("#user_suggests", "hide");
|
||||
Helper.addClass("#user-suggest-html", "hide");
|
||||
Helper.addClass(".suggested-badge", "hide");
|
||||
},
|
||||
|
||||
conf: function(msg) {
|
||||
if (msg[0].adminpass == "") {
|
||||
////Crypt.remove_pass(chan.toLowerCase());
|
||||
}
|
||||
Admin.set_conf(msg[0]);
|
||||
if (msg[0].adminpass !== "" && Admin.beginning) {
|
||||
//emit("password", {password: Crypt.crypt_pass(Crypt.get_pass(chan.toLowerCase())), channel: chan.toLowerCase()});
|
||||
Admin.beginning = false;
|
||||
}
|
||||
},
|
||||
|
||||
pass_save: function() {
|
||||
if (!w_p) {
|
||||
//emit('password', {password: Crypt.crypt_pass(CryptoJS.SHA256(document.getElementById("password").value).toString()), channel: chan.toLowerCase(), oldpass: Crypt.crypt_pass(Crypt.get_pass(chan.toLowerCase()))});
|
||||
emit("password", {
|
||||
password: Crypt.crypt_pass(document.getElementById("password").value),
|
||||
channel: chan.toLowerCase()
|
||||
});
|
||||
} else {
|
||||
//emit('password', {password: Crypt.crypt_pass(CryptoJS.SHA256(document.getElementById("password").value).toString()), channel: chan.toLowerCase()});
|
||||
emit("password", {
|
||||
password: Crypt.crypt_pass(document.getElementById("password").value),
|
||||
channel: chan.toLowerCase()
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
log_out: function() {
|
||||
before_toast();
|
||||
/*if(Crypt.get_pass(chan.toLowerCase())) {*/
|
||||
//Crypt.remove_pass(chan.toLowerCase());
|
||||
if (Admin.logged_in) {
|
||||
socket.emit("logout");
|
||||
M.toast({ html: "Logged out", displayLength: 4000 });
|
||||
Admin.display_logged_out();
|
||||
} else {
|
||||
M.toast({ html: "Not logged in", displayLength: 4000 });
|
||||
}
|
||||
},
|
||||
|
||||
display_logged_out: function() {
|
||||
Admin.logged_in = false;
|
||||
w_p = true;
|
||||
adminpass = "";
|
||||
names = [
|
||||
"vote",
|
||||
"addsongs",
|
||||
"longsongs",
|
||||
"frontpage",
|
||||
"allvideos",
|
||||
"removeplay",
|
||||
"skip",
|
||||
"shuffle",
|
||||
"toggleChat",
|
||||
"strictSkip"
|
||||
];
|
||||
document.getElementById("password").value = "";
|
||||
Helper.addClass(".info_change_li", "hide");
|
||||
for (i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].setAttribute("disabled", true);
|
||||
}
|
||||
|
||||
if (Helper.html("#admin-lock") != "lock") {
|
||||
if (!Helper.mobilecheck()) {
|
||||
Helper.tooltip("#admin-lock", "destroy");
|
||||
}
|
||||
Helper.removeClass("#admin-lock", "clickable");
|
||||
document.getElementById("admin-lock").innerHTML = "lock";
|
||||
}
|
||||
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
Helper.addClass(".user-password-li", "hide");
|
||||
Helper.addClass(".chat-toggle-li", "hide");
|
||||
Helper.addClass(".delete-all", "hide");
|
||||
|
||||
if (document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
|
||||
Helper.addClass(".change_user_pass", "hide");
|
||||
Admin.hideUserSuggested();
|
||||
|
||||
Helper.removeClass("#admin-lock", "clickable");
|
||||
document
|
||||
.getElementById("password")
|
||||
.setAttribute("placeholder", "Enter admin password");
|
||||
Helper.addClass(".delete-context-menu", "context-menu-disabled");
|
||||
},
|
||||
|
||||
save: function(userpass) {
|
||||
Admin.submitAdmin(
|
||||
document.getElementById("adminSettingsForm").elements,
|
||||
userpass
|
||||
);
|
||||
},
|
||||
|
||||
set_conf: function(conf_array) {
|
||||
conf = conf_array;
|
||||
music = conf_array.allvideos;
|
||||
longsongs = conf_array.longsongs;
|
||||
names = [
|
||||
"vote",
|
||||
"addsongs",
|
||||
"longsongs",
|
||||
"frontpage",
|
||||
"allvideos",
|
||||
"removeplay",
|
||||
"skip",
|
||||
"shuffle",
|
||||
"userpass",
|
||||
"toggleChat",
|
||||
"strictSkip"
|
||||
];
|
||||
if (!conf.hasOwnProperty("toggleChat")) conf.toggleChat = true;
|
||||
toggleChat = conf.toggleChat;
|
||||
hasadmin = conf_array.adminpass != "";
|
||||
var show_disabled = true;
|
||||
if ((hasadmin && Admin.logged_in) || !hasadmin) {
|
||||
show_disabled = false;
|
||||
}
|
||||
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
document.getElementsByName(names[i])[0].checked =
|
||||
conf_array[names[i]] === true;
|
||||
if (show_disabled) {
|
||||
document
|
||||
.getElementsByName(names[i])[0]
|
||||
.setAttribute("disabled", show_disabled);
|
||||
} else {
|
||||
document.getElementsByName(names[i])[0].removeAttribute("disabled");
|
||||
}
|
||||
}
|
||||
document.getElementById("strict-input-number").value =
|
||||
conf.strictSkipNumber;
|
||||
if (hasadmin && !Admin.logged_in) {
|
||||
if (Helper.html("#admin-lock") != "lock") Admin.display_logged_out();
|
||||
} else if (!hasadmin) {
|
||||
document
|
||||
.getElementById("password")
|
||||
.setAttribute("placeholder", "Create admin password");
|
||||
} else {
|
||||
if (document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.removeClass(".change_user_pass", "hide");
|
||||
}
|
||||
}
|
||||
if (Admin.logged_in) {
|
||||
if (conf != undefined && conf.strictSkip) {
|
||||
Helper.removeClass(".strict-skip-input", "hide");
|
||||
}
|
||||
}
|
||||
if (conf != undefined && !conf.strictSkip) {
|
||||
Helper.addClass(".strict-skip-input", "hide");
|
||||
}
|
||||
if (!document.getElementsByClassName("password_protected")[0].checked) {
|
||||
Helper.addClass(".change_user_pass", "hide");
|
||||
//Crypt.remove_userpass(chan.toLowerCase());
|
||||
}
|
||||
var updated = false;
|
||||
|
||||
if (conf_array.thumbnail != undefined && conf_array.thumbnail != "") {
|
||||
document.getElementById("thumbnail_image").innerHTML =
|
||||
"<img id='thumbnail_image_channel' src='" +
|
||||
conf_array.thumbnail +
|
||||
"' alt='thumbnail' />";
|
||||
document.getElementById("thumbnail_input").value = conf_array.thumbnail;
|
||||
updated = true;
|
||||
}
|
||||
|
||||
if (conf_array.description != undefined && conf_array.description != "") {
|
||||
document.getElementById("description_area").innerHTML =
|
||||
conf_array.description;
|
||||
document.getElementById("description_input").value =
|
||||
conf_array.description;
|
||||
updated = true;
|
||||
}
|
||||
|
||||
if (conf_array.rules != undefined && conf_array.rules != "") {
|
||||
var existingRules = document.querySelector(".rules-container");
|
||||
if (existingRules) existingRules.remove();
|
||||
var rules = conf_array.rules.split("\n");
|
||||
var elementToAdd =
|
||||
"<li class='rules-container'><div class='row'><div class='col s10 offset-s1'><h4 class='center-align'>Rules</h4>";
|
||||
for (var i = 0; i < rules.length; i++) {
|
||||
elementToAdd += "<p class='initial-line-height'>" + rules[i] + "</p>";
|
||||
}
|
||||
elementToAdd += "</div></div>";
|
||||
document
|
||||
.querySelector(".channel_info_container")
|
||||
.insertAdjacentHTML("afterend", elementToAdd);
|
||||
document.getElementById("rules_input").value = conf_array.rules;
|
||||
updated = true;
|
||||
}
|
||||
if (updated) M.updateTextFields();
|
||||
},
|
||||
|
||||
submitAdmin: function(form, userpass_changed) {
|
||||
voting = form.vote.checked;
|
||||
addsongs = form.addsongs.checked;
|
||||
longsongs = form.longsongs.checked;
|
||||
frontpage = form.frontpage.checked;
|
||||
allvideos = form.allvideos.checked;
|
||||
removeplay = form.removeplay.checked;
|
||||
skipping = form.skip.checked;
|
||||
shuffling = form.shuffle.checked;
|
||||
toggleChat = form.toggleChat.checked;
|
||||
strictSkip = form.strictSkip.checked;
|
||||
|
||||
if (form.strictSkipNumber) {
|
||||
strictSkipNumber = form.strictSkipNumber;
|
||||
} else {
|
||||
strictSkipNumber = conf.strictSkipNumber;
|
||||
}
|
||||
|
||||
var pass_send = userpass_changed && !form.userpass.checked ? "" : userpass;
|
||||
configs = {
|
||||
channel: chan.toLowerCase(),
|
||||
voting: voting,
|
||||
addsongs: addsongs,
|
||||
longsongs: longsongs,
|
||||
frontpage: frontpage,
|
||||
allvideos: allvideos,
|
||||
removeplay: removeplay,
|
||||
adminpass: adminpass == "" ? "" : Crypt.crypt_pass(adminpass),
|
||||
skipping: skipping,
|
||||
shuffling: shuffling,
|
||||
toggleChat: toggleChat,
|
||||
strictSkip: strictSkip,
|
||||
userpass: Crypt.crypt_pass(pass_send),
|
||||
userpass_changed: userpass_changed,
|
||||
strictSkipNumber: strictSkipNumber
|
||||
};
|
||||
|
||||
emit("conf", configs);
|
||||
},
|
||||
|
||||
hide_settings: function() {
|
||||
var sidenavElem = document.getElementsByClassName("sidenav")[0];
|
||||
M.Sidenav.getInstance(sidenavElem).close();
|
||||
},
|
||||
|
||||
shuffle: function() {
|
||||
if (!offline) {
|
||||
//var u = Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()), true);
|
||||
//if(u == undefined) u = "";
|
||||
emit("shuffle", { channel: chan.toLowerCase() });
|
||||
} else {
|
||||
for (var x = 0; x < full_playlist.length; x++) {
|
||||
var num = Math.floor(Math.random() * 1000000);
|
||||
full_playlist[x].added = num;
|
||||
}
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
},
|
||||
|
||||
get_admin: function() {
|
||||
return [w_p, hasadmin];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,27 +1,49 @@
|
||||
window.addEventListener("load", function() {
|
||||
var query = getQueryHash(window.location.hash);
|
||||
var redirect = window.location.protocol + "//" + window.location.hostname + "/api/oauth";
|
||||
var client_id;
|
||||
var response;
|
||||
var scope;
|
||||
var query = getQueryHash(window.location.hash);
|
||||
var redirect =
|
||||
window.location.protocol + "//" + window.location.hostname + "/api/oauth";
|
||||
var client_id;
|
||||
var response;
|
||||
var scope;
|
||||
|
||||
if(query.spotify) {
|
||||
client_id = "b934ecdd173648f5bcd38738af529d58";
|
||||
response = "token";
|
||||
scope = "playlist-read-private ugc-image-upload playlist-read-collaborative user-read-private playlist-modify-public playlist-modify-private";
|
||||
state = query.nonce;
|
||||
window.location.href = "https://accounts.spotify.com/authorize?client_id=" + client_id + "&scope=" + scope + "&show_dialog=false&response_type=" + response + "&redirect_uri=" + redirect + "&state=" + state;
|
||||
if (query.spotify) {
|
||||
client_id = "b934ecdd173648f5bcd38738af529d58";
|
||||
response = "token";
|
||||
scope =
|
||||
"playlist-read-private ugc-image-upload playlist-read-collaborative user-read-private playlist-modify-public playlist-modify-private";
|
||||
state = query.nonce;
|
||||
window.location.href =
|
||||
"https://accounts.spotify.com/authorize?client_id=" +
|
||||
client_id +
|
||||
"&scope=" +
|
||||
scope +
|
||||
"&show_dialog=false&response_type=" +
|
||||
response +
|
||||
"&redirect_uri=" +
|
||||
redirect +
|
||||
"&state=" +
|
||||
state;
|
||||
} else if (query.youtube) {
|
||||
client_id =
|
||||
"944988770273-butsmlr1aotlsskk8lmgvh0etqqekigf.apps.googleusercontent.com";
|
||||
response = "token";
|
||||
scope = "https://www.googleapis.com/auth/youtube";
|
||||
state = query.nonce;
|
||||
|
||||
} else if (query.youtube) {
|
||||
client_id = "944988770273-butsmlr1aotlsskk8lmgvh0etqqekigf.apps.googleusercontent.com";
|
||||
response = "token";
|
||||
scope = "https://www.googleapis.com/auth/youtube";
|
||||
state = query.nonce;
|
||||
|
||||
//window.opener.callback(query);
|
||||
window.location.href = "https://accounts.google.com/o/oauth2/v2/auth?client_id=" + client_id + "&response_type=" + response + "&state=" + state + "&redirect_uri=" + redirect + "&scope=" + scope;
|
||||
} else if(query.soundcloud) {
|
||||
/*
|
||||
//window.opener.callback(query);
|
||||
window.location.href =
|
||||
"https://accounts.google.com/o/oauth2/v2/auth?client_id=" +
|
||||
client_id +
|
||||
"&response_type=" +
|
||||
response +
|
||||
"&state=" +
|
||||
state +
|
||||
"&redirect_uri=" +
|
||||
redirect +
|
||||
"&scope=" +
|
||||
scope;
|
||||
} else if (query.soundcloud) {
|
||||
/*
|
||||
SC.initialize({
|
||||
client_id: api_key.soundcloud,
|
||||
redirect_uri: 'https://zoff.me/api/oauth'
|
||||
@@ -38,53 +60,61 @@ window.addEventListener("load", function() {
|
||||
console.log(e);
|
||||
});*/
|
||||
|
||||
var redirect_uri = encodeURIComponent("https://zoff.me/api/oauth");
|
||||
var response_type = "code";
|
||||
var scope = "non-expiring";
|
||||
var state = query.nonce;
|
||||
var url = "https://soundcloud.com/connect?client_id=" + api_key.soundcloud + "&redirect_uri=" + redirect_uri + "&state=" + state + "&display=page&response_type=code&scope=" + scope;
|
||||
//console.log(url);
|
||||
window.location.href = url;
|
||||
var redirect_uri = encodeURIComponent("https://zoff.me/api/oauth");
|
||||
var response_type = "code";
|
||||
var scope = "non-expiring";
|
||||
var state = query.nonce;
|
||||
var url =
|
||||
"https://soundcloud.com/connect?client_id=" +
|
||||
api_key.soundcloud +
|
||||
"&redirect_uri=" +
|
||||
redirect_uri +
|
||||
"&state=" +
|
||||
state +
|
||||
"&display=page&response_type=code&scope=" +
|
||||
scope;
|
||||
//console.log(url);
|
||||
window.location.href = url;
|
||||
} else {
|
||||
var query_parameters;
|
||||
if (window.location.search.length > 0) {
|
||||
query_parameters = getQueryHash(window.location.search);
|
||||
} else {
|
||||
var query_parameters;
|
||||
if(window.location.search.length > 0) {
|
||||
query_parameters = getQueryHash(window.location.search);
|
||||
} else {
|
||||
query_parameters = getQueryHash(window.location.hash);
|
||||
}
|
||||
try {
|
||||
window.opener.callback(query_parameters);
|
||||
} catch(e) {
|
||||
window.setTimeout(window.opener.SC_player.connectCallback, 1);
|
||||
}
|
||||
query_parameters = getQueryHash(window.location.hash);
|
||||
}
|
||||
try {
|
||||
window.opener.callback(query_parameters);
|
||||
} catch (e) {
|
||||
window.setTimeout(window.opener.SC_player.connectCallback, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function getQueryHash(url) {
|
||||
if(window.location.search.length > 0) {
|
||||
if(url.substring(url.length - 1) == "#") {
|
||||
url = url.substring(0, url.length - 1);
|
||||
}
|
||||
var temp_arr = url.substring(1).split("&");
|
||||
var done_obj = {};
|
||||
var splitted;
|
||||
for(var i in temp_arr) {
|
||||
splitted = temp_arr[i].split("=");
|
||||
if(splitted.length == 2) {
|
||||
done_obj[splitted[0]] = splitted[1];
|
||||
}
|
||||
}
|
||||
return done_obj;
|
||||
} else {
|
||||
var temp_arr = url.substring(1).split("&");
|
||||
var done_obj = {};
|
||||
var splitted;
|
||||
for(var i in temp_arr) {
|
||||
splitted = temp_arr[i].split("=");
|
||||
if(splitted.length == 2) {
|
||||
done_obj[splitted[0]] = splitted[1];
|
||||
}
|
||||
}
|
||||
return done_obj;
|
||||
if (window.location.search.length > 0) {
|
||||
if (url.substring(url.length - 1) == "#") {
|
||||
url = url.substring(0, url.length - 1);
|
||||
}
|
||||
var temp_arr = url.substring(1).split("&");
|
||||
var done_obj = {};
|
||||
var splitted;
|
||||
for (var i in temp_arr) {
|
||||
splitted = temp_arr[i].split("=");
|
||||
if (splitted.length == 2) {
|
||||
done_obj[splitted[0]] = splitted[1];
|
||||
}
|
||||
}
|
||||
return done_obj;
|
||||
} else {
|
||||
var temp_arr = url.substring(1).split("&");
|
||||
var done_obj = {};
|
||||
var splitted;
|
||||
for (var i in temp_arr) {
|
||||
splitted = temp_arr[i].split("=");
|
||||
if (splitted.length == 2) {
|
||||
done_obj[splitted[0]] = splitted[1];
|
||||
}
|
||||
}
|
||||
return done_obj;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,207 +1,311 @@
|
||||
var Chat = {
|
||||
channel_received: 0,
|
||||
all_received: 0,
|
||||
chat_admin_help: [
|
||||
"/ban USERNAME REASON to ban user",
|
||||
"/unban USERNAME to unban a user"
|
||||
],
|
||||
chat_help: [
|
||||
"/login <new name> <password> to register and save a password for a nickname, or to log in with a password on a name.",
|
||||
"/login <name> <new_password> <old_password> to change the password on a nickname",
|
||||
"/logout to logout",
|
||||
"/who to see the names of the people in the channel",
|
||||
"Want your own icon besides your name? If you donate 5$ or more, we'll add a picture of your choosing (following our guidelines) besides your name!"
|
||||
],
|
||||
|
||||
channel_received: 0,
|
||||
all_received: 0,
|
||||
chat_admin_help: [
|
||||
"/ban USERNAME REASON to ban user",
|
||||
"/unban USERNAME to unban a user"
|
||||
],
|
||||
chat_help: [
|
||||
"/login <new name> <password> to register and save a password for a nickname, or to log in with a password on a name.",
|
||||
"/login <name> <new_password> <old_password> to change the password on a nickname",
|
||||
"/logout to logout",
|
||||
"/who to see the names of the people in the channel",
|
||||
"Want your own icon besides your name? If you donate 5$ or more, we'll add a picture of your choosing (following our guidelines) besides your name!"
|
||||
],
|
||||
namechange: function(data, first, initial) {
|
||||
var input = data.split(" ");
|
||||
if (input.length == 2) {
|
||||
var name = input[0];
|
||||
var password = input[1];
|
||||
|
||||
namechange: function(data, first, initial) {
|
||||
var input = data.split(" ");
|
||||
if(input.length == 2) {
|
||||
var name = input[0];
|
||||
var password = input[1];
|
||||
password = Crypt.crypt_chat_pass(password);
|
||||
socket.emit("namechange", {
|
||||
name: name,
|
||||
channel: chan.toLowerCase(),
|
||||
password: password,
|
||||
first: first
|
||||
});
|
||||
} else if (input.length == 3) {
|
||||
var name = input[0];
|
||||
var new_password = input[1];
|
||||
var old_password = input[2];
|
||||
|
||||
password = Crypt.crypt_chat_pass(password);
|
||||
socket.emit("namechange", {name: name, channel: chan.toLowerCase(), password: password, first: first});
|
||||
} else if(input.length == 3) {
|
||||
var name = input[0];
|
||||
var new_password = input[1];
|
||||
var old_password = input[2];
|
||||
new_password = Crypt.crypt_chat_pass(new_password);
|
||||
old_password = Crypt.crypt_chat_pass(old_password);
|
||||
|
||||
new_password = Crypt.crypt_chat_pass(new_password);
|
||||
old_password = Crypt.crypt_chat_pass(old_password);
|
||||
|
||||
socket.emit("namechange", {name: name, channel: chan.toLowerCase(), new_password: new_password, old_password: old_password});
|
||||
} else if(first) {
|
||||
var to_send = {initial: initial, first: true};
|
||||
if(chan != undefined && chan != "") {
|
||||
to_send.channel = chan.toLowerCase();
|
||||
}
|
||||
socket.emit("namechange", to_send);
|
||||
}
|
||||
},
|
||||
|
||||
removename: function() {
|
||||
socket.emit("removename", {channel: chan.toLowerCase()});
|
||||
Crypt.remove_name();
|
||||
},
|
||||
|
||||
chat: function(data) {
|
||||
if(data.value.length > 150) return;
|
||||
if(data.value.startsWith("/name ") || data.value.startsWith("/removename")) {
|
||||
data.value = "/help";
|
||||
Chat.chat(data);
|
||||
return;
|
||||
} else if(data.value.startsWith("/login ")){
|
||||
Chat.namechange(data.value.substring(7), false);
|
||||
} else if(data.value.startsWith("/help")) {
|
||||
var add = "";
|
||||
if(document.querySelector(".chat-tab-li a.active").getAttribute("href") == "#all_chat"){
|
||||
if(document.querySelector("#chatall").children.length > 100) {
|
||||
document.querySelector("#chatall").children[0].remove()
|
||||
}
|
||||
add = "chatall";
|
||||
} else {
|
||||
if(document.querySelector("#chatchannel").children.length > 100) {
|
||||
document.querySelector("#chatchannel").children[0].remove()
|
||||
}
|
||||
add = "chatchannel";
|
||||
}
|
||||
var help = Chat.chat_help;
|
||||
if(Admin.logged_in) help = help.concat(Chat.chat_admin_help);
|
||||
for(var x = 0; x < help.length; x++) {
|
||||
var color = Helper.intToARGB(Helper.hashCode("System"));
|
||||
if(color.length < 6) {
|
||||
for(x = color.length; x < 6; x++) {
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
var _time = new Date();
|
||||
var time = Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
color = Helper.hexToRgb(color.substring(0,6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
document.querySelector("#" + add).insertAdjacentHTML("beforeend", "<li title='Zoff''><span class='time_color'>" + time + "</span> <img class='chat-icon' src='https://zoff.me/assets/images/favicon-32x32.png' alt='System'><span style='color:" + color_temp + ";'>System</span>: </li>");
|
||||
var in_text = document.createTextNode(help[x]);
|
||||
document.querySelector("#" + add).children[document.querySelector("#" + add).children.length - 1].appendChild(in_text);
|
||||
document.getElementById("" + add).scrollTop = document.getElementById("" + add).scrollHeight;
|
||||
}
|
||||
} else if(data.value.startsWith("/logout")) {
|
||||
Chat.removename();
|
||||
} else if(document.querySelector(".chat-tab-li a.active").getAttribute("href") == "#all_chat") {
|
||||
socket.emit("all,chat", {channel: chan.toLowerCase(), data: data.value});
|
||||
} else {
|
||||
socket.emit("chat", {channel: chan.toLowerCase(), data: data.value});
|
||||
}
|
||||
data.value = "";
|
||||
return;
|
||||
},
|
||||
|
||||
createChatElement: function(allchat, channel, time, icon, color, from, message) {
|
||||
var liElement = document.createElement("li");
|
||||
liElement.innerHTML += "<span class='time_color'>" + time + "</span> " + icon;
|
||||
var nameElement = document.createElement("span");
|
||||
nameElement.innerText = from;
|
||||
nameElement.style.color = color;
|
||||
liElement.appendChild(nameElement);
|
||||
if(allchat) {
|
||||
liElement.title = channel;
|
||||
liElement.innerHTML += "<span class='channel-info-all-chat'> " + channel + "</span>";
|
||||
}
|
||||
var in_text = document.createTextNode(message);
|
||||
liElement.appendChild(in_text);
|
||||
return liElement;
|
||||
},
|
||||
|
||||
allchat: function(inp, time_sent, disable_blink) {
|
||||
if(inp.msg.substring(0,1) == ":" && !chat_active && !disable_blink) {
|
||||
Chat.all_received += 1;
|
||||
document.querySelector("#favicon").getAttribute("href", "/assets/images/highlogo.png");
|
||||
unseen = true;
|
||||
chat_unseen = true;
|
||||
Helper.removeClass(document.querySelector(".chat-link span.badge.new.white"), "hide");
|
||||
var to_display = Chat.channel_received + Chat.all_received > 9 ? "9+" : Chat.channel_received + Chat.all_received;
|
||||
Helper.setHtml(document.querySelector(".chat-link span.badge.new.white"), to_display);
|
||||
}
|
||||
|
||||
if(document.hidden) {
|
||||
document.getElementById("favicon").setAttribute("href", "/assets/images/highlogo.png");
|
||||
}
|
||||
|
||||
if(document.querySelector("#chatall").children.length > 100) {
|
||||
document.querySelector("#chatall").children[0].remove()
|
||||
}
|
||||
var color = Helper.intToARGB(Helper.hashCode(inp.from));
|
||||
if(color.length < 6) {
|
||||
for(x = color.length; x < 6; x++){
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
var icon_add = "";
|
||||
if(inp.hasOwnProperty("icon") && inp.icon !== false && inp.icon != "") {
|
||||
icon_add = "<img class='chat-icon' src='" + inp.icon + "' alt='" + inp.from + "'>";
|
||||
}
|
||||
|
||||
color = Helper.hexToRgb(color.substring(0,6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
var _time = new Date();
|
||||
if(time_sent) {
|
||||
_time = new Date(time_sent);
|
||||
}
|
||||
var time = Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
var element = Chat.createChatElement(true, Helper.decodeChannelName(inp.channel), time, icon_add, color_temp, inp.from, inp.msg);
|
||||
//document.querySelector("#chatall").insertAdjacentHTML("beforeend", element);
|
||||
document.querySelector("#chatall").appendChild(element);
|
||||
if(!userscroll) {
|
||||
programscroll = true;
|
||||
document.getElementById("chatall").scrollTop = document.getElementById("chatall").scrollHeight;
|
||||
programscroll = false;
|
||||
}
|
||||
},
|
||||
|
||||
channelchat: function(data, time_sent, disable_blink) {
|
||||
if(data.msg.substring(0,1) == ":" && !chat_active && !disable_blink && data.from.toLowerCase() != "system") {
|
||||
document.querySelector("#favicon").setAttribute("href", "/assets/images/highlogo.png");
|
||||
unseen = true;
|
||||
chat_unseen = true;
|
||||
Chat.channel_received += 1;
|
||||
//blink_interval = setTimeout(Chat.chat_blink, 1000);
|
||||
Helper.removeClass(document.querySelector(".chat-link span.badge.new.white"), "hide");
|
||||
var to_display = Chat.channel_received + Chat.all_received > 9 ? "9+" : Chat.channel_received + Chat.all_received;
|
||||
Helper.setHtml(document.querySelector(".chat-link span.badge.new.white"), to_display);
|
||||
}
|
||||
|
||||
if(document.querySelector("#chatchannel").children.length > 100) {
|
||||
document.querySelector("#chatchannel").children[0].remove()
|
||||
}
|
||||
|
||||
var icon_add = "";
|
||||
if(data.hasOwnProperty("icon") && data.icon !== false && data.icon != "") {
|
||||
icon_add = "<img class='chat-icon' src='" + data.icon + "' alt='" + data.from + "'>";
|
||||
}
|
||||
|
||||
var color = Helper.intToARGB(Helper.hashCode(data.from));
|
||||
if(color.length < 6) {
|
||||
for(x = color.length; x < 6; x++) {
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
color = Helper.hexToRgb(color.substring(0,6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
var _time = new Date();
|
||||
if(time_sent) {
|
||||
_time = new Date(time_sent);
|
||||
}
|
||||
var time = Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
//document.querySelector("#chatchannel").insertAdjacentHTML("beforeend", "<li><span class='time_color'>" + time + "</span> " + icon_add + "<span style='color:"+color_temp+";'>"+data.from+"</span></li>");
|
||||
//var in_text = document.createTextNode(data.msg);
|
||||
//document.querySelector("#chatchannel").children[document.querySelector("#chatchannel").children.length - 1].appendChild(in_text);
|
||||
var element = Chat.createChatElement(false, null, time, icon_add, color_temp, data.from, data.msg);
|
||||
//document.querySelector("#chatall").insertAdjacentHTML("beforeend", element);
|
||||
document.querySelector("#chatchannel").appendChild(element);
|
||||
|
||||
if(!userscroll) {
|
||||
programscroll = true;
|
||||
document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight;
|
||||
programscroll = false;
|
||||
}
|
||||
socket.emit("namechange", {
|
||||
name: name,
|
||||
channel: chan.toLowerCase(),
|
||||
new_password: new_password,
|
||||
old_password: old_password
|
||||
});
|
||||
} else if (first) {
|
||||
var to_send = { initial: initial, first: true };
|
||||
if (chan != undefined && chan != "") {
|
||||
to_send.channel = chan.toLowerCase();
|
||||
}
|
||||
socket.emit("namechange", to_send);
|
||||
}
|
||||
},
|
||||
|
||||
removename: function() {
|
||||
socket.emit("removename", { channel: chan.toLowerCase() });
|
||||
Crypt.remove_name();
|
||||
},
|
||||
|
||||
chat: function(data) {
|
||||
if (data.value.length > 150) return;
|
||||
if (
|
||||
data.value.startsWith("/name ") ||
|
||||
data.value.startsWith("/removename")
|
||||
) {
|
||||
data.value = "/help";
|
||||
Chat.chat(data);
|
||||
return;
|
||||
} else if (data.value.startsWith("/login ")) {
|
||||
Chat.namechange(data.value.substring(7), false);
|
||||
} else if (data.value.startsWith("/help")) {
|
||||
var add = "";
|
||||
if (
|
||||
document.querySelector(".chat-tab-li a.active").getAttribute("href") ==
|
||||
"#all_chat"
|
||||
) {
|
||||
if (document.querySelector("#chatall").children.length > 100) {
|
||||
document.querySelector("#chatall").children[0].remove();
|
||||
}
|
||||
add = "chatall";
|
||||
} else {
|
||||
if (document.querySelector("#chatchannel").children.length > 100) {
|
||||
document.querySelector("#chatchannel").children[0].remove();
|
||||
}
|
||||
add = "chatchannel";
|
||||
}
|
||||
var help = Chat.chat_help;
|
||||
if (Admin.logged_in) help = help.concat(Chat.chat_admin_help);
|
||||
for (var x = 0; x < help.length; x++) {
|
||||
var color = Helper.intToARGB(Helper.hashCode("System"));
|
||||
if (color.length < 6) {
|
||||
for (x = color.length; x < 6; x++) {
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
var _time = new Date();
|
||||
var time =
|
||||
Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
color = Helper.hexToRgb(color.substring(0, 6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
document
|
||||
.querySelector("#" + add)
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
"<li title='Zoff''><span class='time_color'>" +
|
||||
time +
|
||||
"</span> <img class='chat-icon' src='https://zoff.me/assets/images/favicon-32x32.png' alt='System'><span style='color:" +
|
||||
color_temp +
|
||||
";'>System</span>: </li>"
|
||||
);
|
||||
var in_text = document.createTextNode(help[x]);
|
||||
document
|
||||
.querySelector("#" + add)
|
||||
.children[
|
||||
document.querySelector("#" + add).children.length - 1
|
||||
].appendChild(in_text);
|
||||
document.getElementById("" + add).scrollTop = document.getElementById(
|
||||
"" + add
|
||||
).scrollHeight;
|
||||
}
|
||||
} else if (data.value.startsWith("/logout")) {
|
||||
Chat.removename();
|
||||
} else if (
|
||||
document.querySelector(".chat-tab-li a.active").getAttribute("href") ==
|
||||
"#all_chat"
|
||||
) {
|
||||
socket.emit("all,chat", {
|
||||
channel: chan.toLowerCase(),
|
||||
data: data.value
|
||||
});
|
||||
} else {
|
||||
socket.emit("chat", { channel: chan.toLowerCase(), data: data.value });
|
||||
}
|
||||
data.value = "";
|
||||
return;
|
||||
},
|
||||
|
||||
createChatElement: function(
|
||||
allchat,
|
||||
channel,
|
||||
time,
|
||||
icon,
|
||||
color,
|
||||
from,
|
||||
message
|
||||
) {
|
||||
var liElement = document.createElement("li");
|
||||
liElement.innerHTML +=
|
||||
"<span class='time_color'>" + time + "</span> " + icon;
|
||||
var nameElement = document.createElement("span");
|
||||
nameElement.innerText = from;
|
||||
nameElement.style.color = color;
|
||||
liElement.appendChild(nameElement);
|
||||
if (allchat) {
|
||||
liElement.title = channel;
|
||||
liElement.innerHTML +=
|
||||
"<span class='channel-info-all-chat'> " + channel + "</span>";
|
||||
}
|
||||
var in_text = document.createTextNode(message);
|
||||
liElement.appendChild(in_text);
|
||||
return liElement;
|
||||
},
|
||||
|
||||
allchat: function(inp, time_sent, disable_blink) {
|
||||
if (inp.msg.substring(0, 1) == ":" && !chat_active && !disable_blink) {
|
||||
Chat.all_received += 1;
|
||||
document
|
||||
.querySelector("#favicon")
|
||||
.getAttribute("href", "/assets/images/highlogo.png");
|
||||
unseen = true;
|
||||
chat_unseen = true;
|
||||
Helper.removeClass(
|
||||
document.querySelector(".chat-link span.badge.new.white"),
|
||||
"hide"
|
||||
);
|
||||
var to_display =
|
||||
Chat.channel_received + Chat.all_received > 9
|
||||
? "9+"
|
||||
: Chat.channel_received + Chat.all_received;
|
||||
Helper.setHtml(
|
||||
document.querySelector(".chat-link span.badge.new.white"),
|
||||
to_display
|
||||
);
|
||||
}
|
||||
|
||||
if (document.hidden) {
|
||||
document
|
||||
.getElementById("favicon")
|
||||
.setAttribute("href", "/assets/images/highlogo.png");
|
||||
}
|
||||
|
||||
if (document.querySelector("#chatall").children.length > 100) {
|
||||
document.querySelector("#chatall").children[0].remove();
|
||||
}
|
||||
var color = Helper.intToARGB(Helper.hashCode(inp.from));
|
||||
if (color.length < 6) {
|
||||
for (x = color.length; x < 6; x++) {
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
var icon_add = "";
|
||||
if (inp.hasOwnProperty("icon") && inp.icon !== false && inp.icon != "") {
|
||||
icon_add =
|
||||
"<img class='chat-icon' src='" + inp.icon + "' alt='" + inp.from + "'>";
|
||||
}
|
||||
|
||||
color = Helper.hexToRgb(color.substring(0, 6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
var _time = new Date();
|
||||
if (time_sent) {
|
||||
_time = new Date(time_sent);
|
||||
}
|
||||
var time =
|
||||
Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
var element = Chat.createChatElement(
|
||||
true,
|
||||
Helper.decodeChannelName(inp.channel),
|
||||
time,
|
||||
icon_add,
|
||||
color_temp,
|
||||
inp.from,
|
||||
inp.msg
|
||||
);
|
||||
//document.querySelector("#chatall").insertAdjacentHTML("beforeend", element);
|
||||
document.querySelector("#chatall").appendChild(element);
|
||||
if (!userscroll) {
|
||||
programscroll = true;
|
||||
document.getElementById("chatall").scrollTop = document.getElementById(
|
||||
"chatall"
|
||||
).scrollHeight;
|
||||
programscroll = false;
|
||||
}
|
||||
},
|
||||
|
||||
channelchat: function(data, time_sent, disable_blink) {
|
||||
if (
|
||||
data.msg.substring(0, 1) == ":" &&
|
||||
!chat_active &&
|
||||
!disable_blink &&
|
||||
data.from.toLowerCase() != "system"
|
||||
) {
|
||||
document
|
||||
.querySelector("#favicon")
|
||||
.setAttribute("href", "/assets/images/highlogo.png");
|
||||
unseen = true;
|
||||
chat_unseen = true;
|
||||
Chat.channel_received += 1;
|
||||
//blink_interval = setTimeout(Chat.chat_blink, 1000);
|
||||
Helper.removeClass(
|
||||
document.querySelector(".chat-link span.badge.new.white"),
|
||||
"hide"
|
||||
);
|
||||
var to_display =
|
||||
Chat.channel_received + Chat.all_received > 9
|
||||
? "9+"
|
||||
: Chat.channel_received + Chat.all_received;
|
||||
Helper.setHtml(
|
||||
document.querySelector(".chat-link span.badge.new.white"),
|
||||
to_display
|
||||
);
|
||||
}
|
||||
|
||||
if (document.querySelector("#chatchannel").children.length > 100) {
|
||||
document.querySelector("#chatchannel").children[0].remove();
|
||||
}
|
||||
|
||||
var icon_add = "";
|
||||
if (data.hasOwnProperty("icon") && data.icon !== false && data.icon != "") {
|
||||
icon_add =
|
||||
"<img class='chat-icon' src='" +
|
||||
data.icon +
|
||||
"' alt='" +
|
||||
data.from +
|
||||
"'>";
|
||||
}
|
||||
|
||||
var color = Helper.intToARGB(Helper.hashCode(data.from));
|
||||
if (color.length < 6) {
|
||||
for (x = color.length; x < 6; x++) {
|
||||
color = "0" + color;
|
||||
}
|
||||
}
|
||||
color = Helper.hexToRgb(color.substring(0, 6));
|
||||
var color_temp = Helper.rgbToHsl([color.r, color.g, color.b], false);
|
||||
var _time = new Date();
|
||||
if (time_sent) {
|
||||
_time = new Date(time_sent);
|
||||
}
|
||||
var time =
|
||||
Helper.pad(_time.getHours()) + ":" + Helper.pad(_time.getMinutes());
|
||||
//document.querySelector("#chatchannel").insertAdjacentHTML("beforeend", "<li><span class='time_color'>" + time + "</span> " + icon_add + "<span style='color:"+color_temp+";'>"+data.from+"</span></li>");
|
||||
//var in_text = document.createTextNode(data.msg);
|
||||
//document.querySelector("#chatchannel").children[document.querySelector("#chatchannel").children.length - 1].appendChild(in_text);
|
||||
var element = Chat.createChatElement(
|
||||
false,
|
||||
null,
|
||||
time,
|
||||
icon_add,
|
||||
color_temp,
|
||||
data.from,
|
||||
data.msg
|
||||
);
|
||||
//document.querySelector("#chatall").insertAdjacentHTML("beforeend", element);
|
||||
document.querySelector("#chatchannel").appendChild(element);
|
||||
|
||||
if (!userscroll) {
|
||||
programscroll = true;
|
||||
document.getElementById(
|
||||
"chatchannel"
|
||||
).scrollTop = document.getElementById("chatchannel").scrollHeight;
|
||||
programscroll = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,89 +1,108 @@
|
||||
var Crypt = {
|
||||
conf_pass: undefined,
|
||||
user_pass: undefined,
|
||||
tmp_pass_user: "",
|
||||
tmp_pass: "",
|
||||
|
||||
conf_pass: undefined,
|
||||
user_pass: undefined,
|
||||
tmp_pass_user: "",
|
||||
tmp_pass: "",
|
||||
init: function() {
|
||||
if (window.location.pathname != "/") {
|
||||
if (location.protocol != "https:") {
|
||||
document.cookie =
|
||||
chan.toLowerCase() +
|
||||
"=;path=/" +
|
||||
chan.toLowerCase() +
|
||||
";expires=" +
|
||||
new Date(0).toUTCString();
|
||||
} else {
|
||||
document.cookie =
|
||||
chan.toLowerCase() +
|
||||
"=;path=/" +
|
||||
chan.toLowerCase() +
|
||||
";secure;expires=" +
|
||||
new Date(0).toUTCString();
|
||||
}
|
||||
}
|
||||
|
||||
init: function() {
|
||||
try {
|
||||
conf_arr = Crypt.decrypt(Crypt.getCookie("_opt"), "_opt");
|
||||
} catch (err) {
|
||||
conf_arr = Crypt.decrypt(Crypt.create_cookie("_opt"), "_opt");
|
||||
}
|
||||
|
||||
if(window.location.pathname != "/") {
|
||||
if (location.protocol != "https:") {
|
||||
document.cookie = chan.toLowerCase() + '=;path=/' + chan.toLowerCase() + ';expires=' + new Date(0).toUTCString();
|
||||
} else {
|
||||
document.cookie = chan.toLowerCase() + '=;path=/' + chan.toLowerCase() + ';secure;expires=' + new Date(0).toUTCString();
|
||||
}
|
||||
if (window.location.pathname != "/") {
|
||||
change_intelligent(Crypt.get_intelligent_list_enabled());
|
||||
if (!conf_arr.hasOwnProperty("color")) {
|
||||
Crypt.set_background_color("dynamic", true);
|
||||
} else {
|
||||
document.querySelector(".backround_switch_class").checked =
|
||||
conf_arr.color == "dynamic";
|
||||
if (conf_arr.color != "dynamic") {
|
||||
Helper.removeClass(".background_color_container", "hide");
|
||||
document.querySelector("#background_color_choser").value =
|
||||
conf_arr.color;
|
||||
}
|
||||
}
|
||||
Hostcontroller.change_enabled(conf_arr.remote);
|
||||
if (conf_arr.width != 100) Player.set_width(conf_arr.width);
|
||||
}
|
||||
},
|
||||
|
||||
try {
|
||||
conf_arr = Crypt.decrypt(Crypt.getCookie("_opt"), "_opt");
|
||||
} catch(err) {
|
||||
conf_arr = Crypt.decrypt(Crypt.create_cookie("_opt"), "_opt");
|
||||
}
|
||||
set_background_color: function(value, first) {
|
||||
conf_arr.color = value;
|
||||
if (value != "dynamic" && !first) {
|
||||
Helper.css("#main-container", "background-color", value);
|
||||
Helper.css("#nav", "background-color", value);
|
||||
Helper.css(".title-container", "background-color", value);
|
||||
document
|
||||
.querySelector("meta[name=theme-color]")
|
||||
.setAttribute("content", value);
|
||||
Helper.css("#controls", "background", value);
|
||||
} else if (!first) {
|
||||
var url = "https://img.youtube.com/vi/" + Player.np.id + "/mqdefault.jpg";
|
||||
if (videoSource == "soundcloud") url = Player.np.thumbnail;
|
||||
getColor(url);
|
||||
}
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
if(window.location.pathname != "/") {
|
||||
change_intelligent(Crypt.get_intelligent_list_enabled());
|
||||
if(!conf_arr.hasOwnProperty("color")) {
|
||||
Crypt.set_background_color("dynamic", true);
|
||||
} else {
|
||||
document.querySelector(".backround_switch_class").checked = conf_arr.color == "dynamic";
|
||||
if(conf_arr.color != "dynamic") {
|
||||
Helper.removeClass(".background_color_container", "hide");
|
||||
document.querySelector("#background_color_choser").value = conf_arr.color;
|
||||
}
|
||||
}
|
||||
Hostcontroller.change_enabled(conf_arr.remote);
|
||||
if(conf_arr.width != 100) Player.set_width(conf_arr.width);
|
||||
}
|
||||
},
|
||||
get_background_color: function(value) {
|
||||
if (!conf_arr.hasOwnProperty("color")) {
|
||||
Crypt.set_background_color("dynamic");
|
||||
}
|
||||
return conf_arr.color;
|
||||
},
|
||||
|
||||
set_background_color: function(value, first) {
|
||||
conf_arr.color = value;
|
||||
if(value != "dynamic" && !first) {
|
||||
Helper.css("#main-container", "background-color", value);
|
||||
Helper.css("#nav", "background-color", value);
|
||||
Helper.css(".title-container", "background-color", value);
|
||||
document.querySelector("meta[name=theme-color]").setAttribute("content", value);
|
||||
Helper.css("#controls", "background", value);
|
||||
} else if(!first){
|
||||
var url = 'https://img.youtube.com/vi/'+Player.np.id+'/mqdefault.jpg';
|
||||
if(videoSource == "soundcloud") url = Player.np.thumbnail;
|
||||
getColor(url);
|
||||
}
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
get_intelligent_list_enabled: function() {
|
||||
if (conf_arr.hasOwnProperty("intelligent")) {
|
||||
return conf_arr.intelligent;
|
||||
} else {
|
||||
conf_arr.intelligent = false;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
get_background_color: function(value) {
|
||||
if(!conf_arr.hasOwnProperty("color")) {
|
||||
Crypt.set_background_color("dynamic");
|
||||
}
|
||||
return conf_arr.color;
|
||||
},
|
||||
set_intelligent_list_enabled: function(enabled) {
|
||||
conf_arr.intelligent = enabled;
|
||||
if (Helper.mobilecheck()) {
|
||||
intelligentList = enabled;
|
||||
}
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
get_intelligent_list_enabled: function() {
|
||||
if(conf_arr.hasOwnProperty("intelligent")) {
|
||||
return conf_arr.intelligent;
|
||||
} else {
|
||||
conf_arr.intelligent = false;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
set_intelligent_list_enabled: function(enabled) {
|
||||
conf_arr.intelligent = enabled;
|
||||
if(Helper.mobilecheck()) {
|
||||
intelligentList = enabled;
|
||||
}
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
decrypt: function(cookie, name) {
|
||||
if(Crypt.getCookie(name) === undefined) {
|
||||
cookie = Crypt.create_cookie(name);
|
||||
}
|
||||
if(cookie == undefined && name == "_opt") return {"volume":100,"width":100,"remote":true,"name":"","offline":false};
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
decrypt: function(cookie, name) {
|
||||
if (Crypt.getCookie(name) === undefined) {
|
||||
cookie = Crypt.create_cookie(name);
|
||||
}
|
||||
if (cookie == undefined && name == "_opt")
|
||||
return {
|
||||
volume: 100,
|
||||
width: 100,
|
||||
remote: true,
|
||||
name: "",
|
||||
offline: false
|
||||
};
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
key = key.substring(0,32);
|
||||
key = btoa(key);
|
||||
var decrypted = CryptoJS.AES.decrypt(
|
||||
@@ -94,13 +113,13 @@ var Crypt = {
|
||||
}
|
||||
);*/
|
||||
|
||||
//return $.parseJSON(decrypted.toString(CryptoJS.enc.Utf8));
|
||||
return JSON.parse(atob(cookie));
|
||||
},
|
||||
//return $.parseJSON(decrypted.toString(CryptoJS.enc.Utf8));
|
||||
return JSON.parse(atob(cookie));
|
||||
},
|
||||
|
||||
decrypt_pass: function(pass) {
|
||||
if(socket) {
|
||||
/*var key = btoa(socket.id) + btoa(socket.id);
|
||||
decrypt_pass: function(pass) {
|
||||
if (socket) {
|
||||
/*var key = btoa(socket.id) + btoa(socket.id);
|
||||
key = key.substring(0,32);
|
||||
key = btoa(key);
|
||||
var decrypted = CryptoJS.AES.decrypt(
|
||||
@@ -111,13 +130,14 @@ var Crypt = {
|
||||
}
|
||||
);
|
||||
return decrypted.toString(CryptoJS.enc.Utf8);*/
|
||||
return atob(pass);
|
||||
} return false;
|
||||
},
|
||||
return atob(pass);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
encrypt: function(json_formated, cookie) {
|
||||
var to_encrypt = JSON.stringify(json_formated);
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
encrypt: function(json_formated, cookie) {
|
||||
var to_encrypt = JSON.stringify(json_formated);
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
key = key.substring(0,32);
|
||||
key = btoa(key);
|
||||
var encrypted = CryptoJS.AES.encrypt(
|
||||
@@ -128,42 +148,61 @@ var Crypt = {
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}
|
||||
);*/
|
||||
var encrypted = btoa(to_encrypt);
|
||||
var CookieDate = new Date();
|
||||
CookieDate.setFullYear(CookieDate.getFullYear( ) +1);
|
||||
if (location.protocol != "https:"){
|
||||
document.cookie = cookie+"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;";
|
||||
} else {
|
||||
document.cookie = cookie+"="+encrypted.toString()+";secure;expires="+CookieDate.toGMTString()+";path=/;";
|
||||
}
|
||||
},
|
||||
var encrypted = btoa(to_encrypt);
|
||||
var CookieDate = new Date();
|
||||
CookieDate.setFullYear(CookieDate.getFullYear() + 1);
|
||||
if (location.protocol != "https:") {
|
||||
document.cookie =
|
||||
cookie +
|
||||
"=" +
|
||||
encrypted.toString() +
|
||||
";expires=" +
|
||||
CookieDate.toGMTString() +
|
||||
";path=/;";
|
||||
} else {
|
||||
document.cookie =
|
||||
cookie +
|
||||
"=" +
|
||||
encrypted.toString() +
|
||||
";secure;expires=" +
|
||||
CookieDate.toGMTString() +
|
||||
";path=/;";
|
||||
}
|
||||
},
|
||||
|
||||
get_volume: function() {
|
||||
return Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").volume;
|
||||
//return conf_arr.volume;
|
||||
},
|
||||
get_volume: function() {
|
||||
return Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").volume;
|
||||
//return conf_arr.volume;
|
||||
},
|
||||
|
||||
get_offline: function() {
|
||||
var temp_offline = Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").offline;
|
||||
if(temp_offline != undefined){
|
||||
return Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").offline;
|
||||
} else {
|
||||
Crypt.set_offline(false);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
get_offline: function() {
|
||||
var temp_offline = Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").offline;
|
||||
if (temp_offline != undefined) {
|
||||
return Crypt.decrypt(Crypt.getCookie("_opt"), "_opt").offline;
|
||||
} else {
|
||||
Crypt.set_offline(false);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
set_volume: function(val) {
|
||||
conf_arr.volume = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
set_volume: function(val) {
|
||||
conf_arr.volume = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
create_cookie: function(name) {
|
||||
if(name == "_opt") cookie_object = {volume: 100, width: 100, remote: true, name: "", offline: false};
|
||||
else cookie_object = {passwords: {}};
|
||||
create_cookie: function(name) {
|
||||
if (name == "_opt")
|
||||
cookie_object = {
|
||||
volume: 100,
|
||||
width: 100,
|
||||
remote: true,
|
||||
name: "",
|
||||
offline: false
|
||||
};
|
||||
else cookie_object = { passwords: {} };
|
||||
|
||||
var string_it = JSON.stringify(cookie_object);
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
var string_it = JSON.stringify(cookie_object);
|
||||
/*var key = btoa("0103060703080703080701") + btoa("0103060703080703080701");
|
||||
key = key.substring(0,32);
|
||||
key = btoa(key);
|
||||
var encrypted = CryptoJS.AES.encrypt(
|
||||
@@ -174,22 +213,34 @@ var Crypt = {
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}
|
||||
);*/
|
||||
var encrypted = btoa(string_it);
|
||||
var encrypted = btoa(string_it);
|
||||
|
||||
var CookieDate = new Date();
|
||||
CookieDate.setFullYear(CookieDate.getFullYear( ) +1);
|
||||
var CookieDate = new Date();
|
||||
CookieDate.setFullYear(CookieDate.getFullYear() + 1);
|
||||
|
||||
if (location.protocol != "https:"){
|
||||
document.cookie = name+"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;";
|
||||
} else {
|
||||
document.cookie = name+"="+encrypted.toString()+";secure;expires="+CookieDate.toGMTString()+";path=/;";
|
||||
}
|
||||
//document.cookie = name+"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;"
|
||||
//document.cookie = na"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;"
|
||||
return Crypt.getCookie(name);
|
||||
},
|
||||
if (location.protocol != "https:") {
|
||||
document.cookie =
|
||||
name +
|
||||
"=" +
|
||||
encrypted.toString() +
|
||||
";expires=" +
|
||||
CookieDate.toGMTString() +
|
||||
";path=/;";
|
||||
} else {
|
||||
document.cookie =
|
||||
name +
|
||||
"=" +
|
||||
encrypted.toString() +
|
||||
";secure;expires=" +
|
||||
CookieDate.toGMTString() +
|
||||
";path=/;";
|
||||
}
|
||||
//document.cookie = name+"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;"
|
||||
//document.cookie = na"="+encrypted.toString()+";expires="+CookieDate.toGMTString()+";path=/;"
|
||||
return Crypt.getCookie(name);
|
||||
},
|
||||
|
||||
/*set_pass: function(chan, pass) {
|
||||
/*set_pass: function(chan, pass) {
|
||||
Crypt.conf_pass.passwords[chan] = pass;
|
||||
Crypt.encrypt(Crypt.conf_pass, chan);
|
||||
},
|
||||
@@ -209,44 +260,45 @@ var Crypt = {
|
||||
Crypt.encrypt(Crypt.conf_pass, chan.toLowerCase());
|
||||
},*/
|
||||
|
||||
set_name:function(name, pass) {
|
||||
conf_arr.name = encodeURIComponent(name).replace(/\W/g, '');
|
||||
conf_arr.chat_pass = pass;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
set_name: function(name, pass) {
|
||||
conf_arr.name = encodeURIComponent(name).replace(/\W/g, "");
|
||||
conf_arr.chat_pass = pass;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
set_offline: function(enabled) {
|
||||
conf_arr.offline = enabled;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
set_offline: function(enabled) {
|
||||
conf_arr.offline = enabled;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
remove_name:function() {
|
||||
conf_arr.name = "";
|
||||
conf_arr.chat_pass = "";
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
remove_name: function() {
|
||||
conf_arr.name = "";
|
||||
conf_arr.chat_pass = "";
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
get_pass: function(chan) {
|
||||
if(Crypt.conf_pass !== undefined) return Crypt.conf_pass.passwords[chan];
|
||||
return undefined;
|
||||
},
|
||||
get_pass: function(chan) {
|
||||
if (Crypt.conf_pass !== undefined) return Crypt.conf_pass.passwords[chan];
|
||||
return undefined;
|
||||
},
|
||||
|
||||
get_userpass: function(chan) {
|
||||
if(Crypt.conf_pass !== undefined) return Crypt.conf_pass.passwords["userpass"];
|
||||
return "";
|
||||
},
|
||||
get_userpass: function(chan) {
|
||||
if (Crypt.conf_pass !== undefined)
|
||||
return Crypt.conf_pass.passwords["userpass"];
|
||||
return "";
|
||||
},
|
||||
|
||||
set_remote: function(val) {
|
||||
conf_arr.remote = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
set_remote: function(val) {
|
||||
conf_arr.remote = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
get_remote: function(val) {
|
||||
return conf_arr.remote;
|
||||
},
|
||||
get_remote: function(val) {
|
||||
return conf_arr.remote;
|
||||
},
|
||||
|
||||
crypt_chat_pass: function(pass) {
|
||||
/*var key = btoa(socket.id) + btoa(socket.id);
|
||||
crypt_chat_pass: function(pass) {
|
||||
/*var key = btoa(socket.id) + btoa(socket.id);
|
||||
key = key.substring(0,32);
|
||||
key = btoa(key);
|
||||
var iv = btoa(Crypt.makeiv());
|
||||
@@ -259,43 +311,48 @@ var Crypt = {
|
||||
iv: CryptoJS.enc.Base64.parse(iv),
|
||||
}
|
||||
);*/
|
||||
//window.encrypted = encrypted;
|
||||
return btoa(pass);
|
||||
//return encrypted.toString() + "$" + iv;
|
||||
},
|
||||
//window.encrypted = encrypted;
|
||||
return btoa(pass);
|
||||
//return encrypted.toString() + "$" + iv;
|
||||
},
|
||||
|
||||
crypt_pass: function(pass, userpass) {
|
||||
if(userpass) {
|
||||
Crypt.tmp_pass_user = pass;
|
||||
} else {
|
||||
Crypt.tmp_pass = pass;
|
||||
}
|
||||
//return Crypt.crypt_chat_pass(pass);
|
||||
return btoa(pass);
|
||||
},
|
||||
|
||||
makeiv: function() {
|
||||
var text = "";
|
||||
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
for( var i=0; i < 16; i++ )
|
||||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||||
|
||||
return text;
|
||||
},
|
||||
|
||||
get_width: function() {
|
||||
return conf_arr.width;
|
||||
},
|
||||
|
||||
set_width: function(val) {
|
||||
conf_arr.width = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
getCookie: function(name) {
|
||||
var value = "; " + document.cookie;
|
||||
var parts = value.split("; " + name + "=");
|
||||
if (parts.length == 2) return parts.pop().split(";").shift();
|
||||
crypt_pass: function(pass, userpass) {
|
||||
if (userpass) {
|
||||
Crypt.tmp_pass_user = pass;
|
||||
} else {
|
||||
Crypt.tmp_pass = pass;
|
||||
}
|
||||
//return Crypt.crypt_chat_pass(pass);
|
||||
return btoa(pass);
|
||||
},
|
||||
|
||||
makeiv: function() {
|
||||
var text = "";
|
||||
var possible =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
for (var i = 0; i < 16; i++)
|
||||
text += possible.charAt(Math.floor(Math.random() * possible.length));
|
||||
|
||||
return text;
|
||||
},
|
||||
|
||||
get_width: function() {
|
||||
return conf_arr.width;
|
||||
},
|
||||
|
||||
set_width: function(val) {
|
||||
conf_arr.width = val;
|
||||
Crypt.encrypt(conf_arr, "_opt");
|
||||
},
|
||||
|
||||
getCookie: function(name) {
|
||||
var value = "; " + document.cookie;
|
||||
var parts = value.split("; " + name + "=");
|
||||
if (parts.length == 2)
|
||||
return parts
|
||||
.pop()
|
||||
.split(";")
|
||||
.shift();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7,16 +7,19 @@ var intelligentList = false;
|
||||
var client = false;
|
||||
var _VERSION;
|
||||
try {
|
||||
_VERSION = localStorage.getItem("VERSION");
|
||||
if(_VERSION == null || _VERSION == undefined) throw "Some error";
|
||||
} catch(e) {
|
||||
_VERSION = 6;
|
||||
_VERSION = localStorage.getItem("VERSION");
|
||||
if (_VERSION == null || _VERSION == undefined) throw "Some error";
|
||||
} catch (e) {
|
||||
_VERSION = 6;
|
||||
}
|
||||
var SC_widget;
|
||||
var scUsingWidget = false;
|
||||
var zoff_api_token = "DwpnKVkaMH2HdcpJT2YPy783SY33byF5/32rbs0+xdU=";
|
||||
if(window.location.hostname == "localhost" || window.location.hostname == "client.localhost") {
|
||||
var zoff_api_token = "AhmC4Yg2BhaWPZBXeoWK96DAiAVfbou8TUG2IXtD3ZQ=";
|
||||
if (
|
||||
window.location.hostname == "localhost" ||
|
||||
window.location.hostname == "client.localhost"
|
||||
) {
|
||||
var zoff_api_token = "AhmC4Yg2BhaWPZBXeoWK96DAiAVfbou8TUG2IXtD3ZQ=";
|
||||
}
|
||||
var SC_player;
|
||||
var durationTimeout;
|
||||
@@ -43,11 +46,11 @@ var beginning = false;
|
||||
var soundcloud_loading = false;
|
||||
var videoSource = "";
|
||||
var list_html = document.getElementById("list-song-html").innerHTML;
|
||||
var w_p = true;
|
||||
var lazy_load = false;
|
||||
var w_p = true;
|
||||
var lazy_load = false;
|
||||
var end_programmatically = false;
|
||||
var embed = true;
|
||||
var vol = 100;
|
||||
var vol = 100;
|
||||
var adminpass = "";
|
||||
var mobile_beginning = false;
|
||||
var durationBegun = false;
|
||||
@@ -70,398 +73,462 @@ var user_auth_started = false;
|
||||
var user_auth_avoid = false;
|
||||
|
||||
var connection_options = {
|
||||
'sync disconnect on unload':true,
|
||||
'secure': true,
|
||||
'force new connection': true
|
||||
"sync disconnect on unload": true,
|
||||
secure: true,
|
||||
"force new connection": true
|
||||
};
|
||||
|
||||
var Crypt = {
|
||||
crypt_pass: function(pass) {
|
||||
return pass;
|
||||
},
|
||||
get_background_color: function() {
|
||||
return "dynamic";
|
||||
}
|
||||
crypt_pass: function(pass) {
|
||||
return pass;
|
||||
},
|
||||
get_background_color: function() {
|
||||
return "dynamic";
|
||||
}
|
||||
};
|
||||
|
||||
function receiveMessage(event) {
|
||||
if(event.data == "parent") {
|
||||
window.parentWindow = event.source;
|
||||
window.parentOrigin = event.origin;
|
||||
}
|
||||
if(event.data == "lower") {
|
||||
window.setVolume(10);
|
||||
}else if(event.data == "reset") {
|
||||
window.setVolume(100);
|
||||
} else if(event.data == "get_info") {
|
||||
window.parentWindow.postMessage({type: "np", title: song_title}, window.parentOrigin);
|
||||
window.parentWindow.postMessage({type: "controller", id: Hostcontroller.old_id}, window.parentOrigin);
|
||||
try {
|
||||
if(full_playlist.length > 0) {
|
||||
Player.sendNext({title: full_playlist[0].title, videoId: full_playlist[0].id});
|
||||
}
|
||||
} catch(e) {
|
||||
|
||||
}
|
||||
}
|
||||
if (event.data == "parent") {
|
||||
window.parentWindow = event.source;
|
||||
window.parentOrigin = event.origin;
|
||||
}
|
||||
if (event.data == "lower") {
|
||||
window.setVolume(10);
|
||||
} else if (event.data == "reset") {
|
||||
window.setVolume(100);
|
||||
} else if (event.data == "get_info") {
|
||||
window.parentWindow.postMessage(
|
||||
{ type: "np", title: song_title },
|
||||
window.parentOrigin
|
||||
);
|
||||
window.parentWindow.postMessage(
|
||||
{ type: "controller", id: Hostcontroller.old_id },
|
||||
window.parentOrigin
|
||||
);
|
||||
try {
|
||||
if (full_playlist.length > 0) {
|
||||
Player.sendNext({
|
||||
title: full_playlist[0].title,
|
||||
videoId: full_playlist[0].id
|
||||
});
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener("message", receiveMessage, false);
|
||||
window.addEventListener("DOMContentLoaded", function() {
|
||||
|
||||
});
|
||||
window.addEventListener("DOMContentLoaded", function() {});
|
||||
|
||||
var Channel = {
|
||||
set_title_width: function(){},
|
||||
window_width_volume_slider: function(){}
|
||||
}
|
||||
set_title_width: function() {},
|
||||
window_width_volume_slider: function() {}
|
||||
};
|
||||
|
||||
function getSearch(elem) {
|
||||
var result = {};
|
||||
var search = window.location.search.split("&");
|
||||
for(var i = 0; i < search.length; i++) {
|
||||
var currElement = search[i].split("=");
|
||||
var key = currElement[0].replace("?", "");
|
||||
var value = currElement[1];
|
||||
if(value == "true") value = true;
|
||||
else if(value == "false") value = false;
|
||||
result[key] = value;
|
||||
}
|
||||
return result;
|
||||
var result = {};
|
||||
var search = window.location.search.split("&");
|
||||
for (var i = 0; i < search.length; i++) {
|
||||
var currElement = search[i].split("=");
|
||||
var key = currElement[0].replace("?", "");
|
||||
var value = currElement[1];
|
||||
if (value == "true") value = true;
|
||||
else if (value == "false") value = false;
|
||||
result[key] = value;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
window.addEventListener("load", function() {
|
||||
if(autoplay){
|
||||
Helper.css("#player", "visibility", "hidden");
|
||||
}
|
||||
if(videoonly) {
|
||||
Helper.addClass("#wrapper", "hide");
|
||||
Helper.addClass("#controls", "hide");
|
||||
Helper.addClass("#player", "video_only");
|
||||
Helper.addClass("#player_overlay", "video_only");
|
||||
Helper.css("#zoffbutton", "bottom", "0px");
|
||||
Helper.css("#song-title", "width", "100vw");
|
||||
if (autoplay) {
|
||||
Helper.css("#player", "visibility", "hidden");
|
||||
}
|
||||
if (videoonly) {
|
||||
Helper.addClass("#wrapper", "hide");
|
||||
Helper.addClass("#controls", "hide");
|
||||
Helper.addClass("#player", "video_only");
|
||||
Helper.addClass("#player_overlay", "video_only");
|
||||
Helper.css("#zoffbutton", "bottom", "0px");
|
||||
Helper.css("#song-title", "width", "100vw");
|
||||
}
|
||||
|
||||
M.Modal.init(document.getElementById("locked_channel"), {
|
||||
dismissible: false
|
||||
});
|
||||
|
||||
add = "https://zoff.me";
|
||||
//if(window.location.hostname == "localhost") add = "localhost";
|
||||
//add = "localhost";
|
||||
socket = io.connect(
|
||||
"" + add,
|
||||
connection_options
|
||||
);
|
||||
|
||||
if (localmode) {
|
||||
change_offline(true, false);
|
||||
}
|
||||
|
||||
socket.on("auth_required", function() {
|
||||
M.Modal.getInstance(document.getElementById("locked_channel")).open();
|
||||
});
|
||||
|
||||
document.querySelector(".channel-info-container").href =
|
||||
"https://zoff.me/" + chan.toLowerCase();
|
||||
document.querySelector(".channel-title").innerText = "/" + chan.toLowerCase();
|
||||
|
||||
socket.on("get_list", function() {
|
||||
socket_connected = true;
|
||||
setTimeout(function() {
|
||||
socket.emit("list", {
|
||||
version: VERSION,
|
||||
channel: chan.toLowerCase(),
|
||||
pass: ""
|
||||
});
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
socket.on("self_ping", function() {
|
||||
if (chan != undefined && chan.toLowerCase() != "") {
|
||||
socket.emit("self_ping", { channel: chan.toLowerCase() });
|
||||
}
|
||||
});
|
||||
|
||||
M.Modal.init(document.getElementById("locked_channel"), {
|
||||
dismissible: false
|
||||
});
|
||||
socket.on("viewers", function(view) {
|
||||
viewers = view;
|
||||
|
||||
add = "https://zoff.me";
|
||||
//if(window.location.hostname == "localhost") add = "localhost";
|
||||
//add = "localhost";
|
||||
socket = io.connect(''+add, connection_options);
|
||||
if (song_title !== undefined) Player.getTitle(song_title, viewers);
|
||||
});
|
||||
|
||||
if(localmode) {
|
||||
change_offline(true, false);
|
||||
}
|
||||
Player.loadPlayer();
|
||||
setup_host_initialization();
|
||||
setup_now_playing_listener();
|
||||
setup_list_listener();
|
||||
|
||||
socket.on('auth_required', function() {
|
||||
M.Modal.getInstance(document.getElementById("locked_channel")).open();
|
||||
});
|
||||
if (autoplay) {
|
||||
startWaitTimerPlay();
|
||||
}
|
||||
|
||||
document.querySelector(".channel-info-container").href = "https://zoff.me/" + chan.toLowerCase();
|
||||
document.querySelector(".channel-title").innerText = "/" + chan.toLowerCase();
|
||||
List.calculate_song_heights();
|
||||
|
||||
socket.on("get_list", function() {
|
||||
socket_connected = true;
|
||||
setTimeout(function(){socket.emit('list', {version: VERSION, channel: chan.toLowerCase(), pass: ''});},1000);
|
||||
});
|
||||
window.onYouTubeIframeAPIReady = Player.onYouTubeIframeAPIReady;
|
||||
socket.on("toast", toast);
|
||||
|
||||
socket.on("self_ping", function() {
|
||||
if(chan != undefined && chan.toLowerCase() != "") {
|
||||
socket.emit("self_ping", {channel: chan.toLowerCase()});
|
||||
}
|
||||
});
|
||||
Playercontrols.initSlider();
|
||||
document
|
||||
.getElementById("playpause")
|
||||
.addEventListener("click", Playercontrols.play_pause);
|
||||
window.setVolume = setVolume;
|
||||
//Helper.css("#controls", "background-color", color);
|
||||
|
||||
socket.on("viewers", function(view) {
|
||||
viewers = view;
|
||||
|
||||
if(song_title !== undefined)
|
||||
Player.getTitle(song_title, viewers);
|
||||
});
|
||||
|
||||
Player.loadPlayer();
|
||||
setup_host_initialization();
|
||||
setup_now_playing_listener();
|
||||
setup_list_listener();
|
||||
|
||||
if(autoplay) {
|
||||
startWaitTimerPlay();
|
||||
}
|
||||
|
||||
List.calculate_song_heights();
|
||||
|
||||
window.onYouTubeIframeAPIReady = Player.onYouTubeIframeAPIReady;
|
||||
socket.on("toast", toast);
|
||||
|
||||
Playercontrols.initSlider();
|
||||
document.getElementById("playpause").addEventListener("click", Playercontrols.play_pause);
|
||||
window.setVolume = setVolume;
|
||||
//Helper.css("#controls", "background-color", color);
|
||||
|
||||
document.querySelector("body").style.backgroundColor = color;
|
||||
if(embedOptions.hasOwnProperty("control") && embedOptions.control) {
|
||||
Hostcontroller.change_enabled(true);
|
||||
} else {
|
||||
Hostcontroller.change_enabled(false);
|
||||
}
|
||||
document.querySelector("body").style.backgroundColor = color;
|
||||
if (embedOptions.hasOwnProperty("control") && embedOptions.control) {
|
||||
Hostcontroller.change_enabled(true);
|
||||
} else {
|
||||
Hostcontroller.change_enabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener("resize", function(){
|
||||
resizeFunction();
|
||||
window.addEventListener("resize", function() {
|
||||
resizeFunction();
|
||||
});
|
||||
|
||||
function resizePlaylistPlaying(){};
|
||||
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) {
|
||||
socket.on(id, Hostcontroller.host_on_action);
|
||||
socket.on(id, Hostcontroller.host_on_action);
|
||||
}
|
||||
|
||||
function setup_host_initialization() {
|
||||
socket.on("id", Hostcontroller.host_listener);
|
||||
socket.on("id", Hostcontroller.host_listener);
|
||||
}
|
||||
|
||||
function setup_now_playing_listener() {
|
||||
socket.on("np", Player.now_playing_listener);
|
||||
socket.on("np", Player.now_playing_listener);
|
||||
}
|
||||
|
||||
function setup_list_listener() {
|
||||
socket.on("channel", function(msg) {
|
||||
Helper.addClass(".site_loader", "hide");
|
||||
List.channel_function(msg);
|
||||
});
|
||||
socket.on("channel", function(msg) {
|
||||
Helper.addClass(".site_loader", "hide");
|
||||
List.channel_function(msg);
|
||||
});
|
||||
}
|
||||
|
||||
function setVolume(val) {
|
||||
Playercontrols.visualVolume(val);
|
||||
Playercontrols.setVolume(val);
|
||||
Playercontrols.visualVolume(val);
|
||||
Playercontrols.setVolume(val);
|
||||
}
|
||||
|
||||
function updateChromecastMetadata(){}
|
||||
function loadChromecastVideo(){}
|
||||
function updateChromecastMetadata() {}
|
||||
function loadChromecastVideo() {}
|
||||
|
||||
function toast(msg) {
|
||||
switch(msg) {
|
||||
case "suggested_thumbnail":
|
||||
if(embed) return;
|
||||
msg = "The thumbnail has been suggested!";
|
||||
break;
|
||||
case "faulty_start_end":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "wait_longer":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "suggested_description":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "thumbnail_denied":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "description_denied":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "addedsong":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "addedplaylist":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "savedsettings":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "wrongpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "deleted_songs":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "shuffled":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "deletesong":
|
||||
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;
|
||||
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;
|
||||
case "skip":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "listhaspass":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "noskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "alreadyskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "notyetskip":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "correctpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "changedpass":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "suggested":
|
||||
if(embed) return;
|
||||
break;
|
||||
case "alreadyplay":
|
||||
if(embed) return;
|
||||
break;
|
||||
}
|
||||
before_toast();
|
||||
M.toast({html: msg, displayLength: 4000});
|
||||
switch (msg) {
|
||||
case "suggested_thumbnail":
|
||||
if (embed) return;
|
||||
msg = "The thumbnail has been suggested!";
|
||||
break;
|
||||
case "faulty_start_end":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "wait_longer":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "suggested_description":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "thumbnail_denied":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "description_denied":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "addedsong":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "addedplaylist":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "savedsettings":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "wrongpass":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "deleted_songs":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "shuffled":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "deletesong":
|
||||
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;
|
||||
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;
|
||||
case "skip":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "listhaspass":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "noskip":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "alreadyskip":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "notyetskip":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "correctpass":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "changedpass":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "suggested":
|
||||
if (embed) return;
|
||||
break;
|
||||
case "alreadyplay":
|
||||
if (embed) return;
|
||||
break;
|
||||
}
|
||||
before_toast();
|
||||
M.toast({ html: msg, displayLength: 4000 });
|
||||
}
|
||||
|
||||
function emit() {
|
||||
if(!embed) {
|
||||
lastCommand = [];
|
||||
for(var i = 0; i < arguments.length; i++) {
|
||||
lastCommand.push(arguments[i]);
|
||||
}
|
||||
}
|
||||
if(arguments.length == 1) {
|
||||
socket.emit(arguments[0]);
|
||||
} else {
|
||||
socket.emit(arguments[0], arguments[1]);
|
||||
if (!embed) {
|
||||
lastCommand = [];
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
lastCommand.push(arguments[i]);
|
||||
}
|
||||
}
|
||||
if (arguments.length == 1) {
|
||||
socket.emit(arguments[0]);
|
||||
} else {
|
||||
socket.emit(arguments[0], arguments[1]);
|
||||
}
|
||||
}
|
||||
|
||||
function change_offline(enabled, already_offline){
|
||||
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 change_offline(enabled, already_offline) {
|
||||
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");
|
||||
}
|
||||
}
|
||||
|
||||
var mouseEnter = function(e){
|
||||
Helper.removeClass("#seekToDuration", "hide");
|
||||
};
|
||||
var mouseEnter = function(e) {
|
||||
Helper.removeClass("#seekToDuration", "hide");
|
||||
};
|
||||
|
||||
var mouseLeave = function(e){
|
||||
dragging = false;
|
||||
Helper.addClass("#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");
|
||||
|
||||
if(window.location.pathname != "/"){
|
||||
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 && full_playlist.length > 0){
|
||||
for(var x = 0; x < full_playlist.length; x++){
|
||||
full_playlist[x].votes = 0;
|
||||
}
|
||||
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
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");
|
||||
|
||||
if (window.location.pathname != "/") {
|
||||
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 &&
|
||||
full_playlist.length > 0
|
||||
) {
|
||||
for (var x = 0; x < full_playlist.length; x++) {
|
||||
full_playlist[x].votes = 0;
|
||||
}
|
||||
|
||||
List.sortList();
|
||||
List.populate_list(full_playlist);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function before_toast(){
|
||||
/*if($('.toast').length > 0) {
|
||||
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();
|
||||
M.Toast.dismissAll();
|
||||
//Materialize.Toast.removeAll();
|
||||
}
|
||||
|
||||
document.addEventListener("click", function(e) {
|
||||
document.addEventListener(
|
||||
"click",
|
||||
function(e) {
|
||||
handleEvent(e, e.target, false, "click");
|
||||
}, false);
|
||||
},
|
||||
false
|
||||
);
|
||||
|
||||
addListener("click", ".channel-info-container", function(e) {
|
||||
this.preventDefault();
|
||||
Player.pauseVideo();
|
||||
window.open("https://zoff.me/" + chan.toLowerCase() + "/", '_blank');
|
||||
this.preventDefault();
|
||||
Player.pauseVideo();
|
||||
window.open("https://zoff.me/" + chan.toLowerCase() + "/", "_blank");
|
||||
});
|
||||
|
||||
addListener("click", ".vote-container", function(e) {
|
||||
var that = e;
|
||||
var id = that.getAttribute("data-video-id");
|
||||
var that = e;
|
||||
var id = that.getAttribute("data-video-id");
|
||||
|
||||
List.vote(id, "pos");
|
||||
List.vote(id, "pos");
|
||||
});
|
||||
|
||||
addListener("click", ".prev_page", function(e) {
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(-1);
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(-1);
|
||||
});
|
||||
|
||||
addListener("click", "#player_overlay", function(event) {
|
||||
if(videoSource == "soundcloud") Playercontrols.play_pause();
|
||||
if (videoSource == "soundcloud") Playercontrols.play_pause();
|
||||
});
|
||||
|
||||
addListener("click", ".next_page", function(e) {
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(1);
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(1);
|
||||
});
|
||||
|
||||
addListener("click", ".prev", function(event){
|
||||
this.preventDefault();
|
||||
if(!offline) return;
|
||||
List.skip(false);
|
||||
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", ".skip", function(event) {
|
||||
this.preventDefault();
|
||||
//if(!offline) return;
|
||||
List.skip(true);
|
||||
});
|
||||
|
||||
addListener("click", ".last_page", function(e){
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(10);
|
||||
addListener("click", ".last_page", function(e) {
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(10);
|
||||
});
|
||||
|
||||
addListener("click", ".first_page", function(e){
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(-10);
|
||||
addListener("click", ".first_page", function(e) {
|
||||
event.preventDefault();
|
||||
List.dynamicContentPage(-10);
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,83 +1,118 @@
|
||||
var Hostcontroller = {
|
||||
enabled: true,
|
||||
|
||||
enabled: true,
|
||||
old_id: null,
|
||||
|
||||
old_id: null,
|
||||
|
||||
host_listener: function(id) {
|
||||
if(client) return;
|
||||
Helper.log([
|
||||
"Host-listener triggered",
|
||||
"Host-listener id:" + id
|
||||
]);
|
||||
if(Hostcontroller.old_id === null) Hostcontroller.old_id = id;
|
||||
else {
|
||||
socket.removeAllListeners(id);
|
||||
began = false;
|
||||
Hostcontroller.old_id = id;
|
||||
}
|
||||
var codeURL = window.location.protocol + "//remote."+window.location.hostname+"/"+id;
|
||||
if(embed) {
|
||||
if(window.parentWindow && window.parentOrigin) {
|
||||
window.parentWindow.postMessage({type: "controller", id: id}, window.parentOrigin);
|
||||
}
|
||||
} else if(!embed) {
|
||||
if(window.location.pathname == "/") return;
|
||||
document.querySelector("#code-text").innerText = id;
|
||||
document.querySelector("#code-qr").setAttribute("src", "https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl="+codeURL);
|
||||
document.querySelector("#code-link").setAttribute("href", codeURL);
|
||||
}
|
||||
if(!began) {
|
||||
began = true;
|
||||
setup_host_listener(id);
|
||||
}
|
||||
},
|
||||
|
||||
host_on_action: function(arr) {
|
||||
if(client) return;
|
||||
if(Hostcontroller.enabled){
|
||||
if(arr.type == "volume") {
|
||||
try {
|
||||
Playercontrols.visualVolume(arr.value);
|
||||
Player.setVolume(arr.value);
|
||||
if(scUsingWidget) Player.soundcloud_player.setVolume(arr.value);
|
||||
else Player.soundcloud_player.setVolume(arr.value / 100);
|
||||
try {
|
||||
localStorage.setItem("volume", arr.value);
|
||||
} catch(e){}
|
||||
Playercontrols.choose_button(arr.value, false);
|
||||
} catch(e) {}
|
||||
} else if(arr.type == "channel") {
|
||||
if(window.location.pathname == "/") return;
|
||||
socket.emit("change_channel");
|
||||
Admin.beginning = true;
|
||||
|
||||
chan = arr.value.toLowerCase();
|
||||
Helper.setHtml("#chan", Helper.upperFirst(chan));
|
||||
var shareCodeUrl = window.location.protocol + "//client."+window.location.hostname+"/r/"+btoa(encodeURIComponent(chan.toLowerCase()));
|
||||
document.getElementById("share-join-qr").setAttribute("src", "https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl="+shareCodeUrl);
|
||||
Helper.setHtml("#channel-name-join", "client." + window.location.hostname + "/" + encodeURIComponent(chan.toLowerCase()));
|
||||
w_p = true;
|
||||
var add = "";
|
||||
//if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
||||
socket.emit("list", {version: parseInt(_VERSION), channel: add + chan.toLowerCase()});
|
||||
|
||||
window.history.pushState("object or string", "Title", "/"+chan.toLowerCase());
|
||||
} else if(arr.type == "pause") {
|
||||
Player.pauseVideo();
|
||||
} else if(arr.type == "play") {
|
||||
Player.playVideo();
|
||||
} else if(arr.type == "skip") {
|
||||
List.skip();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
change_enabled:function(val){
|
||||
if(client) return;
|
||||
Hostcontroller.enabled = val;
|
||||
try {
|
||||
document.querySelector(".remote_switch_class").checked = Hostcontroller.enabled;
|
||||
}catch(e) {}
|
||||
host_listener: function(id) {
|
||||
if (client) return;
|
||||
Helper.log(["Host-listener triggered", "Host-listener id:" + id]);
|
||||
if (Hostcontroller.old_id === null) Hostcontroller.old_id = id;
|
||||
else {
|
||||
socket.removeAllListeners(id);
|
||||
began = false;
|
||||
Hostcontroller.old_id = id;
|
||||
}
|
||||
var codeURL =
|
||||
window.location.protocol +
|
||||
"//remote." +
|
||||
window.location.hostname +
|
||||
"/" +
|
||||
id;
|
||||
if (embed) {
|
||||
if (window.parentWindow && window.parentOrigin) {
|
||||
window.parentWindow.postMessage(
|
||||
{ type: "controller", id: id },
|
||||
window.parentOrigin
|
||||
);
|
||||
}
|
||||
} else if (!embed) {
|
||||
if (window.location.pathname == "/") return;
|
||||
document.querySelector("#code-text").innerText = id;
|
||||
document
|
||||
.querySelector("#code-qr")
|
||||
.setAttribute(
|
||||
"src",
|
||||
"https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl=" +
|
||||
codeURL
|
||||
);
|
||||
document.querySelector("#code-link").setAttribute("href", codeURL);
|
||||
}
|
||||
if (!began) {
|
||||
began = true;
|
||||
setup_host_listener(id);
|
||||
}
|
||||
},
|
||||
|
||||
host_on_action: function(arr) {
|
||||
if (client) return;
|
||||
if (Hostcontroller.enabled) {
|
||||
if (arr.type == "volume") {
|
||||
try {
|
||||
Playercontrols.visualVolume(arr.value);
|
||||
Player.setVolume(arr.value);
|
||||
if (scUsingWidget) Player.soundcloud_player.setVolume(arr.value);
|
||||
else Player.soundcloud_player.setVolume(arr.value / 100);
|
||||
try {
|
||||
localStorage.setItem("volume", arr.value);
|
||||
} catch (e) {}
|
||||
Playercontrols.choose_button(arr.value, false);
|
||||
} catch (e) {}
|
||||
} else if (arr.type == "channel") {
|
||||
if (window.location.pathname == "/") return;
|
||||
socket.emit("change_channel");
|
||||
Admin.beginning = true;
|
||||
|
||||
chan = arr.value.toLowerCase();
|
||||
Helper.setHtml("#chan", Helper.upperFirst(chan));
|
||||
var shareCodeUrl =
|
||||
window.location.protocol +
|
||||
"//client." +
|
||||
window.location.hostname +
|
||||
"/r/" +
|
||||
btoa(encodeURIComponent(chan.toLowerCase()));
|
||||
document
|
||||
.getElementById("share-join-qr")
|
||||
.setAttribute(
|
||||
"src",
|
||||
"https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl=" +
|
||||
shareCodeUrl
|
||||
);
|
||||
Helper.setHtml(
|
||||
"#channel-name-join",
|
||||
"client." +
|
||||
window.location.hostname +
|
||||
"/" +
|
||||
encodeURIComponent(chan.toLowerCase())
|
||||
);
|
||||
w_p = true;
|
||||
var add = "";
|
||||
//if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
||||
socket.emit("list", {
|
||||
version: parseInt(_VERSION),
|
||||
channel: add + chan.toLowerCase()
|
||||
});
|
||||
|
||||
window.history.pushState(
|
||||
"object or string",
|
||||
"Title",
|
||||
"/" + chan.toLowerCase()
|
||||
);
|
||||
} else if (arr.type == "pause") {
|
||||
Player.pauseVideo();
|
||||
} else if (arr.type == "play") {
|
||||
Player.playVideo();
|
||||
} else if (arr.type == "skip") {
|
||||
List.skip();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
change_enabled: function(val) {
|
||||
if (client) return;
|
||||
Hostcontroller.enabled = val;
|
||||
try {
|
||||
document.querySelector(".remote_switch_class").checked =
|
||||
Hostcontroller.enabled;
|
||||
} catch (e) {}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,60 +1,89 @@
|
||||
var Mobile_remote = {
|
||||
id: "",
|
||||
id: "",
|
||||
|
||||
get_input: function(value) {
|
||||
if(Mobile_remote.id === "") {
|
||||
Mobile_remote.set_id(value.toLowerCase());
|
||||
} else {
|
||||
Mobile_remote.set_channel(value.toLowerCase());
|
||||
}
|
||||
},
|
||||
get_input: function(value) {
|
||||
if (Mobile_remote.id === "") {
|
||||
Mobile_remote.set_id(value.toLowerCase());
|
||||
} else {
|
||||
Mobile_remote.set_channel(value.toLowerCase());
|
||||
}
|
||||
},
|
||||
|
||||
set_id: function(id) {
|
||||
Mobile_remote.id = id;
|
||||
document.getElementById("pausebutton_remote").removeAttribute("disabled");
|
||||
document.getElementById("skipbutton_remote").removeAttribute("disabled", false);
|
||||
document.getElementById("playbutton_remote").removeAttribute("disabled", false);
|
||||
document.getElementById("skipbutton_remote").removeAttribute("disabled", false);
|
||||
document.getElementById("remote_channel").value = "";
|
||||
document.getElementById("remote_channel").setAttribute("placeholder", "Change channel");
|
||||
document.getElementById("remote_header").innerText = "Controlling " + id;
|
||||
Helper.css("#volume-control-remote", "display", "inline-block");
|
||||
document.querySelector(".slider-vol-mobile").setAttribute("style", "display: inline-block !important");
|
||||
},
|
||||
set_id: function(id) {
|
||||
Mobile_remote.id = id;
|
||||
document.getElementById("pausebutton_remote").removeAttribute("disabled");
|
||||
document
|
||||
.getElementById("skipbutton_remote")
|
||||
.removeAttribute("disabled", false);
|
||||
document
|
||||
.getElementById("playbutton_remote")
|
||||
.removeAttribute("disabled", false);
|
||||
document
|
||||
.getElementById("skipbutton_remote")
|
||||
.removeAttribute("disabled", false);
|
||||
document.getElementById("remote_channel").value = "";
|
||||
document
|
||||
.getElementById("remote_channel")
|
||||
.setAttribute("placeholder", "Change channel");
|
||||
document.getElementById("remote_header").innerText = "Controlling " + id;
|
||||
Helper.css("#volume-control-remote", "display", "inline-block");
|
||||
document
|
||||
.querySelector(".slider-vol-mobile")
|
||||
.setAttribute("style", "display: inline-block !important");
|
||||
},
|
||||
|
||||
set_channel: function(channel_name) {
|
||||
socket.emit("id", {id: Mobile_remote.id, type: "channel", value: channel_name});
|
||||
},
|
||||
set_channel: function(channel_name) {
|
||||
socket.emit("id", {
|
||||
id: Mobile_remote.id,
|
||||
type: "channel",
|
||||
value: channel_name
|
||||
});
|
||||
},
|
||||
|
||||
play_remote: function() {
|
||||
socket.emit("id", {id: Mobile_remote.id, type: "play", value: "mock"});
|
||||
},
|
||||
play_remote: function() {
|
||||
socket.emit("id", { id: Mobile_remote.id, type: "play", value: "mock" });
|
||||
},
|
||||
|
||||
pause_remote: function() {
|
||||
socket.emit("id", {id: Mobile_remote.id, type: "pause", value: "mock"});
|
||||
},
|
||||
pause_remote: function() {
|
||||
socket.emit("id", { id: Mobile_remote.id, type: "pause", value: "mock" });
|
||||
},
|
||||
|
||||
skip_remote: function() {
|
||||
socket.emit("id", {id: Mobile_remote.id, type: "skip", value: "mock"});
|
||||
},
|
||||
skip_remote: function() {
|
||||
socket.emit("id", { id: Mobile_remote.id, type: "skip", value: "mock" });
|
||||
},
|
||||
|
||||
initiate_volume: function() {
|
||||
var vol = 100;
|
||||
document.getElementById("volume-control-remote").insertAdjacentHTML("beforeend", "<div class='volume-slid-remote'></div>");
|
||||
document.getElementById("volume-control-remote").insertAdjacentHTML("beforeend", "<div class='volume-handle-remote'></div>");
|
||||
Helper.css(".volume-slid-remote", "width", vol + "%");
|
||||
Helper.css(".volume-handle-remote", "left", "calc(" + vol + "% - 1px)");
|
||||
document.getElementById("volume-control-remote").addEventListener("touchstart", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.dragMouseDown(e);
|
||||
}, false);
|
||||
|
||||
document.getElementById("volume-control-remote").addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
}, false);
|
||||
|
||||
|
||||
}
|
||||
initiate_volume: function() {
|
||||
var vol = 100;
|
||||
document
|
||||
.getElementById("volume-control-remote")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
"<div class='volume-slid-remote'></div>"
|
||||
);
|
||||
document
|
||||
.getElementById("volume-control-remote")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
"<div class='volume-handle-remote'></div>"
|
||||
);
|
||||
Helper.css(".volume-slid-remote", "width", vol + "%");
|
||||
Helper.css(".volume-handle-remote", "left", "calc(" + vol + "% - 1px)");
|
||||
document.getElementById("volume-control-remote").addEventListener(
|
||||
"touchstart",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.dragMouseDown(e);
|
||||
},
|
||||
false
|
||||
);
|
||||
|
||||
document.getElementById("volume-control-remote").addEventListener(
|
||||
"touchmove",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,466 +1,521 @@
|
||||
var Playercontrols = {
|
||||
stopInterval: false,
|
||||
|
||||
stopInterval: false,
|
||||
initYoutubeControls: function() {
|
||||
Playercontrols.initControls();
|
||||
},
|
||||
|
||||
initControls: function() {
|
||||
document
|
||||
.getElementById("volume-button")
|
||||
.addEventListener("click", Playercontrols.mute_video);
|
||||
document
|
||||
.getElementById("playpause")
|
||||
.addEventListener("click", Playercontrols.play_pause);
|
||||
document
|
||||
.getElementById("volume-button-overlay")
|
||||
.addEventListener("click", Playercontrols.mute_video);
|
||||
document
|
||||
.getElementById("playpause-overlay")
|
||||
.addEventListener("click", Playercontrols.play_pause);
|
||||
document
|
||||
.getElementById("fullscreen")
|
||||
.addEventListener("click", Playercontrols.fullscreen);
|
||||
},
|
||||
|
||||
initYoutubeControls: function() {
|
||||
Playercontrols.initControls();
|
||||
},
|
||||
|
||||
initControls: function() {
|
||||
document.getElementById("volume-button").addEventListener("click", Playercontrols.mute_video);
|
||||
document.getElementById("playpause").addEventListener("click", Playercontrols.play_pause);
|
||||
document.getElementById("volume-button-overlay").addEventListener("click", Playercontrols.mute_video);
|
||||
document.getElementById("playpause-overlay").addEventListener("click", Playercontrols.play_pause);
|
||||
document.getElementById("fullscreen").addEventListener("click", Playercontrols.fullscreen);
|
||||
},
|
||||
|
||||
initSlider: function() {
|
||||
try {
|
||||
|
||||
vol = (Crypt.get_volume());
|
||||
|
||||
} catch(e){
|
||||
vol = 100;
|
||||
}
|
||||
try {
|
||||
if(document.getElementsByClassName("volume-slid")) {
|
||||
document.getElementById("volume").innerHTML = "";
|
||||
}
|
||||
}catch(e){}
|
||||
if((Helper.mobilecheck() || slider_type == "vertical") && !embed) {
|
||||
//slider_values.orientation = "vertical";
|
||||
if(!document.querySelector(".volume-container").classList.contains("hide")) {
|
||||
Helper.toggleClass(".volume-container", "hide");
|
||||
}
|
||||
}
|
||||
document.getElementById("volume").insertAdjacentHTML("beforeend", "<div class='volume-slid " + slider_type + "'></div>");
|
||||
document.getElementById("volume").insertAdjacentHTML("beforeend", "<div class='volume-handle " + slider_type + "'></div>");
|
||||
if(slider_type != "vertical") {
|
||||
Helper.removeClass("#volume", "vertical");
|
||||
Helper.css(".volume-slid", "width", vol + "%");
|
||||
Helper.css(".volume-handle", "left", "calc(" + vol + "% - 1px)");
|
||||
} else {
|
||||
Helper.addClass("#volume", "vertical");
|
||||
Helper.css(".volume-slid", "height", vol + "%");
|
||||
Helper.css(".volume-handle", "bottom", "calc(" + vol + "% - 1px)");
|
||||
|
||||
}
|
||||
Playercontrols.choose_button(vol, false);
|
||||
//document.getElementsByClassName("volume-handle")[0].onmousedown = Playercontrols.dragMouseDown;
|
||||
//Playercontrols.visualVolume(slider_values);
|
||||
//document.getElementsByClassName("volume-slid")[0].onmousedown = Playercontrols.dragMouseDown;
|
||||
document.getElementById("volume").onmousedown = function(e) {
|
||||
Playercontrols.dragMouseDown(e, "player");
|
||||
}
|
||||
if(!Helper.mobilecheck()) {
|
||||
document.getElementById("volume").onclick = function(e) {
|
||||
Playercontrols.elementDrag(e, "player");
|
||||
Playercontrols.closeDragElement("player");
|
||||
}
|
||||
}
|
||||
document.getElementById("volume").addEventListener("touchstart", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.dragMouseDown(e, "player");
|
||||
}, false);
|
||||
|
||||
},
|
||||
|
||||
dragMouseDown: function(e, element) {
|
||||
e = e || window.event;
|
||||
// get the mouse cursor position at startup:
|
||||
document.onmouseup = function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
}
|
||||
document.getElementById("volume").addEventListener("touchend", function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
}, false);
|
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = function(e) {
|
||||
Playercontrols.elementDrag(e, element);
|
||||
}
|
||||
document.getElementById("volume").addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e, element);
|
||||
}, false);
|
||||
},
|
||||
|
||||
elementDrag: function(e, element) {
|
||||
var elmnt;
|
||||
var cmp_elmnt;
|
||||
var slid_elmnt;
|
||||
if(element == "player") {
|
||||
elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
cmp_elmnt = document.getElementById("volume");
|
||||
slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
||||
} else {
|
||||
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
||||
cmp_elmnt = document.getElementById("volume-control-remote");
|
||||
slid_elmnt = document.getElementsByClassName("volume-slid-remote")[0];
|
||||
}
|
||||
e = e || window.event;
|
||||
|
||||
var pos3 = e.clientX;
|
||||
var pos4 = e.clientY;
|
||||
if(pos3 == undefined) {
|
||||
pos3 = e.touches[0].clientX;
|
||||
}
|
||||
if(pos4 == undefined) {
|
||||
pos4 = e.touches[0].clientY;
|
||||
}
|
||||
var volume = 0;
|
||||
if(slider_type != "vertical" || element != "player") {
|
||||
if(elmnt.className.indexOf("ui-state-active") == -1) {
|
||||
elmnt.className += " ui-state-active";
|
||||
}
|
||||
var pos = pos3 - cmp_elmnt.offsetLeft;
|
||||
if(pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
volume = pos / cmp_elmnt.offsetWidth;
|
||||
} else if(pos < 1) {
|
||||
elmnt.style.left = 0 + "px";
|
||||
volume = 0;
|
||||
} else {
|
||||
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.width = volume * 100 + "%";
|
||||
if(element == "player") Playercontrols.setVolume(volume * 100);
|
||||
else socket.emit("id", {id: Mobile_remote.id, type: "volume", value: volume * 100});
|
||||
} else {
|
||||
var pos = pos4 - cmp_elmnt.offsetTop;
|
||||
var pos0 = window.innerHeight - pos - 14;
|
||||
|
||||
if(pos0 > 64 && pos0 < 164) {
|
||||
volume = (pos0 - 64) / 100;
|
||||
} else if(pos0 < 65) {
|
||||
volume = 0;
|
||||
} else {
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.height = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
|
||||
}
|
||||
try{Crypt.set_volume(volume * 100);}catch(e){
|
||||
}
|
||||
},
|
||||
|
||||
closeDragElement: function(element) {
|
||||
/* stop moving when mouse button is released:*/
|
||||
var elmnt;
|
||||
if(element == "player") {
|
||||
elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
} else {
|
||||
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
||||
}
|
||||
if(elmnt.className.indexOf("ui-state-active") > -1) {
|
||||
setTimeout(function(){
|
||||
elmnt.classList.remove("ui-state-active");
|
||||
}, 1);
|
||||
}
|
||||
document.onmouseup = null;
|
||||
document.onmousemove = null;
|
||||
if(element == "player") {
|
||||
document.getElementById("volume").removeEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e, element);
|
||||
}, false);
|
||||
document.getElementById("volume").removeEventListener("touchend", function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
}, false);
|
||||
} else {
|
||||
document.getElementById("volume-control-remote").removeEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
}, false);
|
||||
document.getElementById("volume-control-remote").removeEventListener("touchend", function() {
|
||||
Playercontrols.closeDragElement();
|
||||
}, false);
|
||||
}
|
||||
},
|
||||
|
||||
fullscreen: function() {
|
||||
var playerElement;
|
||||
if(fireplace_initiated) {
|
||||
playerElement = document.getElementById("fireplace_player");
|
||||
} else {
|
||||
playerElement = document.getElementById("player");
|
||||
}
|
||||
|
||||
var requestFullScreen = playerElement.requestFullScreen || playerElement.mozRequestFullScreen || playerElement.webkitRequestFullScreen;
|
||||
if (requestFullScreen) {
|
||||
requestFullScreen.bind(playerElement)();
|
||||
}
|
||||
},
|
||||
|
||||
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)
|
||||
{
|
||||
Player.pauseVideo();
|
||||
if(Helper.mobilecheck() && !window.MSStream && !embed){
|
||||
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
||||
//document.getElementById("player").style.display = "none";
|
||||
Helper.css("#player", "display", "none");
|
||||
Helper.toggleClass(".video-container", "click-through");
|
||||
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
||||
}
|
||||
} else if(Player.player.getPlayerState() == YT.PlayerState.PAUSED || Player.player.getPlayerState() === YT.PlayerState.ENDED || (Player.player.getPlayerState() === YT.PlayerState.CUED)){
|
||||
Player.playVideo();
|
||||
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
||||
if(Helper.mobilecheck() && !window.MSStream){
|
||||
//document.getElementById("player").style.display = "block";
|
||||
Helper.css("#player", "display", "block");
|
||||
Helper.toggleClass(".video-container", "click-through");
|
||||
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Playercontrols.play_pause_show();
|
||||
}
|
||||
},
|
||||
|
||||
play_pause_show: function() {
|
||||
if(chromecastAvailable){
|
||||
if(document.getElementById("play").classList.contains("hide")){
|
||||
Player.pauseVideo();
|
||||
} else if(document.getElementById("pause").classList.contains("hide")){
|
||||
Player.playVideo();
|
||||
}
|
||||
} else {
|
||||
|
||||
if(!document.getElementById("pause").classList.contains("hide")) {
|
||||
Helper.toggleClass("#pause", "hide");
|
||||
Helper.toggleClass("#pause-overlay", "hide");
|
||||
}
|
||||
if(document.getElementById("play").classList.contains("hide")) {
|
||||
Helper.toggleClass("#play", "hide");
|
||||
Helper.toggleClass("#play-overlay", "hide");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
settings: function() {
|
||||
Helper.toggleClass("#qS", "hide");
|
||||
},
|
||||
|
||||
changeQuality: function(wantedQ) {
|
||||
if(Player.player.getPlaybackQuality != wantedQ) {
|
||||
Player.player.setPlaybackQuality(wantedQ);
|
||||
Player.player.getPlaybackQuality();
|
||||
}
|
||||
Helper.toggleClass("#qS", "hide");
|
||||
},
|
||||
|
||||
mute_video: function() {
|
||||
if(Helper.mobilecheck() || slider_type == "vertical") {
|
||||
Helper.toggleClass(".volume-container", "hide");
|
||||
} else {
|
||||
if(!Player.player.isMuted()) {
|
||||
if(chromecastAvailable) castSession.sendMessage("urn:x-cast:zoff.me", {type: "mute"});
|
||||
Playercontrols.choose_button(0, true);
|
||||
Player.player.mute();
|
||||
} else {
|
||||
if(chromecastAvailable)castSession.sendMessage("urn:x-cast:zoff.me", {type: "unMute"});
|
||||
Player.player.unMute();
|
||||
Playercontrols.choose_button(Player.player.getVolume(), false);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setVolume: function(vol) {
|
||||
Player.setVolume(vol);
|
||||
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();
|
||||
},
|
||||
|
||||
choose_button: function(vol, mute) {
|
||||
if(!mute){
|
||||
if(vol >= 0 && vol <= 33) {
|
||||
if(!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if(document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
} else if(vol >= 34 && vol <= 66) {
|
||||
if(!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if(document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
} else if(vol >= 67 && vol <= 100) {
|
||||
if(document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if(!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if(document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
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");
|
||||
Player.soundcloud_player.play();
|
||||
} else {
|
||||
Helper.removeClass("#play", "hide");
|
||||
Helper.addClass("#pause", "hide");
|
||||
Player.soundcloud_player.pause();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
state = Player.player.getPlayerState();
|
||||
button = document.getElementById("playpause");
|
||||
if(state == YT.PlayerState.PLAYING) {
|
||||
Player.pauseVideo();
|
||||
} else if(state == YT.PlayerState.PAUSED) {
|
||||
Player.playVideo();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
visualVolume: function(val) {
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
var cmp_elmnt = document.getElementById("volume");
|
||||
var slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
||||
|
||||
if(slider_type != "vertical") {
|
||||
var pos = (cmp_elmnt.offsetWidth / 100) * val;
|
||||
var volume = 0;
|
||||
//var pos = pos3 - cmp_elmnt.offsetLeft;
|
||||
if(pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
volume = pos / cmp_elmnt.offsetWidth;
|
||||
} else if(pos < 1) {
|
||||
elmnt.style.left = 0 + "px";
|
||||
volume = 0;
|
||||
} else {
|
||||
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
||||
volume = 1;
|
||||
}
|
||||
|
||||
slid_elmnt.style.width = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
} else {
|
||||
var pos = val;
|
||||
var pos0 = window.innerHeight - pos - 14;
|
||||
var volume = 0;
|
||||
if(pos0 > 64 && pos0 < 164) {
|
||||
volume = (pos0 - 64) / 100;
|
||||
} else if(pos0 < 65) {
|
||||
volume = 0;
|
||||
} else {
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.height = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
}
|
||||
},
|
||||
|
||||
volumeOptions: function() {
|
||||
if(!chromecastAvailable) {
|
||||
if(Player.player.isMuted()) {
|
||||
Player.player.unMute();
|
||||
vol = Player.player.getVolume();
|
||||
Playercontrols.visualVolume(Player.player.getVolume());
|
||||
} else {
|
||||
Player.player.mute();
|
||||
Playercontrols.visualVolume(0);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hoverMute: function(foo) {
|
||||
vol = Player.player.getVolume();
|
||||
initSlider: function() {
|
||||
try {
|
||||
vol = Crypt.get_volume();
|
||||
} catch (e) {
|
||||
vol = 100;
|
||||
}
|
||||
try {
|
||||
if (document.getElementsByClassName("volume-slid")) {
|
||||
document.getElementById("volume").innerHTML = "";
|
||||
}
|
||||
} catch (e) {}
|
||||
if ((Helper.mobilecheck() || slider_type == "vertical") && !embed) {
|
||||
//slider_values.orientation = "vertical";
|
||||
if (
|
||||
!document.querySelector(".volume-container").classList.contains("hide")
|
||||
) {
|
||||
Helper.toggleClass(".volume-container", "hide");
|
||||
}
|
||||
}
|
||||
document
|
||||
.getElementById("volume")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
"<div class='volume-slid " + slider_type + "'></div>"
|
||||
);
|
||||
document
|
||||
.getElementById("volume")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
"<div class='volume-handle " + slider_type + "'></div>"
|
||||
);
|
||||
if (slider_type != "vertical") {
|
||||
Helper.removeClass("#volume", "vertical");
|
||||
Helper.css(".volume-slid", "width", vol + "%");
|
||||
Helper.css(".volume-handle", "left", "calc(" + vol + "% - 1px)");
|
||||
} else {
|
||||
Helper.addClass("#volume", "vertical");
|
||||
Helper.css(".volume-slid", "height", vol + "%");
|
||||
Helper.css(".volume-handle", "bottom", "calc(" + vol + "% - 1px)");
|
||||
}
|
||||
Playercontrols.choose_button(vol, false);
|
||||
//document.getElementsByClassName("volume-handle")[0].onmousedown = Playercontrols.dragMouseDown;
|
||||
//Playercontrols.visualVolume(slider_values);
|
||||
//document.getElementsByClassName("volume-slid")[0].onmousedown = Playercontrols.dragMouseDown;
|
||||
document.getElementById("volume").onmousedown = function(e) {
|
||||
Playercontrols.dragMouseDown(e, "player");
|
||||
};
|
||||
if (!Helper.mobilecheck()) {
|
||||
document.getElementById("volume").onclick = function(e) {
|
||||
Playercontrols.elementDrag(e, "player");
|
||||
Playercontrols.closeDragElement("player");
|
||||
};
|
||||
}
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchstart",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.dragMouseDown(e, "player");
|
||||
},
|
||||
false
|
||||
);
|
||||
},
|
||||
|
||||
dragMouseDown: function(e, element) {
|
||||
e = e || window.event;
|
||||
// get the mouse cursor position at startup:
|
||||
document.onmouseup = function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
};
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchend",
|
||||
function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
},
|
||||
false
|
||||
);
|
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = function(e) {
|
||||
Playercontrols.elementDrag(e, element);
|
||||
};
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchmove",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e, element);
|
||||
},
|
||||
false
|
||||
);
|
||||
},
|
||||
|
||||
elementDrag: function(e, element) {
|
||||
var elmnt;
|
||||
var cmp_elmnt;
|
||||
var slid_elmnt;
|
||||
if (element == "player") {
|
||||
elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
cmp_elmnt = document.getElementById("volume");
|
||||
slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
||||
} else {
|
||||
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
||||
cmp_elmnt = document.getElementById("volume-control-remote");
|
||||
slid_elmnt = document.getElementsByClassName("volume-slid-remote")[0];
|
||||
}
|
||||
e = e || window.event;
|
||||
|
||||
var pos3 = e.clientX;
|
||||
var pos4 = e.clientY;
|
||||
if (pos3 == undefined) {
|
||||
pos3 = e.touches[0].clientX;
|
||||
}
|
||||
if (pos4 == undefined) {
|
||||
pos4 = e.touches[0].clientY;
|
||||
}
|
||||
var volume = 0;
|
||||
if (slider_type != "vertical" || element != "player") {
|
||||
if (elmnt.className.indexOf("ui-state-active") == -1) {
|
||||
elmnt.className += " ui-state-active";
|
||||
}
|
||||
var pos = pos3 - cmp_elmnt.offsetLeft;
|
||||
if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
volume = pos / cmp_elmnt.offsetWidth;
|
||||
} else if (pos < 1) {
|
||||
elmnt.style.left = 0 + "px";
|
||||
volume = 0;
|
||||
} else {
|
||||
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.width = volume * 100 + "%";
|
||||
if (element == "player") Playercontrols.setVolume(volume * 100);
|
||||
else
|
||||
socket.emit("id", {
|
||||
id: Mobile_remote.id,
|
||||
type: "volume",
|
||||
value: volume * 100
|
||||
});
|
||||
} else {
|
||||
var pos = pos4 - cmp_elmnt.offsetTop;
|
||||
var pos0 = window.innerHeight - pos - 14;
|
||||
|
||||
if (pos0 > 64 && pos0 < 164) {
|
||||
volume = (pos0 - 64) / 100;
|
||||
} else if (pos0 < 65) {
|
||||
volume = 0;
|
||||
} else {
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.height = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
}
|
||||
try {
|
||||
Crypt.set_volume(volume * 100);
|
||||
} catch (e) {}
|
||||
},
|
||||
|
||||
closeDragElement: function(element) {
|
||||
/* stop moving when mouse button is released:*/
|
||||
var elmnt;
|
||||
if (element == "player") {
|
||||
elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
} else {
|
||||
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
||||
}
|
||||
if (elmnt.className.indexOf("ui-state-active") > -1) {
|
||||
setTimeout(function() {
|
||||
elmnt.classList.remove("ui-state-active");
|
||||
}, 1);
|
||||
}
|
||||
document.onmouseup = null;
|
||||
document.onmousemove = null;
|
||||
if (element == "player") {
|
||||
document.getElementById("volume").removeEventListener(
|
||||
"touchmove",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e, element);
|
||||
},
|
||||
false
|
||||
);
|
||||
document.getElementById("volume").removeEventListener(
|
||||
"touchend",
|
||||
function() {
|
||||
Playercontrols.closeDragElement(element);
|
||||
},
|
||||
false
|
||||
);
|
||||
} else {
|
||||
document.getElementById("volume-control-remote").removeEventListener(
|
||||
"touchmove",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
},
|
||||
false
|
||||
);
|
||||
document.getElementById("volume-control-remote").removeEventListener(
|
||||
"touchend",
|
||||
function() {
|
||||
Playercontrols.closeDragElement();
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
fullscreen: function() {
|
||||
var playerElement;
|
||||
if (fireplace_initiated) {
|
||||
playerElement = document.getElementById("fireplace_player");
|
||||
} else {
|
||||
playerElement = document.getElementById("player");
|
||||
}
|
||||
|
||||
var requestFullScreen =
|
||||
playerElement.requestFullScreen ||
|
||||
playerElement.mozRequestFullScreen ||
|
||||
playerElement.webkitRequestFullScreen;
|
||||
if (requestFullScreen) {
|
||||
requestFullScreen.bind(playerElement)();
|
||||
}
|
||||
},
|
||||
|
||||
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) {
|
||||
Player.pauseVideo();
|
||||
if (Helper.mobilecheck() && !window.MSStream && !embed) {
|
||||
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
||||
//document.getElementById("player").style.display = "none";
|
||||
Helper.css("#player", "display", "none");
|
||||
Helper.toggleClass(".video-container", "click-through");
|
||||
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
||||
}
|
||||
} else if (
|
||||
Player.player.getPlayerState() == YT.PlayerState.PAUSED ||
|
||||
Player.player.getPlayerState() === YT.PlayerState.ENDED ||
|
||||
Player.player.getPlayerState() === YT.PlayerState.CUED
|
||||
) {
|
||||
Player.playVideo();
|
||||
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
||||
if (Helper.mobilecheck() && !window.MSStream) {
|
||||
//document.getElementById("player").style.display = "block";
|
||||
Helper.css("#player", "display", "block");
|
||||
Helper.toggleClass(".video-container", "click-through");
|
||||
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Playercontrols.play_pause_show();
|
||||
}
|
||||
},
|
||||
|
||||
play_pause_show: function() {
|
||||
if (chromecastAvailable) {
|
||||
if (document.getElementById("play").classList.contains("hide")) {
|
||||
Player.pauseVideo();
|
||||
} else if (document.getElementById("pause").classList.contains("hide")) {
|
||||
Player.playVideo();
|
||||
}
|
||||
} else {
|
||||
if (!document.getElementById("pause").classList.contains("hide")) {
|
||||
Helper.toggleClass("#pause", "hide");
|
||||
Helper.toggleClass("#pause-overlay", "hide");
|
||||
}
|
||||
if (document.getElementById("play").classList.contains("hide")) {
|
||||
Helper.toggleClass("#play", "hide");
|
||||
Helper.toggleClass("#play-overlay", "hide");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
settings: function() {
|
||||
Helper.toggleClass("#qS", "hide");
|
||||
},
|
||||
|
||||
changeQuality: function(wantedQ) {
|
||||
if (Player.player.getPlaybackQuality != wantedQ) {
|
||||
Player.player.setPlaybackQuality(wantedQ);
|
||||
Player.player.getPlaybackQuality();
|
||||
}
|
||||
Helper.toggleClass("#qS", "hide");
|
||||
},
|
||||
|
||||
mute_video: function() {
|
||||
if (Helper.mobilecheck() || slider_type == "vertical") {
|
||||
Helper.toggleClass(".volume-container", "hide");
|
||||
} else {
|
||||
if (!Player.player.isMuted()) {
|
||||
if (chromecastAvailable)
|
||||
castSession.sendMessage("urn:x-cast:zoff.me", { type: "mute" });
|
||||
Playercontrols.choose_button(0, true);
|
||||
Player.player.mute();
|
||||
} else {
|
||||
if (chromecastAvailable)
|
||||
castSession.sendMessage("urn:x-cast:zoff.me", { type: "unMute" });
|
||||
Player.player.unMute();
|
||||
Playercontrols.choose_button(Player.player.getVolume(), false);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setVolume: function(vol) {
|
||||
Player.setVolume(vol);
|
||||
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();
|
||||
},
|
||||
|
||||
choose_button: function(vol, mute) {
|
||||
if (!mute) {
|
||||
if (vol >= 0 && vol <= 33) {
|
||||
if (!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if (document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
} else if (vol >= 34 && vol <= 66) {
|
||||
if (!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if (document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
} else if (vol >= 67 && vol <= 100) {
|
||||
if (document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!document.getElementById("v-full").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-full", "hide");
|
||||
Helper.toggleClass("#v-full-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-medium", "hide");
|
||||
Helper.toggleClass("#v-medium-overlay", "hide");
|
||||
}
|
||||
if (!document.getElementById("v-low").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-low", "hide");
|
||||
Helper.toggleClass("#v-low-overlay", "hide");
|
||||
}
|
||||
if (document.getElementById("v-mute").classList.contains("hide")) {
|
||||
Helper.toggleClass("#v-mute", "hide");
|
||||
Helper.toggleClass("#v-mute-overlay", "hide");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
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");
|
||||
Player.soundcloud_player.play();
|
||||
} else {
|
||||
Helper.removeClass("#play", "hide");
|
||||
Helper.addClass("#pause", "hide");
|
||||
Player.soundcloud_player.pause();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
state = Player.player.getPlayerState();
|
||||
button = document.getElementById("playpause");
|
||||
if (state == YT.PlayerState.PLAYING) {
|
||||
Player.pauseVideo();
|
||||
} else if (state == YT.PlayerState.PAUSED) {
|
||||
Player.playVideo();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
visualVolume: function(val) {
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
var cmp_elmnt = document.getElementById("volume");
|
||||
var slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
||||
|
||||
if (slider_type != "vertical") {
|
||||
var pos = (cmp_elmnt.offsetWidth / 100) * val;
|
||||
var volume = 0;
|
||||
//var pos = pos3 - cmp_elmnt.offsetLeft;
|
||||
if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
volume = pos / cmp_elmnt.offsetWidth;
|
||||
} else if (pos < 1) {
|
||||
elmnt.style.left = 0 + "px";
|
||||
volume = 0;
|
||||
} else {
|
||||
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
||||
volume = 1;
|
||||
}
|
||||
|
||||
slid_elmnt.style.width = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
} else {
|
||||
var pos = val;
|
||||
var pos0 = window.innerHeight - pos - 14;
|
||||
var volume = 0;
|
||||
if (pos0 > 64 && pos0 < 164) {
|
||||
volume = (pos0 - 64) / 100;
|
||||
} else if (pos0 < 65) {
|
||||
volume = 0;
|
||||
} else {
|
||||
volume = 1;
|
||||
}
|
||||
slid_elmnt.style.height = volume * 100 + "%";
|
||||
Playercontrols.setVolume(volume * 100);
|
||||
}
|
||||
},
|
||||
|
||||
volumeOptions: function() {
|
||||
if (!chromecastAvailable) {
|
||||
if (Player.player.isMuted()) {
|
||||
Player.player.unMute();
|
||||
vol = Player.player.getVolume();
|
||||
Playercontrols.visualVolume(Player.player.getVolume());
|
||||
} else {
|
||||
Player.player.mute();
|
||||
Playercontrols.visualVolume(0);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hoverMute: function(foo) {
|
||||
vol = Player.player.getVolume();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2,107 +2,136 @@ var start = true;
|
||||
var dynamicListeners = {};
|
||||
|
||||
mobilecheck = function() {
|
||||
var check = false;
|
||||
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true;})(navigator.userAgent||navigator.vendor||window.opera);
|
||||
return check;
|
||||
var check = false;
|
||||
(function(a) {
|
||||
if (
|
||||
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(
|
||||
a
|
||||
) ||
|
||||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
|
||||
a.substr(0, 4)
|
||||
)
|
||||
)
|
||||
check = true;
|
||||
})(navigator.userAgent || navigator.vendor || window.opera);
|
||||
return check;
|
||||
};
|
||||
|
||||
window.addEventListener("DOMContentLoaded", function (){
|
||||
window.addEventListener(
|
||||
"DOMContentLoaded",
|
||||
function() {
|
||||
document.title = "Zoff Remote";
|
||||
setTimeout(function(){document.getElementById("search").focus();},500);
|
||||
setTimeout(function() {
|
||||
document.getElementById("search").focus();
|
||||
}, 500);
|
||||
var connection_options = {
|
||||
'sync disconnect on unload':true,
|
||||
'secure': true
|
||||
"sync disconnect on unload": true,
|
||||
secure: true
|
||||
};
|
||||
|
||||
M.Modal.init(document.getElementById("about"));
|
||||
M.Modal.init(document.getElementById("contact"));
|
||||
M.Modal.init(document.getElementById("help"));
|
||||
|
||||
if(window.location.hostname == "remote.zoff.me") add = "https://zoff.me";
|
||||
if (window.location.hostname == "remote.zoff.me") add = "https://zoff.me";
|
||||
else add = "localhost";
|
||||
socket = io.connect(add, connection_options);
|
||||
socket.on('update_required', function() {
|
||||
window.location.reload(true);
|
||||
socket = io.connect(
|
||||
add,
|
||||
connection_options
|
||||
);
|
||||
socket.on("update_required", function() {
|
||||
window.location.reload(true);
|
||||
});
|
||||
id = window.location.pathname.split("/")[1];
|
||||
if(id)
|
||||
{
|
||||
id = id.toLowerCase();
|
||||
Remotecontroller.control();
|
||||
if (id) {
|
||||
id = id.toLowerCase();
|
||||
Remotecontroller.control();
|
||||
}
|
||||
}, false);
|
||||
|
||||
},
|
||||
false
|
||||
);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addListener(type, element, callback) {
|
||||
if(dynamicListeners[type] == undefined) dynamicListeners[type] = {};
|
||||
dynamicListeners[type][element] = callback;
|
||||
if (dynamicListeners[type] == undefined) dynamicListeners[type] = {};
|
||||
dynamicListeners[type][element] = callback;
|
||||
}
|
||||
|
||||
document.addEventListener("click", function(e) {
|
||||
document.addEventListener(
|
||||
"click",
|
||||
function(e) {
|
||||
handleEvent(e, e.target, false, "click");
|
||||
}, true);
|
||||
document.addEventListener("submit", function(e) {
|
||||
},
|
||||
true
|
||||
);
|
||||
document.addEventListener(
|
||||
"submit",
|
||||
function(e) {
|
||||
handleEvent(e, e.target, false, "submit");
|
||||
}, true);
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
addListener("click", "#playbutton", function() {
|
||||
socket.emit("id", {id: id, type: "play", value: "mock"});
|
||||
socket.emit("id", { id: id, type: "play", value: "mock" });
|
||||
});
|
||||
|
||||
addListener("click", "#pausebutton", function() {
|
||||
socket.emit("id", {id: id, type: "pause", value: "mock"});
|
||||
socket.emit("id", { id: id, type: "pause", value: "mock" });
|
||||
});
|
||||
|
||||
addListener("click", "#skipbutton", function() {
|
||||
socket.emit("id", {id: id, type: "skip", value: "mock"});
|
||||
socket.emit("id", { id: id, type: "skip", value: "mock" });
|
||||
});
|
||||
|
||||
addListener("submit", "#remoteform", function(e) {
|
||||
event.preventDefault();
|
||||
Remotecontroller.control();
|
||||
event.preventDefault();
|
||||
Remotecontroller.control();
|
||||
});
|
||||
|
||||
var Remotecontroller = {
|
||||
control: function() {
|
||||
if (start) {
|
||||
if (!id) {
|
||||
id = document.getElementById("remoteform").chan.value;
|
||||
window.history.pushState("object or string", "Title", "/" + id);
|
||||
}
|
||||
document.getElementById("remoteform").chan.value = "";
|
||||
start = false;
|
||||
|
||||
control: function() {
|
||||
if(start) {
|
||||
if(!id) {
|
||||
id = document.getElementById("remoteform").chan.value;
|
||||
window.history.pushState("object or string", "Title", "/"+id);
|
||||
}
|
||||
document.getElementById("remoteform").chan.value = "";
|
||||
start = false;
|
||||
Helper.css(".volume-elements", "display", "flex");
|
||||
Helper.css(".rc", "display", "block");
|
||||
|
||||
Helper.css(".volume-elements", "display", "flex");
|
||||
Helper.css(".rc", "display", "block");
|
||||
//document.getElementById("base").setAttribute("onsubmit", "control(); return false;");
|
||||
document.getElementById("remote-text").innerText =
|
||||
"Controlling " + id.toUpperCase();
|
||||
document.getElementById("search").setAttribute("length", "18");
|
||||
document.getElementById("search").setAttribute("maxlength", "18");
|
||||
document.getElementById("forsearch").innerText =
|
||||
"Type new channel name to change to";
|
||||
|
||||
//document.getElementById("base").setAttribute("onsubmit", "control(); return false;");
|
||||
document.getElementById("remote-text").innerText = "Controlling "+ id.toUpperCase();
|
||||
document.getElementById("search").setAttribute("length", "18");
|
||||
document.getElementById("search").setAttribute("maxlength", "18");
|
||||
document.getElementById("forsearch").innerText = "Type new channel name to change to";
|
||||
|
||||
//
|
||||
/*$("#volume-control").slider({
|
||||
//
|
||||
/*$("#volume-control").slider({
|
||||
min: 0,
|
||||
max: 100,
|
||||
value: 100,
|
||||
@@ -113,94 +142,123 @@ var Remotecontroller = {
|
||||
}
|
||||
//});*/
|
||||
|
||||
document.getElementById("volume").insertAdjacentHTML("beforeend", "<div class='volume-slid'></div>");
|
||||
document.getElementById("volume").insertAdjacentHTML("beforeend", "<div class='volume-handle'></div>");
|
||||
document
|
||||
.getElementById("volume")
|
||||
.insertAdjacentHTML("beforeend", "<div class='volume-slid'></div>");
|
||||
document
|
||||
.getElementById("volume")
|
||||
.insertAdjacentHTML("beforeend", "<div class='volume-handle'></div>");
|
||||
|
||||
Helper.css(".volume-slid", "width", "100%");
|
||||
Helper.css(".volume-handle", "left", "calc(100% - 1px)");
|
||||
//document.getElementsByClassName("volume-handle")[0].onmousedown = Remotecontroller.dragMouseDown;
|
||||
//$("#volume").slider(slider_values);
|
||||
//document.getElementsByClassName("volume-slid")[0].onmousedown = Remotecontroller.dragMouseDown;
|
||||
document.getElementById("volume").onmousedown = Remotecontroller.dragMouseDown;
|
||||
document.getElementById("volume").addEventListener("touchstart", function(e) {
|
||||
e.preventDefault();
|
||||
Remotecontroller.dragMouseDown(e);
|
||||
}, false);
|
||||
document.getElementById("volume").onclick = function(e) {
|
||||
Remotecontroller.elementDrag(e);
|
||||
Remotecontroller.closeDragElement();
|
||||
}
|
||||
} else {
|
||||
socket.emit("id", {id: id, type: "channel", value: document.getElementById("search").value.toLowerCase()});
|
||||
document.getElementById("search").value = "";
|
||||
}
|
||||
Helper.css(".volume-slid", "width", "100%");
|
||||
Helper.css(".volume-handle", "left", "calc(100% - 1px)");
|
||||
//document.getElementsByClassName("volume-handle")[0].onmousedown = Remotecontroller.dragMouseDown;
|
||||
//$("#volume").slider(slider_values);
|
||||
//document.getElementsByClassName("volume-slid")[0].onmousedown = Remotecontroller.dragMouseDown;
|
||||
document.getElementById("volume").onmousedown =
|
||||
Remotecontroller.dragMouseDown;
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchstart",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Remotecontroller.dragMouseDown(e);
|
||||
},
|
||||
false
|
||||
);
|
||||
document.getElementById("volume").onclick = function(e) {
|
||||
Remotecontroller.elementDrag(e);
|
||||
Remotecontroller.closeDragElement();
|
||||
};
|
||||
} else {
|
||||
socket.emit("id", {
|
||||
id: id,
|
||||
type: "channel",
|
||||
value: document.getElementById("search").value.toLowerCase()
|
||||
});
|
||||
document.getElementById("search").value = "";
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
dragMouseDown: function(e) {
|
||||
e = e || window.event;
|
||||
// get the mouse cursor position at startup:
|
||||
document.onmouseup = Remotecontroller.closeDragElement;
|
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = Remotecontroller.elementDrag;
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchend",
|
||||
function() {
|
||||
Remotecontroller.closeDragElement();
|
||||
},
|
||||
false
|
||||
);
|
||||
document.getElementById("volume").addEventListener(
|
||||
"touchmove",
|
||||
function(e) {
|
||||
e.preventDefault();
|
||||
Remotecontroller.elementDrag(e);
|
||||
},
|
||||
false
|
||||
);
|
||||
},
|
||||
|
||||
elementDrag: function(e) {
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
e = e || window.event;
|
||||
|
||||
dragMouseDown: function(e) {
|
||||
e = e || window.event;
|
||||
// get the mouse cursor position at startup:
|
||||
document.onmouseup = Remotecontroller.closeDragElement;
|
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = Remotecontroller.elementDrag;
|
||||
document.getElementById("volume").addEventListener("touchend", function() {
|
||||
Remotecontroller.closeDragElement();
|
||||
}, false);
|
||||
document.getElementById("volume").addEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Remotecontroller.elementDrag(e);
|
||||
}, false);
|
||||
},
|
||||
var pos3 = e.clientX;
|
||||
if (pos3 == undefined) {
|
||||
pos3 = e.touches[0].clientX;
|
||||
}
|
||||
|
||||
elementDrag: function(e) {
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
e = e || window.event;
|
||||
if (elmnt.className.indexOf("ui-state-active") == -1) {
|
||||
elmnt.className += " ui-state-active";
|
||||
}
|
||||
var pos = pos3 - document.getElementById("volume").offsetLeft;
|
||||
if (pos > -1 && pos < document.getElementById("volume").offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
var volume = pos / document.getElementById("volume").offsetWidth;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width =
|
||||
volume * 100 + "%";
|
||||
} else if (pos < 0) {
|
||||
var volume = 0;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width =
|
||||
volume * 100 + "%";
|
||||
} else {
|
||||
var volume = 1;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width =
|
||||
volume * 100 + "%";
|
||||
}
|
||||
|
||||
var pos3 = e.clientX;
|
||||
if(pos3 == undefined) {
|
||||
pos3 = e.touches[0].clientX;
|
||||
}
|
||||
socket.emit("id", { id: id, type: "volume", value: volume * 100 });
|
||||
|
||||
if(elmnt.className.indexOf("ui-state-active") == -1) {
|
||||
elmnt.className += " ui-state-active";
|
||||
}
|
||||
var pos = pos3 - document.getElementById("volume").offsetLeft;
|
||||
if(pos > -1 && pos < document.getElementById("volume").offsetWidth + 1) {
|
||||
elmnt.style.left = pos + "px";
|
||||
var volume = pos / document.getElementById("volume").offsetWidth;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width = volume * 100 + "%";
|
||||
} else if(pos < 0) {
|
||||
var volume = 0;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width = volume * 100 + "%";
|
||||
} else {
|
||||
var volume = 1;
|
||||
document.getElementsByClassName("volume-slid")[0].style.width = volume * 100 + "%";
|
||||
}
|
||||
try {
|
||||
Crypt.set_volume(volume * 100);
|
||||
} catch (e) {}
|
||||
},
|
||||
|
||||
socket.emit("id", {id: id, type: "volume", value: volume * 100});
|
||||
closeDragElement: function() {
|
||||
/* stop moving when mouse button is released:*/
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
if (elmnt.className.indexOf("ui-state-active") > -1) {
|
||||
setTimeout(function() {
|
||||
elmnt.classList.remove("ui-state-active");
|
||||
}, 1);
|
||||
}
|
||||
document.onmouseup = null;
|
||||
document.onmousemove = null;
|
||||
|
||||
try{Crypt.set_volume(volume * 100);}catch(e){}
|
||||
},
|
||||
|
||||
closeDragElement: function() {
|
||||
/* stop moving when mouse button is released:*/
|
||||
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
||||
if(elmnt.className.indexOf("ui-state-active") > -1) {
|
||||
setTimeout(function(){
|
||||
elmnt.classList.remove("ui-state-active");
|
||||
}, 1);
|
||||
}
|
||||
document.onmouseup = null;
|
||||
document.onmousemove = null;
|
||||
|
||||
document.getElementById("volume").removeEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
});
|
||||
document.getElementById("volume").removeEventListener("touchend", function() {
|
||||
Playercontrols.closeDragElement();
|
||||
}, false);
|
||||
|
||||
},
|
||||
document
|
||||
.getElementById("volume")
|
||||
.removeEventListener("touchmove", function(e) {
|
||||
e.preventDefault();
|
||||
Playercontrols.elementDrag(e);
|
||||
});
|
||||
document.getElementById("volume").removeEventListener(
|
||||
"touchend",
|
||||
function() {
|
||||
Playercontrols.closeDragElement();
|
||||
},
|
||||
false
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,121 +1,167 @@
|
||||
var Suggestions = {
|
||||
catchUserSuggests: function(params, single) {
|
||||
if (single) {
|
||||
number_suggested = number_suggested + 1;
|
||||
} else {
|
||||
number_suggested = number_suggested + params.length;
|
||||
}
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (document.querySelectorAll("#suggested-" + params[i].id).length > 0) {
|
||||
number_suggested -= 1;
|
||||
}
|
||||
}
|
||||
var to_display = number_suggested > 9 ? "9+" : number_suggested;
|
||||
if (number_suggested > 0 && Admin.logged_in) {
|
||||
Helper.removeClass(
|
||||
document.querySelector(".suggested-link span.badge.new.white"),
|
||||
"hide"
|
||||
);
|
||||
}
|
||||
document.querySelector(
|
||||
".suggested-link span.badge.new.white"
|
||||
).innerText = to_display;
|
||||
if (single) {
|
||||
Suggestions.createSuggested(params);
|
||||
} else {
|
||||
for (var x in params) {
|
||||
Suggestions.createSuggested(params[x]);
|
||||
}
|
||||
}
|
||||
Suggestions.checkUserEmpty();
|
||||
},
|
||||
|
||||
catchUserSuggests: function(params, single){
|
||||
if(single) {
|
||||
number_suggested = number_suggested + 1;
|
||||
} else {
|
||||
number_suggested = number_suggested + params.length;
|
||||
}
|
||||
for(var i = 0; i < params.length; i++) {
|
||||
if(document.querySelectorAll("#suggested-" + params[i].id).length > 0) {
|
||||
number_suggested -= 1;
|
||||
}
|
||||
}
|
||||
var to_display = number_suggested > 9 ? "9+" : number_suggested;
|
||||
if(number_suggested > 0 && Admin.logged_in){
|
||||
Helper.removeClass(document.querySelector(".suggested-link span.badge.new.white"), "hide");
|
||||
}
|
||||
document.querySelector(".suggested-link span.badge.new.white").innerText = to_display;
|
||||
if(single){
|
||||
Suggestions.createSuggested(params);
|
||||
}else{
|
||||
for(var x in params){
|
||||
Suggestions.createSuggested(params[x]);
|
||||
}
|
||||
}
|
||||
Suggestions.checkUserEmpty();
|
||||
},
|
||||
createSuggested: function(params) {
|
||||
var duration = Helper.secondsToOther(params.duration);
|
||||
var video_id = params.id;
|
||||
var video_title = params.title;
|
||||
var date = new Date(params.added * 1000);
|
||||
var addedTime =
|
||||
Helper.pad(date.getHours()) +
|
||||
":" +
|
||||
Helper.pad(date.getMinutes()) +
|
||||
" - " +
|
||||
Helper.pad(date.getDate()) +
|
||||
"." +
|
||||
Helper.pad(date.getMonth()) +
|
||||
"." +
|
||||
Helper.pad(date.getYear() - 100);
|
||||
var toSend = {
|
||||
id: video_id,
|
||||
title: video_title,
|
||||
length: params.duration,
|
||||
duration: duration,
|
||||
votes: addedTime,
|
||||
extra: "Added"
|
||||
};
|
||||
if (params.source) toSend.source = params.source;
|
||||
else {
|
||||
toSend.source = "youtube";
|
||||
}
|
||||
if (params.thumbnail) toSend.thumbnail = params.thumbnail;
|
||||
var song = List.generateSong(toSend, false, false, false, true);
|
||||
var testingElem;
|
||||
try {
|
||||
testingElem = document.getElementById(video_id);
|
||||
} catch (e) {}
|
||||
|
||||
createSuggested: function(params){
|
||||
var duration = Helper.secondsToOther(params.duration);
|
||||
var video_id = params.id;
|
||||
var video_title = params.title;
|
||||
var date = new Date(params.added * 1000);
|
||||
var addedTime = Helper.pad(date.getHours()) + ":"
|
||||
+ Helper.pad(date.getMinutes()) + " - "
|
||||
+ Helper.pad(date.getDate()) + "."
|
||||
+ Helper.pad(date.getMonth()) + "."
|
||||
+ Helper.pad((date.getYear()-100));
|
||||
var toSend = {id: video_id, title: video_title, length: params.duration, duration: duration, votes: addedTime, extra: "Added"};
|
||||
if(params.source) toSend.source = params.source;
|
||||
else {
|
||||
toSend.source = "youtube";
|
||||
}
|
||||
if(params.thumbnail) toSend.thumbnail = params.thumbnail;
|
||||
var song = List.generateSong(toSend, false, false, false, true);
|
||||
var testingElem;
|
||||
try {
|
||||
testingElem = document.getElementById(video_id);
|
||||
} catch(e) {}
|
||||
if (
|
||||
!testingElem &&
|
||||
document.querySelectorAll("#suggested-" + video_id).length == 0
|
||||
) {
|
||||
document
|
||||
.getElementById("user-suggest-html")
|
||||
.insertAdjacentHTML("beforeend", song);
|
||||
}
|
||||
},
|
||||
|
||||
if(!testingElem && document.querySelectorAll("#suggested-" + video_id).length == 0) {
|
||||
document.getElementById("user-suggest-html").insertAdjacentHTML("beforeend", song);
|
||||
}
|
||||
},
|
||||
fetchYoutubeSuggests: function(id) {
|
||||
if (videoSource == "soundcloud") {
|
||||
Helper.addClass(document.querySelector(".suggest-title-info"), "hide");
|
||||
Helper.addClass("#suggest-song-html", "hide");
|
||||
return;
|
||||
} else {
|
||||
Helper.removeClass(document.querySelector(".suggest-title-info"), "hide");
|
||||
Helper.removeClass("#suggest-song-html", "hide");
|
||||
}
|
||||
var get_url =
|
||||
"https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId=" +
|
||||
id +
|
||||
"&type=video&key=" +
|
||||
api_key.youtube;
|
||||
var video_urls =
|
||||
"https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,statistics&fields=pageInfo,items(id,contentDetails,snippet(categoryId,channelTitle,publishedAt,title,description,thumbnails))&key=" +
|
||||
api_key.youtube +
|
||||
"&id=";
|
||||
|
||||
fetchYoutubeSuggests: function(id){
|
||||
if(videoSource == "soundcloud") {
|
||||
Helper.addClass(document.querySelector(".suggest-title-info"), "hide");
|
||||
Helper.addClass("#suggest-song-html", "hide");
|
||||
return;
|
||||
} else {
|
||||
Helper.removeClass(document.querySelector(".suggest-title-info"), "hide");
|
||||
Helper.removeClass("#suggest-song-html", "hide");
|
||||
Helper.ajax({
|
||||
type: "GET",
|
||||
url: get_url,
|
||||
dataType: "jsonp",
|
||||
success: function(response) {
|
||||
response = JSON.parse(response);
|
||||
var this_resp = response.items.slice(0, 5);
|
||||
for (var i = 0; i < this_resp.length; i++) {
|
||||
var data = this_resp[i];
|
||||
video_urls += data.id.videoId + ",";
|
||||
}
|
||||
var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key.youtube;
|
||||
var video_urls = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,statistics&fields=pageInfo,items(id,contentDetails,snippet(categoryId,channelTitle,publishedAt,title,description,thumbnails))&key="+api_key.youtube+"&id=";
|
||||
|
||||
Helper.ajax({
|
||||
type: "GET",
|
||||
url: get_url,
|
||||
dataType:"jsonp",
|
||||
success: function(response)
|
||||
{
|
||||
response = JSON.parse(response);
|
||||
var this_resp = response.items.slice(0,5);
|
||||
for(var i = 0; i < this_resp.length; i++) {
|
||||
var data = this_resp[i];
|
||||
video_urls += data.id.videoId+",";
|
||||
}
|
||||
type: "GET",
|
||||
url: video_urls,
|
||||
dataType: "jsonp",
|
||||
success: function(response) {
|
||||
response = JSON.parse(response);
|
||||
Helper.setHtml("#suggest-song-html", "");
|
||||
for (var i = 0; i < response.items.length; i++) {
|
||||
var song = response.items[i];
|
||||
var duration = song.contentDetails.duration;
|
||||
var length = Search.durationToSeconds(duration);
|
||||
duration = Helper.secondsToOther(
|
||||
Search.durationToSeconds(duration)
|
||||
);
|
||||
var video_id = song.id;
|
||||
var video_title = song.snippet.title;
|
||||
var viewCount = 0;
|
||||
try {
|
||||
viewCount = song.statistics.viewCount
|
||||
.toString()
|
||||
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
} catch (e) {}
|
||||
|
||||
Helper.ajax({
|
||||
type: "GET",
|
||||
url: video_urls,
|
||||
dataType: "jsonp",
|
||||
success: function(response)
|
||||
{
|
||||
response = JSON.parse(response);
|
||||
Helper.setHtml("#suggest-song-html", "");
|
||||
for(var i = 0; i < response.items.length; i++) {
|
||||
var song = response.items[i];
|
||||
var duration = song.contentDetails.duration;
|
||||
var length = Search.durationToSeconds(duration);
|
||||
duration = Helper.secondsToOther(Search.durationToSeconds(duration));
|
||||
var video_id = song.id;
|
||||
var video_title = song.snippet.title;
|
||||
var viewCount = 0;
|
||||
try {
|
||||
viewCount = song.statistics.viewCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
} catch(e) {
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
document.getElementById("suggest-song-html").insertAdjacentHTML("beforeend", List.generateSong({id: video_id, title: video_title, length: length, duration: duration, votes: viewCount, extra: "Views", source: "youtube"}, false, false, false));
|
||||
} catch(e) {}
|
||||
}
|
||||
}
|
||||
});
|
||||
try {
|
||||
document
|
||||
.getElementById("suggest-song-html")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
List.generateSong(
|
||||
{
|
||||
id: video_id,
|
||||
title: video_title,
|
||||
length: length,
|
||||
duration: duration,
|
||||
votes: viewCount,
|
||||
extra: "Views",
|
||||
source: "youtube"
|
||||
},
|
||||
false,
|
||||
false,
|
||||
false
|
||||
)
|
||||
);
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
checkUserEmpty: function(){
|
||||
var length = document.getElementById("user-suggest-html").children.length;
|
||||
if(length === 0){
|
||||
Helper.addClass("#user_suggests", "hide");
|
||||
} else if(Admin.logged_in){
|
||||
Helper.removeClass("#user_suggests", "hide");
|
||||
}
|
||||
},
|
||||
checkUserEmpty: function() {
|
||||
var length = document.getElementById("user-suggest-html").children.length;
|
||||
if (length === 0) {
|
||||
Helper.addClass("#user_suggests", "hide");
|
||||
} else if (Admin.logged_in) {
|
||||
Helper.removeClass("#user_suggests", "hide");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,62 +1,87 @@
|
||||
window.addEventListener("DOMContentLoaded", function(e) {
|
||||
M.Modal.init(document.getElementById("about"));
|
||||
M.Modal.init(document.getElementById("contact"));
|
||||
Helper.addClass(".help-button-footer", "hide");
|
||||
M.Modal.init(document.getElementById("about"));
|
||||
M.Modal.init(document.getElementById("contact"));
|
||||
Helper.addClass(".help-button-footer", "hide");
|
||||
|
||||
Helper.setHtml("#contact-container", "");
|
||||
Helper.setHtml("#contact-container", "Send a mail to us: <a title='Open in client' href='mailto:contact@zoff.me?Subject=Contact%20Zoff'>contact@zoff.me</a>");
|
||||
Helper.css("#submit-contact-form", "display", "none");
|
||||
Helper.setHtml("#contact-container", "");
|
||||
Helper.setHtml(
|
||||
"#contact-container",
|
||||
"Send a mail to us: <a title='Open in client' href='mailto:contact@zoff.me?Subject=Contact%20Zoff'>contact@zoff.me</a>"
|
||||
);
|
||||
Helper.css("#submit-contact-form", "display", "none");
|
||||
|
||||
var page = window.location.pathname;
|
||||
if(page.substring(page.length - 1) != "/") page += "/";
|
||||
ga('send', 'pageview', page);
|
||||
var page = window.location.pathname;
|
||||
if (page.substring(page.length - 1) != "/") page += "/";
|
||||
ga("send", "pageview", page);
|
||||
|
||||
if(!Helper.mobilecheck()) {
|
||||
if(document.querySelector("#iframe-container")) {
|
||||
document.getElementById("iframe-container").insertAdjacentHTML("beforeend", '<iframe id="iframe" src="https://zoff.me/_embed#celebrate&808080&autoplay" width="600px" height="300px" allow="autoplay"></iframe>');
|
||||
}
|
||||
if (!Helper.mobilecheck()) {
|
||||
if (document.querySelector("#iframe-container")) {
|
||||
document
|
||||
.getElementById("iframe-container")
|
||||
.insertAdjacentHTML(
|
||||
"beforeend",
|
||||
'<iframe id="iframe" src="https://zoff.me/_embed#celebrate&808080&autoplay" width="600px" height="300px" allow="autoplay"></iframe>'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementsByClassName("token-form")[0].addEventListener("submit", function(e) {
|
||||
e.preventDefault();
|
||||
var email = document.getElementById("email_address").value;
|
||||
var origin = document.getElementById("origin").value;
|
||||
document.getElementById("origin").setAttribute("readonly", true);
|
||||
document.getElementById("email_address").setAttribute("readonly", true);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
Helper.removeClass(".full-form-token", "hide");
|
||||
var captcha_response = grecaptcha.getResponse();
|
||||
Helper.ajax({
|
||||
type: "POST",
|
||||
url: "/api/apply",
|
||||
headers: {"Content-Type": "application/json;charset=UTF-8"},
|
||||
data: {
|
||||
origin: origin,
|
||||
email: email,
|
||||
"g-recaptcha-response": captcha_response,
|
||||
},
|
||||
success: function(response) {
|
||||
Helper.addClass(".full-form-token", "hide");
|
||||
if(response == "success") {
|
||||
M.toast({html: "Email sent!", displayLength: 3000, classes: "green lighten"});
|
||||
} else {
|
||||
document.getElementById("email_address").setAttribute("readonly", false);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
document.getElementById("origin").setAttribute("readonly", false);
|
||||
grecaptcha.reset();
|
||||
M.toast({html: "Something went wrong. Sure that email hasn't been used for another token?",displayLength: 3000, classes: "red lighten"});
|
||||
}
|
||||
},
|
||||
error: function(response) {
|
||||
Helper.addClass(".full-form-token", "hide");
|
||||
document.getElementById("email_address").setAttribute("readonly", false);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
}
|
||||
});
|
||||
document
|
||||
.getElementsByClassName("token-form")[0]
|
||||
.addEventListener("submit", function(e) {
|
||||
e.preventDefault();
|
||||
var email = document.getElementById("email_address").value;
|
||||
var origin = document.getElementById("origin").value;
|
||||
document.getElementById("origin").setAttribute("readonly", true);
|
||||
document.getElementById("email_address").setAttribute("readonly", true);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
Helper.removeClass(".full-form-token", "hide");
|
||||
var captcha_response = grecaptcha.getResponse();
|
||||
Helper.ajax({
|
||||
type: "POST",
|
||||
url: "/api/apply",
|
||||
headers: { "Content-Type": "application/json;charset=UTF-8" },
|
||||
data: {
|
||||
origin: origin,
|
||||
email: email,
|
||||
"g-recaptcha-response": captcha_response
|
||||
},
|
||||
success: function(response) {
|
||||
Helper.addClass(".full-form-token", "hide");
|
||||
if (response == "success") {
|
||||
M.toast({
|
||||
html: "Email sent!",
|
||||
displayLength: 3000,
|
||||
classes: "green lighten"
|
||||
});
|
||||
} else {
|
||||
document
|
||||
.getElementById("email_address")
|
||||
.setAttribute("readonly", false);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
document.getElementById("origin").setAttribute("readonly", false);
|
||||
grecaptcha.reset();
|
||||
M.toast({
|
||||
html:
|
||||
"Something went wrong. Sure that email hasn't been used for another token?",
|
||||
displayLength: 3000,
|
||||
classes: "red lighten"
|
||||
});
|
||||
}
|
||||
},
|
||||
error: function(response) {
|
||||
Helper.addClass(".full-form-token", "hide");
|
||||
document
|
||||
.getElementById("email_address")
|
||||
.setAttribute("readonly", false);
|
||||
Helper.toggleClass(".submit", "disabled");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
document.getElementById('submit-contact-form').addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
document.getElementById("contact-form").submit();
|
||||
document
|
||||
.getElementById("submit-contact-form")
|
||||
.addEventListener("click", function(e) {
|
||||
e.preventDefault();
|
||||
document.getElementById("contact-form").submit();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user