diff --git a/persistence/playqueue_repository.go b/persistence/playqueue_repository.go index d27d52a0d..31e91e6bc 100644 --- a/persistence/playqueue_repository.go +++ b/persistence/playqueue_repository.go @@ -9,6 +9,7 @@ import ( "github.com/astaxie/beego/orm" "github.com/deluan/navidrome/log" "github.com/deluan/navidrome/model" + "github.com/deluan/navidrome/utils" ) type playQueueRepository struct { @@ -112,16 +113,7 @@ func (r *playQueueRepository) loadTracks(tracks model.MediaFiles) model.MediaFil } // Break the list in chunks, up to 50 items, to avoid hitting SQLITE_MAX_FUNCTION_ARG limit - const chunkSize = 50 - var chunks [][]string - for i := 0; i < len(ids); i += chunkSize { - end := i + chunkSize - if end > len(ids) { - end = len(ids) - } - - chunks = append(chunks, ids[i:end]) - } + chunks := utils.BreakUpStringSlice(ids, 50) // Query each chunk of media_file ids and store results in a map mfRepo := NewMediaFileRepository(r.ctx, r.ormer)