aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go20
1 files changed, 14 insertions, 6 deletions
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) {