Generalize BreakUp/RangByChunks functions
This commit is contained in:
@@ -3,7 +3,7 @@ package persistence
|
||||
import (
|
||||
. "github.com/Masterminds/squirrel"
|
||||
"github.com/navidrome/navidrome/model"
|
||||
"github.com/navidrome/navidrome/utils"
|
||||
"github.com/navidrome/navidrome/utils/slice"
|
||||
)
|
||||
|
||||
func (r sqlRepository) withGenres(sql SelectBuilder) SelectBuilder {
|
||||
@@ -25,7 +25,7 @@ func (r *sqlRepository) updateGenres(id string, tableName string, genres model.G
|
||||
for _, g := range genres {
|
||||
genreIds = append(genreIds, g.ID)
|
||||
}
|
||||
err = utils.RangeByChunks(genreIds, 100, func(ids []string) error {
|
||||
err = slice.RangeByChunks(genreIds, 100, func(ids []string) error {
|
||||
ins := Insert(tableName+"_genres").Columns("genre_id", tableName+"_id")
|
||||
for _, gid := range ids {
|
||||
ins = ins.Values(gid, id)
|
||||
@@ -45,7 +45,7 @@ func (r *sqlRepository) loadMediaFileGenres(mfs *model.MediaFiles) error {
|
||||
m[mf.ID] = mf
|
||||
}
|
||||
|
||||
return utils.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
return slice.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
sql := Select("g.*", "mg.media_file_id").From("genre g").Join("media_file_genres mg on mg.genre_id = g.id").
|
||||
Where(Eq{"mg.media_file_id": ids}).OrderBy("mg.media_file_id", "mg.rowid")
|
||||
var genres []struct {
|
||||
@@ -74,7 +74,7 @@ func (r *sqlRepository) loadAlbumGenres(mfs *model.Albums) error {
|
||||
m[mf.ID] = mf
|
||||
}
|
||||
|
||||
return utils.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
return slice.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
sql := Select("g.*", "ag.album_id").From("genre g").Join("album_genres ag on ag.genre_id = g.id").
|
||||
Where(Eq{"ag.album_id": ids}).OrderBy("ag.album_id", "ag.rowid")
|
||||
var genres []struct {
|
||||
@@ -103,7 +103,7 @@ func (r *sqlRepository) loadArtistGenres(mfs *model.Artists) error {
|
||||
m[mf.ID] = mf
|
||||
}
|
||||
|
||||
return utils.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
return slice.RangeByChunks(ids, 900, func(ids []string) error {
|
||||
sql := Select("g.*", "ag.artist_id").From("genre g").Join("artist_genres ag on ag.genre_id = g.id").
|
||||
Where(Eq{"ag.artist_id": ids}).OrderBy("ag.artist_id", "ag.rowid")
|
||||
var genres []struct {
|
||||
|
||||
Reference in New Issue
Block a user