mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-12-08 20:48:48 +00:00
Added a way of ensuring correct versions between server and client
This commit is contained in:
2
server/public/assets/dist/callback.min.js
vendored
2
server/public/assets/dist/callback.min.js
vendored
@@ -1 +1 @@
|
|||||||
!function(){function e(e){var t,a=e.substring(1).split("&"),n={};for(var s in a)t=a[s].split("="),2==t.length&&(n[t[0]]=t[1]);return n}window.addEventListener("load",function(){var t,a,n,s=e(window.location.hash),i=window.location.protocol+"//"+window.location.hostname+"/o_callback";if(s.spotify)t="b934ecdd173648f5bcd38738af529d58",a="token",n="playlist-read-private playlist-read-collaborative user-read-private playlist-modify-public",state=s.nonce,window.location.href="https://accounts.spotify.com/authorize?client_id="+t+"&scope="+n+"&show_dialog=false&response_type="+a+"&redirect_uri="+i+"&state="+state;else if(s.youtube)t="944988770273-butsmlr1aotlsskk8lmgvh0etqqekigf.apps.googleusercontent.com",a="token",n="https://www.googleapis.com/auth/youtube",state=s.nonce,window.location.href="https://accounts.google.com/o/oauth2/v2/auth?client_id="+t+"&response_type="+a+"&state="+state+"&redirect_uri="+i+"&scope="+n;else{var o=e(window.location.hash);window.opener.callback(o)}})}();
|
!function(){function e(e){var t,a=e.substring(1).split("&"),n={};for(var o in a)t=a[o].split("="),2==t.length&&(n[t[0]]=t[1]);return n}window.addEventListener("load",function(){var t,a,n,o=e(window.location.hash),s=window.location.protocol+"//"+window.location.hostname+"/o_callback";if(o.spotify)t="b934ecdd173648f5bcd38738af529d58",a="token",n="playlist-read-private playlist-read-collaborative user-read-private playlist-modify-public",state=o.nonce,window.location.href="https://accounts.spotify.com/authorize?client_id="+t+"&scope="+n+"&show_dialog=false&response_type="+a+"&redirect_uri="+s+"&state="+state;else if(o.youtube)t="944988770273-butsmlr1aotlsskk8lmgvh0etqqekigf.apps.googleusercontent.com",a="token",n="https://www.googleapis.com/auth/youtube",state=o.nonce,window.location.href="https://accounts.google.com/o/oauth2/v2/auth?client_id="+t+"&response_type="+a+"&state="+state+"&redirect_uri="+s+"&scope="+n;else{var i=e(window.location.hash);window.opener.callback(i)}})}();
|
||||||
2
server/public/assets/dist/embed.min.js
vendored
2
server/public/assets/dist/embed.min.js
vendored
File diff suppressed because one or more lines are too long
2
server/public/assets/dist/main.min.js
vendored
2
server/public/assets/dist/main.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -251,7 +251,7 @@ var Frontpage = {
|
|||||||
if(Frontpage.times_rotated == 50 && frontpage){
|
if(Frontpage.times_rotated == 50 && frontpage){
|
||||||
Frontpage.times_rotated = 0;
|
Frontpage.times_rotated = 0;
|
||||||
i = 0;
|
i = 0;
|
||||||
socket.emit("frontpage_lists");
|
socket.emit("frontpage_lists", {version: parseInt(localStorage.getItem("VERSION"))});
|
||||||
socket.emit('get_userlists', Crypt.getCookie('_uI'));
|
socket.emit('get_userlists', Crypt.getCookie('_uI'));
|
||||||
}else if(frontpage){
|
}else if(frontpage){
|
||||||
Frontpage.times_rotated += 1;
|
Frontpage.times_rotated += 1;
|
||||||
|
|||||||
@@ -100,6 +100,33 @@ var Helper = {
|
|||||||
} : null;
|
} : 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)
|
pad: function(n)
|
||||||
{
|
{
|
||||||
@@ -280,6 +307,31 @@ var Helper = {
|
|||||||
Helper.currentY = null;
|
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() {
|
Element.prototype.remove = function() {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
var VERSION = 2;
|
||||||
var chan = window.chan === undefined ? $("#chan").html() : window.chan;
|
var chan = window.chan === undefined ? $("#chan").html() : window.chan;
|
||||||
var w_p = true;
|
var w_p = true;
|
||||||
var hasadmin = 0;
|
var hasadmin = 0;
|
||||||
@@ -14,6 +15,7 @@ var frontpage = 1;
|
|||||||
var adminpass = "";
|
var adminpass = "";
|
||||||
var showDiscovery = false;
|
var showDiscovery = false;
|
||||||
var filesadded = "";
|
var filesadded = "";
|
||||||
|
var chromecast_icon_color = "";
|
||||||
var player_ready = false;
|
var player_ready = false;
|
||||||
var viewers = 1;
|
var viewers = 1;
|
||||||
var temp_user_pass = "";
|
var temp_user_pass = "";
|
||||||
@@ -124,6 +126,9 @@ $.ajaxPrefilter(function( options, original_Options, jqXHR ) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$().ready(function(){
|
$().ready(function(){
|
||||||
|
if(!localStorage.getItem("VERSION") || parseInt(localStorage.getItem("VERSION")) != 2) {
|
||||||
|
localStorage.setItem("VERSION", VERSION);
|
||||||
|
}
|
||||||
if(!fromFront && window.location.pathname != "/") init();
|
if(!fromFront && window.location.pathname != "/") init();
|
||||||
else if(!fromChannel && window.location.pathname == "/"){
|
else if(!fromChannel && window.location.pathname == "/"){
|
||||||
initfp();
|
initfp();
|
||||||
@@ -287,7 +292,7 @@ function init(){
|
|||||||
if(no_socket){
|
if(no_socket){
|
||||||
var add = "";
|
var add = "";
|
||||||
if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
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({
|
$("#viewers").tooltip({
|
||||||
delay: 5,
|
delay: 5,
|
||||||
@@ -683,7 +688,7 @@ function get_list_listener(){
|
|||||||
socket.on("get_list", function(){
|
socket.on("get_list", function(){
|
||||||
var add = "";
|
var add = "";
|
||||||
if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
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()))});
|
socket.emit("pos", {channel: chan.toLowerCase(), pass: embed ? '' : Crypt.crypt_pass(Crypt.get_userpass(chan.toLowerCase()))});
|
||||||
var add = "";
|
var add = "";
|
||||||
if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
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");
|
if($("#controls").hasClass("ewresize")) $("#controls").removeClass("ewresize");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1148,7 +1153,7 @@ $(document).on("submit", "#user-password-channel-form", function(e) {
|
|||||||
if(user_auth_started) {
|
if(user_auth_started) {
|
||||||
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
|
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
|
||||||
$("#user-pass-input").val("");
|
$("#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 {
|
} else {
|
||||||
$("#user_password").modal('close');
|
$("#user_password").modal('close');
|
||||||
userpass = $("#user-pass-input").val();
|
userpass = $("#user-pass-input").val();
|
||||||
@@ -1170,7 +1175,7 @@ $(document).on("click", ".submit-user-password", function(e) {
|
|||||||
if(user_auth_started) {
|
if(user_auth_started) {
|
||||||
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
|
temp_user_pass = CryptoJS.SHA256($("#user-pass-input").val()).toString();
|
||||||
$("#user-pass-input").val("");
|
$("#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 {
|
} else {
|
||||||
$("#user_password").modal('close');
|
$("#user_password").modal('close');
|
||||||
userpass = $("#user-pass-input").val();
|
userpass = $("#user-pass-input").val();
|
||||||
@@ -1840,7 +1845,7 @@ function onepage_load(){
|
|||||||
var add = "";
|
var add = "";
|
||||||
w_p = true;
|
w_p = true;
|
||||||
if(private_channel) add = Crypt.getCookie("_uI") + "_";
|
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] === ""){
|
}else if(url_split[3] === ""){
|
||||||
$.contextMenu( 'destroy', ".playlist-element" );
|
$.contextMenu( 'destroy', ".playlist-element" );
|
||||||
user_change_password = false;
|
user_change_password = false;
|
||||||
|
|||||||
@@ -413,6 +413,16 @@ var Player = {
|
|||||||
if(window.location.pathname != "/"){
|
if(window.location.pathname != "/"){
|
||||||
document.getElementById("main-container").style.backgroundColor = Helper.rgbToHsl(color,true);
|
document.getElementById("main-container").style.backgroundColor = Helper.rgbToHsl(color,true);
|
||||||
$("meta[name=theme-color]").attr("content", Helper.rgbToHex(color[0], color[1], color[2]));
|
$("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 + ";");*/
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
|
|||||||
}));
|
}));
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
|
|
||||||
|
var VERSION = 2;
|
||||||
var io = require('socket.io')(server, {'pingTimeout': 25000}); //, "origins": ("https://zoff.me:443*,https://zoff.me:8080*,zoff.me:8080*,https://remote.zoff.me:443*,https://remote.zoff.me:8080*,https://fb.zoff.me:443*,https://fb.zoff.me:8080*,https://admin.zoff.me:443*,https://admin.zoff.me:8080*" + add)});
|
var io = require('socket.io')(server, {'pingTimeout': 25000}); //, "origins": ("https://zoff.me:443*,https://zoff.me:8080*,zoff.me:8080*,https://remote.zoff.me:443*,https://remote.zoff.me:8080*,https://fb.zoff.me:443*,https://fb.zoff.me:8080*,https://admin.zoff.me:443*,https://admin.zoff.me:8080*" + add)});
|
||||||
var request = require('request');
|
var request = require('request');
|
||||||
var mongojs = require('mongojs');
|
var mongojs = require('mongojs');
|
||||||
@@ -356,9 +357,13 @@ io.on('connection', function(socket){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('frontpage_lists', function()
|
socket.on('frontpage_lists', function(msg)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(msg.version != VERSION || msg.version == undefined) {
|
||||||
|
socket.emit("update_required");
|
||||||
|
}
|
||||||
|
|
||||||
var playlists_to_send = [];
|
var playlists_to_send = [];
|
||||||
var i = 0;
|
var i = 0;
|
||||||
var viewers;
|
var viewers;
|
||||||
@@ -418,6 +423,10 @@ io.on('connection', function(socket){
|
|||||||
if(typeof(msg) === 'object' && msg !== undefined && msg !== null && msg.hasOwnProperty("channel") && msg.hasOwnProperty('pass'))
|
if(typeof(msg) === 'object' && msg !== undefined && msg !== null && msg.hasOwnProperty("channel") && msg.hasOwnProperty('pass'))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(msg.version != VERSION || msg.version == undefined) {
|
||||||
|
socket.emit("update_required");
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var list = msg.channel;
|
var list = msg.channel;
|
||||||
if(list.length == 0) return;
|
if(list.length == 0) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user