Added a way of ensuring correct versions between server and client

This commit is contained in:
Kasper Rynning-Tønnesen
2017-09-11 08:57:31 +02:00
parent 7ccb9298c0
commit 2afacf6408
8 changed files with 87 additions and 11 deletions

View File

@@ -251,7 +251,7 @@ var Frontpage = {
if(Frontpage.times_rotated == 50 && frontpage){
Frontpage.times_rotated = 0;
i = 0;
socket.emit("frontpage_lists");
socket.emit("frontpage_lists", {version: parseInt(localStorage.getItem("VERSION"))});
socket.emit('get_userlists', Crypt.getCookie('_uI'));
}else if(frontpage){
Frontpage.times_rotated += 1;

View File

@@ -100,6 +100,33 @@ var Helper = {
} : null;
},
hslToRgb: function(h, s, l) {
var r, g, b;
console.log(h, s, l);
if (s == 0) {
r = g = b = l; // achromatic
} else {
function hue2rgb(p, q, t) {
if (t < 0) t += 1;
if (t > 1) t -= 1;
if (t < 1/6) return p + (q - p) * 6 * t;
if (t < 1/2) return q;
if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
}
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
return [ r * 255, g * 255, b * 255 ];
},
pad: function(n)
{
@@ -280,6 +307,31 @@ var Helper = {
Helper.currentY = null;
},
invertColor: function(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.slice(1);
}
// convert 3-digit hex to 6-digits.
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
if (hex.length !== 6) {
throw new Error('Invalid HEX color.');
}
// invert color components
var r = (255 - parseInt(hex.slice(0, 2), 16)).toString(16),
g = (255 - parseInt(hex.slice(2, 4), 16)).toString(16),
b = (255 - parseInt(hex.slice(4, 6), 16)).toString(16);
// pad each with zeros and return
return '#' + padZero(r) + padZero(g) + padZero(b);
},
padZero: function(str, len) {
len = len || 2;
var zeros = new Array(len).join('0');
return (zeros + str).slice(-len);
}
};
Element.prototype.remove = function() {

View File

@@ -1,3 +1,4 @@
var VERSION = 2;
var chan = window.chan === undefined ? $("#chan").html() : window.chan;
var w_p = true;
var hasadmin = 0;
@@ -14,6 +15,7 @@ var frontpage = 1;
var adminpass = "";
var showDiscovery = false;
var filesadded = "";
var chromecast_icon_color = "";
var player_ready = false;
var viewers = 1;
var temp_user_pass = "";
@@ -124,6 +126,9 @@ $.ajaxPrefilter(function( options, original_Options, jqXHR ) {
});
$().ready(function(){
if(!localStorage.getItem("VERSION") || parseInt(localStorage.getItem("VERSION")) != 2) {
localStorage.setItem("VERSION", VERSION);
}
if(!fromFront && window.location.pathname != "/") init();
else if(!fromChannel && window.location.pathname == "/"){
initfp();
@@ -287,7 +292,7 @@ function init(){
if(no_socket){
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
}
$("#viewers").tooltip({
delay: 5,
@@ -683,7 +688,7 @@ function get_list_listener(){
socket.on("get_list", function(){
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
});
}
@@ -865,7 +870,7 @@ function change_offline(enabled, already_offline){
socket.emit("pos", {channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
var add = "";
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
if($("#controls").hasClass("ewresize")) $("#controls").removeClass("ewresize");
}
}
@@ -1148,7 +1153,7 @@ $(document).on("submit", "#user-password-channel-form", function(e) {
if(user_auth_started) {
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
$("#user-pass-input").val("");
socket.emit("list", {channel: chan.toLowerCase(), pass: Crypt.crypt_pass(temp_user_pass)});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: chan.toLowerCase(), pass: Crypt.crypt_pass(temp_user_pass)});
} else {
$("#user_password").modal('close');
userpass = $("#user-pass-input").val();
@@ -1170,7 +1175,7 @@ $(document).on("click", ".submit-user-password", function(e) {
if(user_auth_started) {
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
$("#user-pass-input").val("");
socket.emit("list", {channel: chan.toLowerCase(), pass: Crypt.crypt_pass(temp_user_pass)});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: chan.toLowerCase(), pass: Crypt.crypt_pass(temp_user_pass)});
} else {
$("#user_password").modal('close');
userpass = $("#user-pass-input").val();
@@ -1840,7 +1845,7 @@ function onepage_load(){
var add = "";
w_p = true;
if(private_channel) add = Crypt.getCookie("_uI") + "_";
socket.emit("list", {channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
socket.emit("list", {version: parseInt(localStorage.getItem("VERSION")), channel: add + chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
}else if(url_split[3] === ""){
$.contextMenu( 'destroy', ".playlist-element" );
user_change_password = false;

View File

@@ -413,6 +413,16 @@ var Player = {
if(window.location.pathname != "/"){
document.getElementById("main-container").style.backgroundColor = Helper.rgbToHsl(color,true);
$("meta[name=theme-color]").attr("content", Helper.rgbToHex(color[0], color[1], color[2]));
/*chromecast_icon_color = Helper.rgbToHsl(color,true).replace("hsl(", "").replace("%)", "").replace("%", "").replace(" ", "").replace(" ", "");
console.log(chromecast_icon_color);
chromecast_icon_color = chromecast_icon_color.split(",");
console.log(chromecast_icon_color);
chromecast_icon_color = Helper.hslToRgb(parseInt(chromecast_icon_color[0]), parseFloat(chromecast_icon_color[1]) / 100, parseFloat(chromecast_icon_color[2]) / 100);
console.log(chromecast_icon_color);
chromecast_icon_color = Helper.rgbToHex(parseInt(chromecast_icon_color[0]), parseInt(chromecast_icon_color[1]), parseInt(chromecast_icon_color[2]));
console.log(chromecast_icon_color);
$(".castButton").attr("style", "display:" + $(".castButton").css("display") + ";--disconnected-color" + chromecast_icon_color + ";");*/
}
};