aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2022-07-27 20:15:50 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2022-07-27 20:15:50 +0200
commitbb17b54478273116e1f48ff53476efb9f01cde7e (patch)
tree17050bfb547a575d4e0c0ad5a5baf96089859800 /main.go
parent2fd1af916a333ca2ecaaa01bae2e43b922a4ca2e (diff)
downloadWRMS-bb17b54478273116e1f48ff53476efb9f01cde7e.tar.gz
WRMS-bb17b54478273116e1f48ff53476efb9f01cde7e.zip
intermediate commit
* use more llog * inform clients about their votes when initiating the connection * show song weights
Diffstat (limited to 'main.go')
-rw-r--r--main.go50
1 files changed, 41 insertions, 9 deletions
diff --git a/main.go b/main.go
index 545c3b2..4067f63 100644
--- a/main.go
+++ b/main.go
@@ -9,6 +9,8 @@ import (
"log"
"net/http"
+ "muhq.space/wrms/llog"
+
"github.com/google/uuid"
"nhooyr.io/websocket"
@@ -98,7 +100,7 @@ func playPauseHandler(w http.ResponseWriter, r *http.Request) {
func wsEndpoint(w http.ResponseWriter, r *http.Request) {
c, err := websocket.Accept(w, r, nil)
if err != nil {
- log.Println("%v", err)
+ log.Println(err)
return
}
@@ -136,12 +138,42 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
initialCmds = append(initialCmds, data)
}
- data, err := json.Marshal(Event{"add", wrms.Songs})
- if err != nil {
- log.Fatal(err)
- return
+ upvoted := []Song{}
+ downvoted := []Song{}
+ if len(wrms.Songs) > 0 {
+ data, err := json.Marshal(Event{"add", wrms.Songs})
+ if err != nil {
+ log.Fatal(err)
+ return
+ }
+ initialCmds = append(initialCmds, data)
+
+ for _, song := range wrms.Songs {
+ if _, ok := song.Upvotes[id.String()]; ok {
+ upvoted = append(upvoted, song)
+ } else if _, ok := song.Downvotes[id.String()]; ok {
+ downvoted = append(downvoted, song)
+ }
+ }
+ }
+
+ if len(upvoted) > 0 {
+ data, err := json.Marshal(Event{"upvoted", upvoted})
+ if err != nil {
+ log.Fatal(err)
+ return
+ }
+ initialCmds = append(initialCmds, data)
+ }
+
+ if len(downvoted) > 0 {
+ data, err := json.Marshal(Event{"downvoted", downvoted})
+ if err != nil {
+ log.Fatal(err)
+ return
+ }
+ initialCmds = append(initialCmds, data)
}
- initialCmds = append(initialCmds, data)
for _, data := range initialCmds {
log.Println("Sending initial cmd", string(data))
@@ -159,7 +191,7 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) {
return
}
- log.Println(fmt.Sprintf("Sending ev %s to %s", string(data), id))
+ llog.Debug(fmt.Sprintf("Sending ev %s to %s", string(data), id))
err = c.Write(ctx, websocket.MessageText, data)
if err != nil {
log.Println(err)
@@ -182,8 +214,8 @@ func setupRoutes() {
func main() {
setupRoutes()
- wrms.AddSong(NewDummySong("Lala", "SNFMT"))
- wrms.AddSong(NewDummySong("Hobelbank", "MC Wankwichtel"))
+ // wrms.AddSong(NewDummySong("Lala", "SNFMT"))
+ // wrms.AddSong(NewDummySong("Hobelbank", "MC Wankwichtel"))
log.Println(wrms)
defer wrms.Close()