From d8fa4629da65bc13a85632750d1ddf2956ddddb1 Mon Sep 17 00:00:00 2001 From: luke-1993 Date: Sat, 14 Oct 2023 16:39:11 +0100 Subject: [PATCH] give album when making a query to beets to delete a track to filter out any duplicates from just kmatching against artist and track name. Delete by ID rather than query --- server/subsonic/stream.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/server/subsonic/stream.go b/server/subsonic/stream.go index 95b9a59a3..9c7d47670 100644 --- a/server/subsonic/stream.go +++ b/server/subsonic/stream.go @@ -184,7 +184,7 @@ func (api *Router) Delete(w http.ResponseWriter, r *http.Request) (*responses.Su //baseUrl := "http://127.0.0.1:8337" baseUrl := "http://host.docker.internal:8337" queryEndPoint := "/item/query/" - queryStr := fmt.Sprintf("artist:%s/title:%s", mf.Artist, mf.Title) + queryStr := fmt.Sprintf("artist:%s/title:%s/album:%s", mf.Artist, mf.Title, mf.Album) url := baseUrl + queryEndPoint + queryStr fmt.Printf("query url: %s\n", url) resp, err := http.Get(url) // nolint @@ -206,13 +206,16 @@ func (api *Router) Delete(w http.ResponseWriter, r *http.Request) (*responses.Su } length := len(beetsItem.Results) if length != 1 { - log.Error("following query string matched: ", length, "tracks", queryStr) + log.Error("following query string matched n entries", "n", length, "queryStr", queryStr) return nil, err } item := beetsItem.Results[0] - log.Info("deleting: ", item.Artist, " : ", item.Title) + log.Info("deleting: ", item.Artist, " : ", item.Title, " id: ", item.ID) + + deleteStr := fmt.Sprintf("/item/%d", item.ID) + + del_url := baseUrl + deleteStr // Create request - del_url := url + "?delete" req, err := http.NewRequest(http.MethodDelete, del_url, nil) log.Info("delete request: ", req) if err != nil {