diff options
| -rw-r--r-- | main.go | 18 | ||||
| -rw-r--r-- | player.go | 8 | ||||
| -rw-r--r-- | web/client.html | 17 |
3 files changed, 38 insertions, 5 deletions
@@ -30,7 +30,17 @@ func landingPage(w http.ResponseWriter, r *http.Request) { } func searchHandler(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Searching for") + pattern := r.URL.Query().Get("pattern") + + log.Println(fmt.Sprintf("Searching for %s", pattern)) + + results := wrms.Player.Search(pattern) + data, err := json.Marshal(Event{"search", results}) + if err != nil { + log.Fatal(err) + return + } + w.Write(data) } func genericVoteHandler(w http.ResponseWriter, r *http.Request, vote string) { @@ -101,7 +111,7 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) { if wrms.Playing { data, err := json.Marshal(Event{"play", []Song{*wrms.CurrentSong}}) if err != nil { - log.Println(err) + log.Fatal(err) return } initialCmds = append(initialCmds, data) @@ -109,7 +119,7 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) { data, err := json.Marshal(Event{"add", wrms.Songs}) if err != nil { - log.Println(err) + log.Fatal(err) return } initialCmds = append(initialCmds, data) @@ -126,7 +136,7 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) { for ev := range conn.Events { data, err := json.Marshal(ev) if err != nil { - log.Println(err) + log.Fatal(err) return } @@ -33,3 +33,11 @@ func (player *Player) Play(song Song) { func (player *Player) Pause() { } + +func (player *Player) Search(pattern string) []Song { + results := []Song{} + for _, backend := range player.Backends { + results = append(results, backend.Search(pattern)...) + } + return results +} diff --git a/web/client.html b/web/client.html index d7f8db2..8e3faab 100644 --- a/web/client.html +++ b/web/client.html @@ -190,6 +190,13 @@ console.log("Socket Error: ", error); }; + function submitSearch() { + const form = new FormData(document.getElementById("searchForm")); + const pattern = new URLSearchParams(form).toString(); + new HttpClient().get("/search?" + pattern, console.log); + return false; + } + window.onload = function() { document.getElementById("ppbutton").addEventListener("click", function() { new HttpClient().get("/playpause", console.log); @@ -199,10 +206,18 @@ </head> <body> + <h2>Add your song</h2> + <div id="add"> + <form id="searchForm" onsubmit="return submitSearch()"> + <input id="searchInput" name="pattern" type="text" value="Title/Artist/Album/..."> + <button id="searchButton">Search</button> + </form> + </div> + <h2>Playing</h2> <p id='playing'></p> <div id='controls'> - <button id="ppbutton" form='ppform'>Play</button> + <button id="ppbutton">Play</button> </div> <h2>Playlist</h2> |
