diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-07-16 13:30:35 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2023-07-16 14:17:17 +0200 |
| commit | a9b6aa1652166eb7f871735ba6833e2bdb888e50 (patch) | |
| tree | 35f820f0af629ba62e4c5e41a28e487351581603 /main.go | |
| parent | 53d46753d0c4b312df9c0151089eae3891aa4add (diff) | |
| download | WRMS-a9b6aa1652166eb7f871735ba6833e2bdb888e50.tar.gz WRMS-a9b6aa1652166eb7f871735ba6833e2bdb888e50.zip | |
add more song info and preparations for advanced search
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -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) { |
