From 2b66a8ad25485133728b61951180267990083f57 Mon Sep 17 00:00:00 2001 From: Michael Herger Date: Fri, 20 Mar 2020 17:44:29 +0100 Subject: [PATCH] Include online artists without tracks in library views --- Slim/Menu/BrowseLibrary.pm | 2 +- Slim/Music/VirtualLibraries.pm | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Slim/Menu/BrowseLibrary.pm b/Slim/Menu/BrowseLibrary.pm index aadc5ab40ea..e06852524e6 100644 --- a/Slim/Menu/BrowseLibrary.pm +++ b/Slim/Menu/BrowseLibrary.pm @@ -1086,7 +1086,7 @@ sub _artists { } # only get external artists without album if no filter is set - my $queryTags = (!scalar @searchTags || (scalar @searchTags == 1 && $searchTags[0] =~ /role_id:.*ALBUMARTIST/)) ? 'EQs' : 's'; + my $queryTags = (!scalar grep { $_ !~ /^role_id:.*ALBUMARTIST|^library_id:/} @searchTags) ? 'EQs' : 's'; _generic($client, $callback, $args, 'artists', [@searchTags, ($search ? 'search:' . $search : undef)], diff --git a/Slim/Music/VirtualLibraries.pm b/Slim/Music/VirtualLibraries.pm index e3b2036a1ab..10541316b58 100644 --- a/Slim/Music/VirtualLibraries.pm +++ b/Slim/Music/VirtualLibraries.pm @@ -352,13 +352,14 @@ sub rebuild { my $contributors_sth = $dbh->prepare_cached(qq{ INSERT OR IGNORE INTO library_contributor (library, contributor) - SELECT DISTINCT ?, contributor_track.contributor - FROM contributor_track + SELECT DISTINCT ?, contributors.id + FROM contributors + LEFT JOIN contributor_track ON contributor_track.contributor = contributors.id WHERE contributor_track.track IN ( SELECT library_track.track FROM library_track WHERE library_track.library = ? - ) + ) OR (contributors.extid IS NOT NULL AND contributors.extid != '') }); $contributors_sth->execute($id, $id);