diff --git a/persistence/album_repository.go b/persistence/album_repository.go index 3ccf80f4..c4aeb767 100644 --- a/persistence/album_repository.go +++ b/persistence/album_repository.go @@ -60,19 +60,22 @@ func NewAlbumRepository(ctx context.Context, db dbx.Builder) model.AlbumReposito "starred": booleanFilter, "has_rating": hasRatingFilter, } - r.sortMappings = map[string]string{ - "name": "order_album_name asc, order_album_artist_name asc", - "artist": "compilation asc, order_album_artist_name asc, order_album_name asc", - "random": "RANDOM()", - "max_year": "coalesce(nullif(original_date,''), cast(max_year as text)), release_date, name, order_album_name asc", - "recently_added": recentlyAddedSort(), - } if conf.Server.PreferSortTags { r.sortMappings = map[string]string{ - "name": "COALESCE(NULLIF(sort_album_name,''),order_album_name)", - "artist": "compilation asc, COALESCE(NULLIF(sort_album_artist_name,''),order_album_artist_name) asc, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", - "albumArtist": "compilation asc, COALESCE(NULLIF(sort_album_artist_name,''),order_album_artist_name) asc, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", - "max_year": "coalesce(nullif(original_date,''), cast(max_year as text)), release_date, name, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", + "name": "COALESCE(NULLIF(sort_album_name,''),order_album_name)", + "artist": "compilation asc, COALESCE(NULLIF(sort_album_artist_name,''),order_album_artist_name) asc, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", + "albumArtist": "compilation asc, COALESCE(NULLIF(sort_album_artist_name,''),order_album_artist_name) asc, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", + "max_year": "coalesce(nullif(original_date,''), cast(max_year as text)), release_date, name, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc", + "random": "RANDOM()", + "recently_added": recentlyAddedSort(), + } + } else { + r.sortMappings = map[string]string{ + "name": "order_album_name asc, order_album_artist_name asc", + "artist": "compilation asc, order_album_artist_name asc, order_album_name asc", + "max_year": "coalesce(nullif(original_date,''), cast(max_year as text)), release_date, name, order_album_name asc", + "random": "RANDOM()", + "recently_added": recentlyAddedSort(), } } diff --git a/persistence/mediafile_repository.go b/persistence/mediafile_repository.go index c1da7c1e..3ff03656 100644 --- a/persistence/mediafile_repository.go +++ b/persistence/mediafile_repository.go @@ -31,16 +31,18 @@ func NewMediaFileRepository(ctx context.Context, db dbx.Builder) *mediaFileRepos "title": fullTextFilter, "starred": booleanFilter, } - r.sortMappings = map[string]string{ - "artist": "order_artist_name asc, order_album_name asc, release_date asc, disc_number asc, track_number asc", - "album": "order_album_name asc, release_date asc, disc_number asc, track_number asc, order_artist_name asc, title asc", - "random": "RANDOM()", - } if conf.Server.PreferSortTags { r.sortMappings = map[string]string{ "title": "COALESCE(NULLIF(sort_title,''),title)", "artist": "COALESCE(NULLIF(sort_artist_name,''),order_artist_name) asc, COALESCE(NULLIF(sort_album_name,''),order_album_name) asc, release_date asc, disc_number asc, track_number asc", "album": "COALESCE(NULLIF(sort_album_name,''),order_album_name) asc, release_date asc, disc_number asc, track_number asc, COALESCE(NULLIF(sort_artist_name,''),order_artist_name) asc, COALESCE(NULLIF(sort_title,''),title) asc", + "random": "RANDOM()", + } + } else { + r.sortMappings = map[string]string{ + "artist": "order_artist_name asc, order_album_name asc, release_date asc, disc_number asc, track_number asc", + "album": "order_album_name asc, release_date asc, disc_number asc, track_number asc, order_artist_name asc, title asc", + "random": "RANDOM()", } } return r