From 68ba1190a040d8dbf00415341391eebd3addfe8c Mon Sep 17 00:00:00 2001 From: riku1227 <17927874+riku1227@users.noreply.github.com> Date: Tue, 16 Jun 2020 15:30:45 +0900 Subject: [PATCH] Add swap queue --- index.html | 20 ++++++++++++++++++-- server.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index f0a47f1..bb7e5cb 100644 --- a/index.html +++ b/index.html @@ -584,8 +584,17 @@

Contact Me

var html = '' if (yt.length > 0) { for (i = 0; i < yt.length; i++) { - html += '
  • ' + yt[i].title + '
  • ' + html += '
  • '+ + '
    '+ + ''+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
    '+ + '' + yt[i].title + ''+ + '
  • ' } } else { html += '
  • ' @@ -643,6 +652,13 @@

    Contact Me

    }) } + function swapQueue(prevIdx, nextIdx) { + socket.emit("swap queue", { + prev: prevIdx, + next: nextIdx + }); + } + // Turn off the lights! var per = 0; diff --git a/server.js b/server.js index f596de3..36488dc 100644 --- a/server.js +++ b/server.js @@ -925,6 +925,37 @@ io.sockets.on('connection', function(socket) { ); }); + //Swap queue + socket.on("swap queue", function(data) { + if (io.sockets.adapter.rooms['room-' + socket.roomnum] !== undefined) { + //Queue is only supported YouTube + if(io.sockets.adapter.rooms['room-' + socket.roomnum].currPlayer == 0) { + var prevIndex = data.prev; + var nextIndex = data.next; + + console.log("swap queue (prev: " + prevIndex + ", next: " + nextIndex + ")"); + + //Return when array index out of bounds + var queueCount = io.sockets.adapter.rooms['room-' + socket.roomnum].queue.yt.length; + if(prevIndex == -1 || nextIndex == -1) { + return; + } else if (prevIndex >= queueCount || nextIndex >= queueCount) { + return; + } + + //Get swap objects + var prevObject = io.sockets.adapter.rooms['room-' + socket.roomnum].queue.yt[prevIndex]; + var nextObject = io.sockets.adapter.rooms['room-' + socket.roomnum].queue.yt[nextIndex]; + + //Swap + io.sockets.adapter.rooms['room-' + socket.roomnum].queue.yt[prevIndex] = nextObject; + io.sockets.adapter.rooms['room-' + socket.roomnum].queue.yt[nextIndex] = prevObject; + + updateQueueVideos(); + } + } + }); + // Some update functions -------------------------------------------------- // Update all users