From 2ca19acef827627a3b68297c2c0cdea59c5a3698 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Fri, 5 Sep 2025 16:01:09 -0700 Subject: [PATCH] Fix #703: don't crash if there are fewer than 20 random albums --- backend/playbackmanager.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/playbackmanager.go b/backend/playbackmanager.go index 14dbede..09cb9cc 100644 --- a/backend/playbackmanager.go +++ b/backend/playbackmanager.go @@ -2,6 +2,7 @@ package backend import ( "context" + "errors" "fmt" "log" "math/rand" @@ -480,11 +481,15 @@ func (p *PlaybackManager) PlaySimilarSongs(id string) error { } func (p *PlaybackManager) PlayRandomAlbums(genreName string) error { + mp := p.engine.sm.GetServer() + if mp == nil { + return errors.New("logged out") + } + if p.engine.replayGainCfg.Mode == ReplayGainAuto { p.SetReplayGainMode(player.ReplayGainAlbum) } - mp := p.engine.sm.Server var options mediaprovider.AlbumFilterOptions if genreName != "" { options = mediaprovider.AlbumFilterOptions{ @@ -495,6 +500,9 @@ func (p *PlaybackManager) PlayRandomAlbums(genreName string) error { insertMode := Replace for i := 0; i < 20; i++ { al := iter.Next() + if al == nil { + break + } if al, err := mp.GetAlbum(al.ID); err == nil { p.LoadTracks(al.Tracks, insertMode, false) if i == 0 {