From f314b080a14f97a92005f334290cdb4edcba2646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:12:20 +0200 Subject: [PATCH 1/9] Nicer effect on chat icon --- server/server.js | 123 +++++++++++-------------------------------- static/css/style.css | 5 ++ static/js/chat.js | 14 ++++- 3 files changed, 47 insertions(+), 95 deletions(-) diff --git a/server/server.js b/server/server.js index 091eddd1..670f5687 100755 --- a/server/server.js +++ b/server/server.js @@ -37,6 +37,7 @@ io.on('connection', function(socket){ var in_list = false; socket.on('chat', function (data) { + check_inlist(coll, guid, socket); if(data != "" && data !== undefined && data !== null && data.length < 151 && data.replace(/\s/g, '').length) io.sockets.emit('chat,'+coll, rndName(guid) + ": " + data); }); @@ -95,16 +96,7 @@ io.on('connection', function(socket){ console.log(guid + " joined list " + coll); - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); io.sockets.emit(coll+",viewers", lists[coll].length); @@ -134,16 +126,7 @@ io.on('connection', function(socket){ { if(id !== undefined && id !== null && id != "") { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); db.collection(coll).find({now_playing:true}, function(err, np){ //console.log(docs); @@ -208,16 +191,7 @@ io.on('connection', function(socket){ { if(arr !== undefined && arr !== null && arr != "") { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); var id = arr[0]; var title = arr[1]; @@ -258,16 +232,7 @@ io.on('connection', function(socket){ { if(msg !== undefined && msg !== null) { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); if(msg[2] == "del") del(msg, socket); @@ -297,16 +262,8 @@ io.on('connection', function(socket){ pw = inp[0]; coll = inp[1]; //guid = inp[2]; - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); + //console.log(coll); db.collection(coll).find({views:{$exists:true}}, function(err, docs){ //console.log(docs); @@ -330,16 +287,7 @@ io.on('connection', function(socket){ { if(list !== undefined && list !== null && list != "") { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); adminpass = ""; @@ -394,16 +342,7 @@ io.on('connection', function(socket){ { if(params !== undefined && params !== null && params != "") { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); var voting = params[0]; var addsongs = params[1]; @@ -453,16 +392,7 @@ io.on('connection', function(socket){ { if(pass !== undefined && pass !== null && pass != "") { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } + check_inlist(coll, guid, socket); var hash = hash_pass(pass); db.collection(coll).find({views:{$exists:true}}, function(err, docs){ @@ -500,6 +430,7 @@ io.on('connection', function(socket){ { try { + io.sockets.emit('chat,'+coll, rndName(guid) + " left"); console.log(guid + " left list " + coll); var index = lists[coll].indexOf(guid); lists[coll].splice(index, 1); @@ -510,17 +441,7 @@ io.on('connection', function(socket){ socket.on('pos', function() { - if(lists[coll] == undefined) - { - lists[coll] = []; - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - }else if(!contains(lists[coll], guid)) - { - lists[coll].push(guid); - io.sockets.emit(coll+",viewers", lists[coll].length); - } - + check_inlist(coll, guid, socket); send_play(coll, socket); }); }); @@ -536,7 +457,23 @@ function del(params, socket) sort_list(coll, undefined, false, true); }) } - }) + }); +} + +function check_inlist(coll, guid, socket) +{ + if(lists[coll] == undefined) + { + lists[coll] = []; + lists[coll].push(guid); + io.sockets.emit(coll+",viewers", lists[coll].length); + socket.broadcast.emit('chat,'+coll, rndName(guid) + " joined"); + }else if(!contains(lists[coll], guid)) + { + lists[coll].push(guid); + io.sockets.emit(coll+",viewers", lists[coll].length); + socket.broadcast.emit('chat,'+coll, rndName(guid) + " joined"); + } } function hash_pass(adminpass) @@ -681,4 +618,4 @@ function rndName(seed) { word += arr[(seed[i%seed.length].charCodeAt()+i) % arr.length-1]; } return word.substring(0,8) -} \ No newline at end of file +} diff --git a/static/css/style.css b/static/css/style.css index 726de918..fa231482 100755 --- a/static/css/style.css +++ b/static/css/style.css @@ -208,6 +208,11 @@ hide mdi-action-visibility mdi-action-visibility-off float: left; } +#chat-btn { + -webkit-transition:opacity 1s; + transition:opacity 1s; +} + ul #chat-log{ padding: 0px 0px 0px 11px !important; } diff --git a/static/js/chat.js b/static/js/chat.js index 7f4eed9e..3cf9e899 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -1,3 +1,4 @@ +var blink_interval; function chat(data) { @@ -11,14 +12,17 @@ function chat(data) document.getElementById("chat-btn").addEventListener("click", function(){ console.log("clicked"); $("#text-chat-input").focus(); - $("#chat-btn").css("color", "white"); + //$("#chat-btn").css("color", "white"); + $("#chat-btn").css("opacity", 1); + clearInterval(blink_interval); }); socket.on("chat,"+chan.toLowerCase(), function(data) { if($("#chat-bar").position()["left"] != 0) { - $("#chat-btn").css("color", "grey"); + //$("#chat-btn").css("color", "grey"); + blink_interval = setInterval(chat_blink, 2000); } var color = intToARGB(hashCode(data.substring(0,8))).substring(0,6); $("#chat").append("
  • "+data.substring(0,8)+"
  • "); @@ -27,6 +31,12 @@ socket.on("chat,"+chan.toLowerCase(), function(data) document.getElementById("chat").scrollTop = document.getElementById("chat").scrollHeight }); +function chat_blink() +{ + $("#chat-btn").css("opacity", 0.5); + setTimeout(function(){$("#chat-btn").css("opacity", 1);}, 1000); +} + function hashCode(str) { // java String#hashCode var hash = 0; for (var i = 0; i < str.length; i++) { From 205de815851abe223cc237884676074817cd20bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:15:33 +0200 Subject: [PATCH 2/9] fixed interval being started several times --- static/js/chat.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/static/js/chat.js b/static/js/chat.js index 3cf9e899..adb6b018 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -1,4 +1,5 @@ var blink_interval; +var blink_interval_exists = false; function chat(data) { @@ -15,6 +16,7 @@ document.getElementById("chat-btn").addEventListener("click", function(){ //$("#chat-btn").css("color", "white"); $("#chat-btn").css("opacity", 1); clearInterval(blink_interval); + blink_interval_exists = false; }); socket.on("chat,"+chan.toLowerCase(), function(data) @@ -22,7 +24,11 @@ socket.on("chat,"+chan.toLowerCase(), function(data) if($("#chat-bar").position()["left"] != 0) { //$("#chat-btn").css("color", "grey"); - blink_interval = setInterval(chat_blink, 2000); + if(!blink_interval_exists) + { + blink_interval_exists = true; + blink_interval = setInterval(chat_blink, 2000); + } } var color = intToARGB(hashCode(data.substring(0,8))).substring(0,6); $("#chat").append("
  • "+data.substring(0,8)+"
  • "); From 9b10bcaa20c58b0873a05bb25681bbe10701a865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:26:09 +0200 Subject: [PATCH 3/9] Fixed some disconnect errors, and styling of opacity element --- server/server.js | 9 +++++---- static/css/style.css | 2 +- static/js/chat.js | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/server/server.js b/server/server.js index 670f5687..241f8bd9 100755 --- a/server/server.js +++ b/server/server.js @@ -428,14 +428,15 @@ io.on('connection', function(socket){ { if(in_list) { - try - { - io.sockets.emit('chat,'+coll, rndName(guid) + " left"); + if(contains(lists[coll], guid)) + { console.log(guid + " left list " + coll); var index = lists[coll].indexOf(guid); lists[coll].splice(index, 1); io.sockets.emit(coll+",viewers", lists[coll].length); - }catch(err){} + io.sockets.emit('chat,'+coll, rndName(guid) + " left"); + } + } }); diff --git a/static/css/style.css b/static/css/style.css index fa231482..ab5efe2d 100755 --- a/static/css/style.css +++ b/static/css/style.css @@ -208,7 +208,7 @@ hide mdi-action-visibility mdi-action-visibility-off float: left; } -#chat-btn { +#chat-btn i { -webkit-transition:opacity 1s; transition:opacity 1s; } diff --git a/static/js/chat.js b/static/js/chat.js index adb6b018..2f9de2aa 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -14,7 +14,7 @@ document.getElementById("chat-btn").addEventListener("click", function(){ console.log("clicked"); $("#text-chat-input").focus(); //$("#chat-btn").css("color", "white"); - $("#chat-btn").css("opacity", 1); + $("#chat-btn i").css("opacity", 1); clearInterval(blink_interval); blink_interval_exists = false; }); @@ -39,8 +39,8 @@ socket.on("chat,"+chan.toLowerCase(), function(data) function chat_blink() { - $("#chat-btn").css("opacity", 0.5); - setTimeout(function(){$("#chat-btn").css("opacity", 1);}, 1000); + $("#chat-btn i").css("opacity", 0.5); + setTimeout(function(){$("#chat-btn i").css("opacity", 1);}, 1000); } function hashCode(str) { // java String#hashCode From 21ee0667ebf781b00b637059653694750ec5b9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:53:05 +0200 Subject: [PATCH 4/9] Added voted to skip to chat --- server/server.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/server.js b/server/server.js index 241f8bd9..f5bd011e 100755 --- a/server/server.js +++ b/server/server.js @@ -492,6 +492,7 @@ function vote(coll, id, guid, socket) db.collection(coll).update({id:id}, {$push :{guids: guid}}, function(err, docs) { socket.emit("toast", "voted"); + socket.broadcast.emit('chat,'+coll, rndName(guid) + " voted to skip"); sort_list(coll, undefined, false, true); }); //sort_list(coll, undefined, false); From 377aae0c784a9f917eab8b391d8a37d1e0ab028a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:56:20 +0200 Subject: [PATCH 5/9] Fixed message about trying to skip --- server/server.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/server.js b/server/server.js index f5bd011e..0eb9a3be 100755 --- a/server/server.js +++ b/server/server.js @@ -323,10 +323,10 @@ io.on('connection', function(socket){ }else if(get_time() - docs[0]["startTime"] < 10 && lists[coll].length == 2 && !error) { socket.emit("toast", "notyetskip"); - }else if(!contains(docs[0]["skips"], guid) && get_time() - docs[0]["startTime"] >= 30){ + }else if(!contains(docs[0]["skips"], guid) && get_time() - docs[0]["startTime"] >= 10){ db.collection(coll).update({views:{$exists:true}}, {$push:{skips:guid}}, function(err, d){ socket.emit("toast", (Math.ceil(lists[coll].length/2) - docs[0]["skips"].length-1) + " more are needed to skip!"); - io.sockets.emit('chat,'+coll, rndName(guid) + " tried to skip!"); + socket.broadcast.emit('chat,'+coll, rndName(guid) + " tried to skip!"); }); }else{ socket.emit("toast", "alreadyskip"); @@ -492,7 +492,6 @@ function vote(coll, id, guid, socket) db.collection(coll).update({id:id}, {$push :{guids: guid}}, function(err, docs) { socket.emit("toast", "voted"); - socket.broadcast.emit('chat,'+coll, rndName(guid) + " voted to skip"); sort_list(coll, undefined, false, true); }); //sort_list(coll, undefined, false); From ff519738ffc257161943f2bc4e0a6c61293319d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:56:47 +0200 Subject: [PATCH 6/9] Changed message --- server/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/server.js b/server/server.js index 0eb9a3be..68def098 100755 --- a/server/server.js +++ b/server/server.js @@ -326,7 +326,7 @@ io.on('connection', function(socket){ }else if(!contains(docs[0]["skips"], guid) && get_time() - docs[0]["startTime"] >= 10){ db.collection(coll).update({views:{$exists:true}}, {$push:{skips:guid}}, function(err, d){ socket.emit("toast", (Math.ceil(lists[coll].length/2) - docs[0]["skips"].length-1) + " more are needed to skip!"); - socket.broadcast.emit('chat,'+coll, rndName(guid) + " tried to skip!"); + socket.broadcast.emit('chat,'+coll, rndName(guid) + " voted to skip"); }); }else{ socket.emit("toast", "alreadyskip"); From 810693bcba8de1c6d4fc7ff32e4d90d6ba666d7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 12:59:11 +0200 Subject: [PATCH 7/9] removed time check on skip --- server/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/server.js b/server/server.js index 68def098..583e1a98 100755 --- a/server/server.js +++ b/server/server.js @@ -323,7 +323,7 @@ io.on('connection', function(socket){ }else if(get_time() - docs[0]["startTime"] < 10 && lists[coll].length == 2 && !error) { socket.emit("toast", "notyetskip"); - }else if(!contains(docs[0]["skips"], guid) && get_time() - docs[0]["startTime"] >= 10){ + }else if(!contains(docs[0]["skips"], guid)){ db.collection(coll).update({views:{$exists:true}}, {$push:{skips:guid}}, function(err, d){ socket.emit("toast", (Math.ceil(lists[coll].length/2) - docs[0]["skips"].length-1) + " more are needed to skip!"); socket.broadcast.emit('chat,'+coll, rndName(guid) + " voted to skip"); From 3c9451561e1a509812a8a06087c14b4d533bcb8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Sat, 9 May 2015 21:57:53 +0200 Subject: [PATCH 8/9] Fixed songs in search --- static/js/search.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/static/js/search.js b/static/js/search.js index 7f04b92f..31499edd 100755 --- a/static/js/search.js +++ b/static/js/search.js @@ -198,12 +198,13 @@ function search(search_input){ //$("#results").append(result_html); var song = pre_result; + song.find(".search-title").text(title); song.find(".result_info").text(duration); song.find(".thumb").attr("src", thumb); song.find(".add-many").attr("onclick", "submit('"+id+"','"+enc_title+"',"+secs+");"); - song.attr("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");"); - song.attr("id",id); + $($(song).find("div")[0]).attr("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");"); + $($(song).find("div")[0]).attr("id", id) output += song.html(); From 9db2a40ab1783ff35c053a9be99674224be17555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Mon, 11 May 2015 14:31:04 +0200 Subject: [PATCH 9/9] Fixed something cool with the chat --- php/header.php | 2 +- static/js/chat.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/php/header.php b/php/header.php index dcbb94b7..6a275c86 100755 --- a/php/header.php +++ b/php/header.php @@ -16,4 +16,4 @@ - \ No newline at end of file + diff --git a/static/js/chat.js b/static/js/chat.js index 2f9de2aa..fcc75d66 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -17,6 +17,7 @@ document.getElementById("chat-btn").addEventListener("click", function(){ $("#chat-btn i").css("opacity", 1); clearInterval(blink_interval); blink_interval_exists = false; + $("#favicon").attr("href", "static/images/favicon.png"); }); socket.on("chat,"+chan.toLowerCase(), function(data) @@ -26,6 +27,7 @@ socket.on("chat,"+chan.toLowerCase(), function(data) //$("#chat-btn").css("color", "grey"); if(!blink_interval_exists) { + $("#favicon").attr("href", "static/images/highlogo.png"); blink_interval_exists = true; blink_interval = setInterval(chat_blink, 2000); }