diff --git a/php/footer.php b/php/footer.php index fd18c113..31ff29b8 100755 --- a/php/footer.php +++ b/php/footer.php @@ -80,6 +80,7 @@ + diff --git a/server/server.js b/server/server.js index 7cf57a65..04f081da 100755 --- a/server/server.js +++ b/server/server.js @@ -114,6 +114,11 @@ io.on('connection', function(socket){ }); }); + socket.on('guid', function(arr) + { + io.sockets.emit(arr[0], [arr[1], arr[2]]); + }); + socket.on('list', function(list) { if(list !== undefined && list !== null && list != "") @@ -122,7 +127,8 @@ io.on('connection', function(socket){ list = list.split(','); coll = list[0].toLowerCase(); //guid = list[1]; - + socket.emit("guid", rndName(guid)); + console.log(coll); //console.log(name + " joined list " + coll); check_inlist(coll, guid, socket, name); @@ -455,6 +461,22 @@ io.on('connection', function(socket){ socket.emit("toast", "wrongpass"); }); + socket.on('change_channel', function() + { + if(in_list) + { + if(contains(lists[coll], guid)) + { + //console.log(name + " left list " + coll); + var index = lists[coll].indexOf(guid); + lists[coll].splice(index, 1); + io.sockets.emit(coll+",viewers", lists[coll].length); + io.sockets.emit('chat,'+coll, [name, " left"]); + } + + } + }); + socket.on('disconnect', function() { if(in_list) diff --git a/static/js/chat.js b/static/js/chat.js index ac0c2370..5eaca3ba 100644 --- a/static/js/chat.js +++ b/static/js/chat.js @@ -14,6 +14,8 @@ function chat(data) return; } +setup_chat_listener(chan); + document.getElementById("chat-btn").addEventListener("click", function(){ console.log("clicked"); $("#text-chat-input").focus(); @@ -62,26 +64,29 @@ $(window).focus(function(){ } }); -socket.on("chat,"+chan.toLowerCase(), function(data) +function setup_chat_listener(channel) { - if($("#chat-bar").position()["left"] != 0) + socket.on("chat,"+channel.toLowerCase(), function(data) { - if(data[1].indexOf(":") >= 0){ - //$("#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); + if($("#chat-bar").position()["left"] != 0) + { + if(data[1].indexOf(":") >= 0){ + //$("#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); + } } } - } - var color = intToARGB(hashCode(data[0])).substring(0,6); - $("#chatchannel").append("
  • "+data[0]+"
  • "); - var in_text = document.createTextNode(data[1]); - $("#chatchannel li:last")[0].appendChild(in_text); - document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight -}); + var color = intToARGB(hashCode(data[0])).substring(0,6); + $("#chatchannel").append("
  • "+data[0]+"
  • "); + var in_text = document.createTextNode(data[1]); + $("#chatchannel li:last")[0].appendChild(in_text); + document.getElementById("chatchannel").scrollTop = document.getElementById("chatchannel").scrollHeight + }); +} function chat_blink() { diff --git a/static/js/list.js b/static/js/list.js index 6824979f..26d13390 100755 --- a/static/js/list.js +++ b/static/js/list.js @@ -84,7 +84,7 @@ function populate_list(msg, conf_only) }else player_name = "#player"; } } - + $("#settings").css("visibility", "visible"); $("#settings").css("opacity", "1"); $("#wrapper").css("opacity", "1"); diff --git a/static/js/youtube.js b/static/js/youtube.js index 22124a8c..60f321b6 100755 --- a/static/js/youtube.js +++ b/static/js/youtube.js @@ -23,56 +23,60 @@ var paused = false; var playing = false; //play new song -socket.on(chan.toLowerCase()+",np", function(obj) +function setup_youtube_listener(channel) { - console.log(obj); - if(obj[0].length == 0){ - console.log("Empty list"); - document.getElementById('song-title').innerHTML = "Empty channel. Add some songs!"; - $("#player_overlay").height($("#player").height()); - if(!window.mobilecheck()) - $("#player_overlay").toggleClass("hide"); - importOldList(chan.toLowerCasettings-barse()); - } - else{ - console.log("gotten new song"); - $("#player_overlay").addClass("hide"); - video_id = obj[0][0]["id"]; - conf = obj[1][0]; - time = obj[2]; - seekTo = time - conf["startTime"]; - song_title = obj[0][0]["title"]; - getTitle(song_title, viewers); - if(player_ready && !window.mobilecheck()) - { - if(ytplayer.getVideoUrl().split('v=')[1] != video_id) - { - ytplayer.loadVideoById(video_id); - setBGimage(video_id); - notifyUser(video_id, song_title); - if(paused) - ytplayer.pauseVideo(); - }else - console.log("like"); - if(!paused) - ytplayer.playVideo(); - if(ytplayer.getDuration() > seekTo) - ytplayer.seekTo(seekTo); + socket.on(channel.toLowerCase()+",np", function(obj) + { + console.log(obj); + if(obj[0].length == 0){ + console.log("Empty list"); + document.getElementById('song-title').innerHTML = "Empty channel. Add some songs!"; + $("#player_overlay").height($("#player").height()); + if(!window.mobilecheck()) + $("#player_overlay").toggleClass("hide"); + importOldList(channel.toLowerCasettings-barse()); } - else + else{ + console.log("gotten new song"); + $("#player_overlay").addClass("hide"); + video_id = obj[0][0]["id"]; + conf = obj[1][0]; + time = obj[2]; + seekTo = time - conf["startTime"]; + song_title = obj[0][0]["title"]; getTitle(song_title, viewers); - } -}); + if(player_ready && !window.mobilecheck()) + { + if(ytplayer.getVideoUrl().split('v=')[1] != video_id) + { + ytplayer.loadVideoById(video_id); + setBGimage(video_id); + notifyUser(video_id, song_title); + if(paused) + ytplayer.pauseVideo(); + }else + console.log("like"); + if(!paused) + ytplayer.playVideo(); + if(ytplayer.getDuration() > seekTo) + ytplayer.seekTo(seekTo); + } + else + getTitle(song_title, viewers); + } + }); -socket.on(chan.toLowerCase()+",viewers", function(view) -{ - viewers = view; - if(song_title !== undefined) - getTitle(song_title, viewers); -}); + socket.on(channel.toLowerCase()+",viewers", function(view) + { + viewers = view; + if(song_title !== undefined) + getTitle(song_title, viewers); + }); +} $(document).ready(function() { + setup_youtube_listener(chan); //Materialize.toast("Passwords have been reset. If anything is not right, please send us a mail @ contact@zoff.no", 10000); $("#settings").sideNav({ menuWidth: 300, // Default is 240