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