Index: Slim/Plugin/RandomPlay/Plugin.pm =================================================================== --- Slim/Plugin/RandomPlay/Plugin.pm (revision 21402) +++ Slim/Plugin/RandomPlay/Plugin.pm (working copy) @@ -403,29 +403,57 @@ push @joins, 'genreTracks'; } + if($find->{'lastPlayed'}) { + + push @joins, 'persistent'; + } + } elsif ($type eq 'album') { if ($find->{'genreTracks.genre'}) { - push @joins, { 'tracks' => 'genreTracks' }; + if($find->{'lastPlayed'}) { + push @joins, { 'tracks' => ['genreTracks','persistent'] }; + }else { + + push @joins, { 'tracks' => {'genreTracks'} }; + } + } else { - push @joins, 'tracks'; + if($find->{'lastPlayed'}) { + + push @joins, {'tracks' => 'persistent'}; + }else { + + push @joins, {'tracks'}; + } } } elsif ($type eq 'contributor') { if ($find->{'genreTracks.genre'}) { - push @joins, { 'contributorTracks' => { 'track' => 'genreTracks' } }; + if($find->{'lastPlayed'}) { + push @joins, { 'contributorTracks' => { 'track' => ['genreTracks','persistent'] } }; + }else { + + push @joins, { 'contributorTracks' => { 'track' => 'genreTracks' } }; + } + } else { - push @joins, { 'contributorTracks' => 'track' }; + if($find->{'lastPlayed'}) { + + push @joins, { 'contributorTracks' => {'track' => 'persistent'} }; + }else { + + push @joins, { 'contributorTracks' => 'track' }; + } } } - my $rs = Slim::Schema->rs($type)->search($find, { 'join' => \@joins }); if (!$rs->count) {