From c5a262a5e0c4e836331d8be21f6ad1c8853bb76e Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 19 Sep 2026 17:32:34 -0400 Subject: [PATCH] fix(smartplaylists): stop warning on every inPlaylist rule without the looked-up field Rules that reference a playlist by id have no path field, and the reverse, so the warning fired on every refresh. The log call also had a bad argument count. --- model/criteria/operators.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/model/criteria/operators.go b/model/criteria/operators.go index cb239539d..c41d9f692 100644 --- a/model/criteria/operators.go +++ b/model/criteria/operators.go @@ -1,7 +1,5 @@ package criteria -import "github.com/navidrome/navidrome/log" - // Conjunctions need to implement this interface, to allow Criteria to extract child playlist IDs recursively type conjunction interface { ChildPlaylistIds() []string @@ -192,17 +190,9 @@ func extractPlaylistField(inputRule any, field string) (values []string) { for _, rules := range rule { values = append(values, extractPlaylistField(rules, field)...) } - case InPlaylist: - if value, ok := rule[field].(string); ok { + case InPlaylist, NotInPlaylist: + if value, ok := rule.(Expression).fields()[field].(string); ok { values = append(values, value) - } else { - log.Warn("Playlist field not a string", field) - } - case NotInPlaylist: - if value, ok := rule[field].(string); ok { - values = append(values, value) - } else { - log.Warn("Playlist field not a string", field) } } return