Improved performance on server on frontpage a bit

This commit is contained in:
Kasper Rynning-Tønnesen
2017-09-11 09:52:58 +02:00
parent 2673892974
commit 052cdc229a
7 changed files with 65 additions and 71 deletions

View File

@@ -1 +1 @@
!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)}})}();
!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)}})}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -34,12 +34,21 @@ var Frontpage = {
var num = 0;
var pinned;
if(lists[0].pinned == 1){
pinned = lists.shift();
for(var i = 0; i < lists.length; i++) {
if(!lists[i].hasOwnProperty("viewers")){
lists[i].viewers = 0;
}
if(!lists[i].hasOwnProperty("pinned")){
lists[i].pinned = 0;
}
}
if(popular) {
lists = lists.sort(Helper.predicate({
name: 'pinned',
reverse: true
}, {
name: 'viewers',
reverse: true
}, {
@@ -51,6 +60,9 @@ var Frontpage = {
}));
} else {
lists = lists.sort(Helper.predicate({
name: 'pinned',
reverse: true
}, {
name: 'viewers',
reverse: true
}, {
@@ -77,7 +89,7 @@ var Frontpage = {
for(var x in lists)
{
var chan = lists[x].channel;
var chan = lists[x]._id;
if(num<12 || !popular)
{
var id = lists[x].id;
@@ -90,8 +102,6 @@ var Frontpage = {
var song_count = lists[x].count;
//$("#channels").append(channel_list);
var card = pre_card.clone();
if(lists[x].pinned == 1)
{
@@ -110,7 +120,7 @@ var Frontpage = {
card.find(".chan-bg").attr("style", img);
card.find(".chan-link").attr("href", chan + "/");
if(description != "" && !Helper.mobilecheck()){
if(description != "" && description != undefined && !Helper.mobilecheck()){
card.find(".card-title").text(chan);
card.find(".description_text").text(description);
description = "";

View File

@@ -102,7 +102,6 @@ var Helper = {
hslToRgb: function(h, s, l) {
var r, g, b;
console.log(h, s, l);
if (s == 0) {
r = g = b = l; // achromatic

View File

@@ -1,4 +1,4 @@
var VERSION = 2;
var VERSION = 3;
var chan = window.chan === undefined ? $("#chan").html() : window.chan;
var w_p = true;
var hasadmin = 0;
@@ -126,7 +126,7 @@ $.ajaxPrefilter(function( options, original_Options, jqXHR ) {
});
$().ready(function(){
if(!localStorage.getItem("VERSION") || parseInt(localStorage.getItem("VERSION")) != 2) {
if(!localStorage.getItem("VERSION") || parseInt(localStorage.getItem("VERSION")) != VERSION) {
localStorage.setItem("VERSION", VERSION);
}
if(!fromFront && window.location.pathname != "/") init();

View File

@@ -67,7 +67,7 @@ app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
}));
app.use(cookieParser());
var VERSION = 2;
var VERSION = 3;
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 mongojs = require('mongojs');
@@ -364,33 +364,10 @@ io.on('connection', function(socket){
socket.emit("update_required");
}
var playlists_to_send = [];
var i = 0;
var viewers;
in_list = false;
db.collection("frontpage_lists").find({frontpage:true}, function(err, docs){
var playlists_to_send = [];
for(var x in docs){
var pinned = 0;
if(docs[x].pinned == 1) pinned = 1;
try{viewers = lists[docs[x]._id].length;}
catch(error){viewers = 0;}
var to_push = {
viewers: viewers,
id: docs[x].id,
title: docs[x].title,
channel: docs[x]._id,
count: docs[x].count,
pinned: pinned,
accessed: docs[x].accessed != undefined ? docs[x].accessed : 0,
thumbnail: docs[x].thumbnail != undefined ? docs[x].thumbnail : "",
description: docs[x].description != undefined ? docs[x].description : ""
};
if(pinned == 1 && docs[x].count > 0) playlists_to_send.unshift(to_push);
else if(docs[x].count > 0) playlists_to_send.push(to_push);
}
socket.emit("playlists", {channels: playlists_to_send, viewers: tot_view});
socket.emit("playlists", {channels: docs, viewers: tot_view});
});
});
@@ -443,34 +420,36 @@ io.on('connection', function(socket){
return;
}
var pass = decrypt_string(socketid, msg.pass);
db.collection(coll).find({views: {$exists: true}}, function(err, docs) {
if(docs.length == 0 || (docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || docs[0].userpass == pass))) {
if(docs.length > 0 && docs[0].hasOwnProperty('userpass') && docs[0].userpass != "" && docs[0].userpass == pass) {
socket.emit("auth_accepted", {value: true});
}
in_list = true;
socket.join(coll);
socket.join(short_id);
socket.emit("id", short_id);
check_inlist(coll, guid, socket, name, offline);
io.to(coll).emit("viewers", lists[coll] == undefined ? 0 : lists[coll].length);
db.getCollectionNames(function(err, docs){
if(contains(docs, coll))
{
db.collection('frontpage_lists').find({"_id": coll}, function(err, docs){
if(docs.length == 1)
{
db.collection(coll).find({views: {$exists: true}}, function(err, docs) {
if(docs.length == 0 || (docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || docs[0].userpass == pass))) {
if(docs.length > 0 && docs[0].hasOwnProperty('userpass') && docs[0].userpass != "" && docs[0].userpass == pass) {
socket.emit("auth_accepted", {value: true});
}
in_list = true;
socket.join(coll);
socket.join(short_id);
socket.emit("id", short_id);
check_inlist(coll, guid, socket, name, offline);
io.to(coll).emit("viewers", lists[coll] == undefined ? 0 : lists[coll].length);
send_list(coll, socket, true, false, true);
}else{
db.createCollection(coll, function(err, docs){
db.collection(coll).insert({"addsongs":false, "adminpass":"", "allvideos":true, "frontpage":true, "longsongs":false, "removeplay": false, "shuffle": true, "skip": false, "skips": [], "startTime":get_time(), "views": [], "vote": false, "desc": ""}, function(err, docs){
send_list(coll, socket, true, false, true);
db.collection("frontpage_lists").insert({"_id": coll, "count" : 0, "frontpage": true, "accessed": get_time()});
});
});
} else {
socket.emit("auth_required");
}
});
} else {
socket.emit("auth_required");
} else{
db.createCollection(coll, function(err, docs){
db.collection(coll).insert({"addsongs":false, "adminpass":"", "allvideos":true, "frontpage":true, "longsongs":false, "removeplay": false, "shuffle": true, "skip": false, "skips": [], "startTime":get_time(), "views": [], "vote": false, "desc": ""}, function(err, docs){
send_list(coll, socket, true, false, true);
db.collection("frontpage_lists").insert({"_id": coll, "count" : 0, "frontpage": true, "accessed": get_time()});
});
});
}
})
});
} else {
socket.emit('update_required');
}
@@ -1234,10 +1213,12 @@ function left_channel(coll, guid, name, short_id, in_list, socket, change)
if(index != -1)
{
lists[coll].splice(index, 1);
socket.leave(coll);
io.to(coll).emit("viewers", lists[coll].length);
io.to(coll).emit('chat', {from: name, msg: " left"});
tot_view -= 1;
db.collection("frontpage_lists").update({"_id": coll}, {$inc: {"viewers": -1}}, function() {
socket.leave(coll);
io.to(coll).emit("viewers", lists[coll].length);
io.to(coll).emit('chat', {from: name, msg: " left"});
tot_view -= 1;
});
}
if(!change) {
remove_from_array(names.names, name);
@@ -1333,16 +1314,20 @@ function check_inlist(coll, guid, socket, name, offline)
{
lists[coll] = [];
lists[coll].push(guid);
io.to(coll).emit("viewers", lists[coll].length);
socket.broadcast.to(coll).emit('chat', {from: name, msg: " joined"});
db.collection("frontpage_lists").update({"_id": coll}, {$inc: {"viewers": 1}}, function(){
io.to(coll).emit("viewers", lists[coll].length);
socket.broadcast.to(coll).emit('chat', {from: name, msg: " joined"});
tot_view += 1;
tot_view += 1;
});
}else if(!contains(lists[coll], guid))
{
lists[coll].push(guid);
io.to(coll).emit("viewers", lists[coll].length);
socket.broadcast.to(coll).emit('chat', {from: name, msg: " joined"});
tot_view += 1;
db.collection("frontpage_lists").update({"_id": coll}, {$inc: {"viewers": 1}}, function(){
io.to(coll).emit("viewers", lists[coll].length);
socket.broadcast.to(coll).emit('chat', {from: name, msg: " joined"});
tot_view += 1;
});
}
} else {
if(!contains(offline_users, guid) && coll != undefined)