aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-07-22 14:47:03 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-07-22 14:47:03 +0200
commit1f8be2478f97feab79d55cbd4b3d73624733d49a (patch)
tree33d2c80be55851c5c1e3209f315ce99f6776f31d
parent5d6358d8cc26db520488d2c7fbea5dbaa9e9fbd2 (diff)
downloadWRMS-1f8be2478f97feab79d55cbd4b3d73624733d49a.tar.gz
WRMS-1f8be2478f97feab79d55cbd4b3d73624733d49a.zip
propagate the time bonus to the client and apply it when adding new songs
-rw-r--r--web/client.html9
-rw-r--r--wrms.go8
2 files changed, 16 insertions, 1 deletions
diff --git a/web/client.html b/web/client.html
index 15f3a33..51ddf3b 100644
--- a/web/client.html
+++ b/web/client.html
@@ -92,6 +92,7 @@
}
}
+ let timeBonus = 0.0;
let isAdmin = false;
let searchId = 0;
let songs = [];
@@ -213,6 +214,11 @@
}
function handleAdd(added) {
+ if (timeBonus != 0) {
+ for (song of songs) {
+ song.weight += timeBonus
+ }
+ }
songs = songs.concat(added);
renderPlaylist();
}
@@ -279,6 +285,9 @@
console.log("Received Event: ", message);
const cmd = JSON.parse(message.data);
switch (cmd.cmd) {
+ case "timeBonus":
+ timeBonus = cmd.timeBonus;
+ break;
case "add":
handleAdd(cmd.songs)
break;
diff --git a/wrms.go b/wrms.go
index f6784c8..02b0860 100644
--- a/wrms.go
+++ b/wrms.go
@@ -226,7 +226,13 @@ func (wrms *Wrms) initConn(conn *Connection) error {
curEventId := wrms.eventId.Load()
conn.nextEvent = curEventId + 1
- initialCmds := []Event{}
+ initialCmds := []interface{}{}
+
+ if wrms.Config.timeBonus != 0 {
+ ev := map[string]any{"cmd": "timeBonus", "timeBonus": wrms.Config.timeBonus}
+ initialCmds = append(initialCmds, ev)
+ }
+
if wrms.playing {
var songs []Song
if currentSong := wrms.CurrentSong.Load(); currentSong != nil {