From 566ce9cd73b0328e78323c5a449ec483da919f1e Mon Sep 17 00:00:00 2001
From: Kristy Fournier <124598538+kristy-fournier@users.noreply.github.com>
Date: Wed, 11 Feb 2026 09:06:02 -0500
Subject: [PATCH] Sockets are finished to an acceptable level
---
Client/index.html | 2 +-
Client/scripts.js | 18 +++++++++++++-----
Server/webbyBits.py | 13 +++++++++----
3 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/Client/index.html b/Client/index.html
index 591a402..4fa3aac 100644
--- a/Client/index.html
+++ b/Client/index.html
@@ -104,7 +104,7 @@ changes visibility with JS-->
-
+
diff --git a/Client/scripts.js b/Client/scripts.js
index cda16b4..e25604c 100644
--- a/Client/scripts.js
+++ b/Client/scripts.js
@@ -299,11 +299,17 @@ async function displayElapsedPlaylistTime(elapsed=0,length=-1) {
async function updateSingleSetting(data) {
let toBeChanged = data["settingToChange"];
if (toBeChanged === "partymode") {
-
+ document.getElementById("partymode-button").textContent = data["newData"];
} else if (toBeChanged === "perms") {
-
+ let currentAdminPerms = data["newData"];
+ document.getElementById("addsongsettingcheckbox").checked = currentAdminPerms["AS"];
+ document.getElementById("skipsongsettingcheckbox").checked = currentAdminPerms["SK"];
+ document.getElementById("playpausesettingcheckbox").checked = currentAdminPerms["PP"];
+ document.getElementById("partymodesettingcheckbox").checked = currentAdminPerms["PM"];
+ document.getElementById("volumechangesettingcheckbox").checked = currentAdminPerms["VOL"];
+ document.getElementById("duplicateallowesettingcheckbox").checked = currentAdminPerms["DUP"];
} else if (toBeChanged === "volume") {
-
+ document.getElementById("volumerange").value = data["newData"];
}
}
@@ -608,9 +614,10 @@ document.addEventListener('keydown', function(e){
}})
document.getElementById("playlist-mode").style.display = "none";
document.getElementById("settings-mode").style.display = "none";
-document.getElementById("volumerange").onchange = async function() {
+document.getElementById("volumerange").onchange = async function(e) {
// there is no reason for this not to be a defined function
// FIX THIS
+ console.log(e);
let returnValue = await getFromServer({setting:"volume",level:this.value}, "settings")
if (returnValue["status"] == ERR_NO_ADMIN) {
// alertText("Error: Admin restricted action");
@@ -716,6 +723,7 @@ socket.on("settingsChange",(data) => {
console.log("working");
justChangedSetting = false;
} else {
- checkSettings();
+ // checkSettings();
+ updateSingleSetting(data);
}
});
\ No newline at end of file
diff --git a/Server/webbyBits.py b/Server/webbyBits.py
index 22a238c..8342e75 100644
--- a/Server/webbyBits.py
+++ b/Server/webbyBits.py
@@ -190,8 +190,12 @@ def settingsControl():
volumeLevel = int(recieveData["level"])
if(volumeLevel <= 100 and volumeLevel >= 0):
volumePassed = player.audio_set_volume(volumeLevel)
- socketio.emit("settingsChange")
- return {"error":"ok","data":{"volumePassed":volumePassed}},200
+ if(volumePassed == 0):
+ # only emit a signal i the volume really changed
+ socketio.emit("settingsChange",{"settingToChange":"volume","newData":volumeLevel})
+ return {"error":"ok","data":{"volumePassed":volumePassed}},200
+ else:
+ return {"error":"VLC cannot take volume change requests at this time","data":None},500
else:
return {"error":"Invalid volume level","data":None},422
else:
@@ -199,15 +203,16 @@ def settingsControl():
elif recieveData["setting"] == "partymode-toggle":
if ADMIN_PASS == recieveData['password'] or controlPerms["PM"]:
partyMode = not(partyMode)
- socketio.emit("settingsChange")
+ partyModeStr = "On" if partyMode else "Off"
+ socketio.emit("settingsChange",{"settingToChange":"partymode","newData":partyModeStr})
return ERR_200
else:
return ERR_NO_ADMIN
elif recieveData["setting"] == "perms":
if ADMIN_PASS == recieveData["password"]:
- socketio.emit("settingsChange")
controlPerms = recieveData["admin"]
# print(recieveData["admin"])
+ socketio.emit("settingsChange",{"settingToChange":"perms","newData":controlPerms})
return ERR_200
else:
return ERR_NO_ADMIN