From a9b6aa1652166eb7f871735ba6833e2bdb888e50 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sun, 16 Jul 2023 13:30:35 +0200 Subject: add more song info and preparations for advanced search --- main.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index fd390bf..e4f7bad 100644 --- a/main.go +++ b/main.go @@ -75,18 +75,26 @@ func searchHandler(w http.ResponseWriter, r *http.Request) { return } - pattern := r.URL.Query().Get("pattern") - if pattern == "" { + searchQuery := map[string]string{} + patterns := []string{"pattern", "title", "album", "artist"} + for _, pattern := range patterns { + value := r.URL.Query().Get(pattern) + if value != "" { + searchQuery[pattern] = value + } + } + + if len(searchQuery) == 0 { http.Error(w, "No search pattern provided", http.StatusBadRequest) return } id := wrms.eventId.Add(1) - llog.Debug("Searching for %s", pattern) + llog.Debug("Searching for %v", searchQuery) start := time.Now() - resultsChan := wrms.Player.Search(pattern) + resultsChan := wrms.Search(searchQuery) go func() { for result := range resultsChan { @@ -96,10 +104,10 @@ func searchHandler(w http.ResponseWriter, r *http.Request) { } conn.Send(Event{Event: "finish-search", Id: id}) - llog.Debug("searching for %s took %v", pattern, time.Since(start)) + llog.Debug("searching for %v took %v", searchQuery, time.Since(start)) }() - fmt.Fprintf(w, "Starting search for %s", pattern) + fmt.Fprintf(w, "Starting search for %v", searchQuery) } func genericVoteHandler(w http.ResponseWriter, r *http.Request, vote string) { -- cgit v1.2.3