aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-05-21 13:42:53 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-05-21 13:46:58 +0200
commit6bd47783325a2c1833f8017abc6aa459c4d82538 (patch)
treeef83029be3553e6ce210d62242a0046788b3d8a2
parentd10c6aa2bf47729d3bcf1f6750db262a1f960b1a (diff)
downloadWRMS-6bd47783325a2c1833f8017abc6aa459c4d82538.tar.gz
WRMS-6bd47783325a2c1833f8017abc6aa459c4d82538.zip
export config members and pass the config to the client page template
Add a boolean to check for the upload backend in the template.
-rw-r--r--config.go8
-rw-r--r--main.go20
-rw-r--r--wrms.go2
3 files changed, 17 insertions, 13 deletions
diff --git a/config.go b/config.go
index ff56936..a74069d 100644
--- a/config.go
+++ b/config.go
@@ -1,7 +1,9 @@
package main
type Config struct {
- port int
- backends string
- localMusicDir string
+ Port int
+ Backends string
+ LocalMusicDir string
+ UploadDir string
+ HasUpload bool
}
diff --git a/main.go b/main.go
index db78154..420ade8 100644
--- a/main.go
+++ b/main.go
@@ -8,6 +8,7 @@ import (
"html/template"
"io/ioutil"
"net/http"
+ "strings"
"muhq.space/go/wrms/llog"
@@ -17,19 +18,17 @@ import (
)
var wrms *Wrms
+var pageTemplate *template.Template
func landingPage(w http.ResponseWriter, r *http.Request) {
if _, err := r.Cookie("UUID"); err != nil {
http.SetCookie(w, &http.Cookie{Name: "UUID", Value: uuid.NewString()})
}
- t, err := template.ParseFiles("web/client.html")
- if err != nil {
+ if err := pageTemplate.Execute(w, wrms.Config); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
-
- t.Execute(w, "")
}
func searchHandler(w http.ResponseWriter, r *http.Request) {
@@ -87,7 +86,6 @@ func addHandler(w http.ResponseWriter, r *http.Request) {
return
}
- llog.Info("Added song %s", string(data))
wrms.AddSong(song)
wrms.Broadcast(Event{"add", []Song{song}})
fmt.Fprintf(w, "Added song %s", string(data))
@@ -214,21 +212,25 @@ func setupRoutes() {
func main() {
config := Config{}
logLevel := flag.String("loglevel", "Warning", "log level")
- flag.IntVar(&config.port, "port", 8080, "port to listen to")
- flag.StringVar(&config.backends, "backends", "dummy youtube spotify", "music backend to use")
- flag.StringVar(&config.localMusicDir, "serve-music-dir", "", "local music directory to serve")
+ flag.IntVar(&config.Port, "port", 8080, "port to listen to")
+ flag.StringVar(&config.Backends, "backends", "dummy youtube spotify", "music backend to use")
+ flag.StringVar(&config.LocalMusicDir, "serve-music-dir", "", "local music directory to serve")
+ flag.StringVar(&config.UploadDir, "upload-dir", "uploads/", "directory to upload songs to")
flag.Parse()
llog.SetLogLevelFromString(*logLevel)
+ config.HasUpload = strings.Contains(config.Backends, "upload")
wrms = NewWrms(config)
defer wrms.Close()
setupRoutes()
+ pageTemplate = template.Must(template.ParseFiles("web/client.html"))
+
// wrms.AddSong(NewDummySong("Lala", "SNFMT"))
// wrms.AddSong(NewDummySong("Hobelbank", "MC Wankwichtel"))
- err := http.ListenAndServe(fmt.Sprintf(":%d", config.port), nil)
+ err := http.ListenAndServe(fmt.Sprintf(":%d", config.Port), nil)
llog.Error("Serving http failed with %s", err)
}
diff --git a/wrms.go b/wrms.go
index 816f491..9a334c3 100644
--- a/wrms.go
+++ b/wrms.go
@@ -69,7 +69,7 @@ type Wrms struct {
func NewWrms(config Config) *Wrms {
wrms := Wrms{}
wrms.Config = config
- wrms.Player = NewPlayer(&wrms, strings.Split(config.backends, " "))
+ wrms.Player = NewPlayer(&wrms, strings.Split(config.Backends, " "))
return &wrms
}