Make sorting lists by name/title case-insensitive (#2993)

* Make sort by order_* fields case-insensitive.

* Sort internet radios by name case-insensitive
This commit is contained in:
Deluan Quintão
2024-05-09 07:08:15 -04:00
committed by GitHub
parent 6408dda948
commit c4b05dac28
9 changed files with 52 additions and 28 deletions
+4 -10
View File
@@ -7,7 +7,6 @@ import (
"path/filepath"
"strings"
"github.com/deluan/sanitize"
"github.com/navidrome/navidrome/conf"
"github.com/navidrome/navidrome/consts"
"github.com/navidrome/navidrome/model"
@@ -56,10 +55,10 @@ func (s MediaFileMapper) ToMediaFile(md metadata.Tags) model.MediaFile {
mf.SortAlbumName = md.SortAlbum()
mf.SortArtistName = md.SortArtist()
mf.SortAlbumArtistName = md.SortAlbumArtist()
mf.OrderTitle = strings.TrimSpace(sanitize.Accents(mf.Title))
mf.OrderAlbumName = sanitizeFieldForSorting(mf.Album)
mf.OrderArtistName = sanitizeFieldForSorting(mf.Artist)
mf.OrderAlbumArtistName = sanitizeFieldForSorting(mf.AlbumArtist)
mf.OrderTitle = utils.SanitizeFieldForSorting(mf.Title)
mf.OrderAlbumName = utils.SanitizeFieldForSortingNoArticle(mf.Album)
mf.OrderArtistName = utils.SanitizeFieldForSortingNoArticle(mf.Artist)
mf.OrderAlbumArtistName = utils.SanitizeFieldForSortingNoArticle(mf.AlbumArtist)
mf.CatalogNum = md.CatalogNum()
mf.MbzRecordingID = md.MbzRecordingID()
mf.MbzReleaseTrackID = md.MbzReleaseTrackID()
@@ -81,11 +80,6 @@ func (s MediaFileMapper) ToMediaFile(md metadata.Tags) model.MediaFile {
return *mf
}
func sanitizeFieldForSorting(originalValue string) string {
v := strings.TrimSpace(sanitize.Accents(originalValue))
return utils.NoArticle(v)
}
func (s MediaFileMapper) mapTrackTitle(md metadata.Tags) string {
if md.Title() == "" {
s := strings.TrimPrefix(md.FilePath(), s.rootFolder+string(os.PathSeparator))