diff --git a/server/handlers/functions.js b/server/handlers/functions.js index de4daa8b..e090ec3f 100644 --- a/server/handlers/functions.js +++ b/server/handlers/functions.js @@ -452,7 +452,8 @@ function checkTimeout(type, timeout, channel, guid, conf_pass, this_pass, socket var retry_in = (date.getTime() - now.getTime()) / 1000; if(retry_in > 0) { if(error_message) { - socket.emit("toast", error_message + Math.ceil(retry_in) + " seconds."); + var sOrNot = Math.ceil(retry_in) > 1 || Math.ceil(retry_in) == 0 ? "s" : ""; + socket.emit("toast", error_message + Math.ceil(retry_in) + " second" + sOrNot + "."); } else { socket.emit("toast", "wait_longer"); } diff --git a/server/handlers/list.js b/server/handlers/list.js index aeb5617d..75bc7dd9 100644 --- a/server/handlers/list.js +++ b/server/handlers/list.js @@ -197,20 +197,18 @@ function skip(list, guid, coll, offline, socket) { } hash = adminpass; - var toCompare = list.error - var connection_id = Functions.hash_pass(socket.handshake.headers["user-agent"] + socket.handshake.address + socket.handshake.headers["accept-language"]); - Functions.checkTimeout("skip", 1, coll, connection_id, error, true, socket, function() { - //db.collection(coll + "_settings").find(function(err, docs){ + //db.collection(coll + "_settings").find(function(err, docs){ - if(docs !== null && docs.length !== 0) + if(docs !== null && docs.length !== 0) + { + if(!docs[0].skip || (docs[0].adminpass == hash && docs[0].adminpass !== "") || error) { - if(!docs[0].skip || (docs[0].adminpass == hash && docs[0].adminpass !== "") || error) - { - db.collection("frontpage_lists").find({"_id": coll}, function(err, frontpage_viewers){ - if((frontpage_viewers[0].viewers/2 <= docs[0].skips.length+1 && !Functions.contains(docs[0].skips, guid) && frontpage_viewers[0].viewers != 2) || - (frontpage_viewers[0].viewers == 2 && docs[0].skips.length+1 == 2 && !Functions.contains(docs[0].skips, guid)) || - (docs[0].adminpass == hash && docs[0].adminpass !== "" && docs[0].skip)) - { + db.collection("frontpage_lists").find({"_id": coll}, function(err, frontpage_viewers){ + if((frontpage_viewers[0].viewers/2 <= docs[0].skips.length+1 && !Functions.contains(docs[0].skips, guid) && frontpage_viewers[0].viewers != 2) || + (frontpage_viewers[0].viewers == 2 && docs[0].skips.length+1 == 2 && !Functions.contains(docs[0].skips, guid)) || + (docs[0].adminpass == hash && docs[0].adminpass !== "" && docs[0].skip)) + { + Functions.checkTimeout("skip", 1, coll, coll, error, true, socket, function() { change_song(coll, error, video_id, docs); socket.emit("toast", "skip"); db.collection("user_names").find({"guid": guid}, function(err, docs) { @@ -224,23 +222,23 @@ function skip(list, guid, coll, offline, socket) { }); } }); - }else if(!Functions.contains(docs[0].skips, guid)){ - db.collection(coll + "_settings").update({ id: "config" }, {$push:{skips:guid}}, function(err, d){ - if(frontpage_viewers[0].viewers == 2) - to_skip = 1; - else - to_skip = (Math.ceil(frontpage_viewers[0].viewers/2) - docs[0].skips.length-1); - socket.emit("toast", to_skip + " more are needed to skip!"); - socket.to(coll).emit('chat', {from: name, msg: " voted to skip"}); - }); - }else{ - socket.emit("toast", "alreadyskip"); - } - }); - }else - socket.emit("toast", "noskip"); - } - }); + }, "The channel is skipping too often, please wait "); + }else if(!Functions.contains(docs[0].skips, guid)){ + db.collection(coll + "_settings").update({ id: "config" }, {$push:{skips:guid}}, function(err, d){ + if(frontpage_viewers[0].viewers == 2) + to_skip = 1; + else + to_skip = (Math.ceil(frontpage_viewers[0].viewers/2) - docs[0].skips.length-1); + socket.emit("toast", to_skip + " more are needed to skip!"); + socket.to(coll).emit('chat', {from: name, msg: " voted to skip"}); + }); + }else{ + socket.emit("toast", "alreadyskip"); + } + }); + }else + socket.emit("toast", "noskip"); + } //}); } else { socket.emit("auth_required");