From 72541234c8ee6a137f3f484b398e65b59538efde Mon Sep 17 00:00:00 2001 From: Lertsenem Date: Tue, 21 Dec 2021 15:39:30 +0100 Subject: [PATCH] Add basic filtering on search results Any mpd query was treated the same, whether it was an album, artist, track, etc. query. With this commit, a basic filtering occurs, meaning that 'album' queries will only return albums, 'track' queries will only return tracks, 'artist' queries will only return artists, and 'any' queries will return all of the above. Limitation: any other query now won't return anything. This seems logical, since Funkwhale search only distinguishes between artists, albums and tracks. --- mopidy_funkwhale/library.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mopidy_funkwhale/library.py b/mopidy_funkwhale/library.py index 89d3c93..041c133 100644 --- a/mopidy_funkwhale/library.py +++ b/mopidy_funkwhale/library.py @@ -347,9 +347,16 @@ class FunkwhaleLibraryProvider(backend.LibraryProvider): search_query = simplify_search_query(query) logger.info("Searching Funkwhale for: %s", search_query) raw_results = self.backend.client.search(search_query) - artists = [convert_to_artist(row) for row in raw_results["artists"]] - albums = [convert_to_album(row) for row in raw_results["albums"]] - tracks = [convert_to_track(row) for row in raw_results["tracks"]] + + artists = [] + albums = [] + tracks = [] + if "artist" in query or "any" in query: + artists = [convert_to_artist(row) for row in raw_results["artists"]] + if "album" in query or "any" in query: + albums = [convert_to_album(row) for row in raw_results["albums"]] + if "track_no" in query or "any" in query: + tracks = [convert_to_track(row) for row in raw_results["tracks"]] return models.SearchResult( uri="funkwhale:search", tracks=tracks, albums=albums, artists=artists -- GitLab