From c6fdd38f4e202d082141fcbef62022ece0899deb Mon Sep 17 00:00:00 2001 From: sentriz Date: Fri, 7 Jun 2019 11:23:09 +0100 Subject: [PATCH] use consistent case for indexes --- server/handler/handler_sub_by_folder.go | 6 +++--- server/handler/handler_sub_by_tags.go | 6 +++--- server/handler/handler_sub_common.go | 13 +++++++------ server/handler/test_data/test_get_artists_no_args | 2 +- server/handler/test_data/test_get_indexes_no_args | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/server/handler/handler_sub_by_folder.go b/server/handler/handler_sub_by_folder.go index 317fb2b..01847d7 100644 --- a/server/handler/handler_sub_by_folder.go +++ b/server/handler/handler_sub_by_folder.go @@ -23,14 +23,14 @@ func (c *Controller) GetIndexes(w http.ResponseWriter, r *http.Request) { c.DB. Where("parent_id = 1"). Find(&folders) - indexMap := make(map[rune]*subsonic.Index) + indexMap := make(map[string]*subsonic.Index) indexes := []*subsonic.Index{} for _, folder := range folders { - i := indexOf(folder.RightPath) + i := indexOf(folder.RightPath[0]) index, ok := indexMap[i] if !ok { index = &subsonic.Index{ - Name: string(i), + Name: i, Artists: []*subsonic.Artist{}, } indexMap[i] = index diff --git a/server/handler/handler_sub_by_tags.go b/server/handler/handler_sub_by_tags.go index bb60fde..5e993e8 100644 --- a/server/handler/handler_sub_by_tags.go +++ b/server/handler/handler_sub_by_tags.go @@ -15,14 +15,14 @@ import ( func (c *Controller) GetArtists(w http.ResponseWriter, r *http.Request) { var artists []*model.Artist c.DB.Find(&artists) - indexMap := make(map[rune]*subsonic.Index) + indexMap := make(map[string]*subsonic.Index) indexes := &subsonic.Artists{} for _, artist := range artists { - i := indexOf(artist.Name) + i := indexOf(artist.Name[0]) index, ok := indexMap[i] if !ok { index = &subsonic.Index{ - Name: string(i), + Name: i, Artists: []*subsonic.Artist{}, } indexMap[i] = index diff --git a/server/handler/handler_sub_common.go b/server/handler/handler_sub_common.go index 5905175..54ea526 100644 --- a/server/handler/handler_sub_common.go +++ b/server/handler/handler_sub_common.go @@ -5,6 +5,7 @@ import ( "net/http" "os" "path" + "strings" "sync/atomic" "time" "unicode" @@ -18,13 +19,13 @@ import ( "github.com/sentriz/gonic/server/subsonic" ) -func indexOf(s string) rune { - first := string(s[0]) - c := rune(unidecode.Unidecode(first)[0]) - if !unicode.IsLetter(c) { - return '#' +func indexOf(in byte) string { + lower := strings.ToLower(string(in)) + decode := unidecode.Unidecode(lower) + if !unicode.IsLetter(rune(decode[0])) { + return "#" } - return c + return decode } func (c *Controller) Stream(w http.ResponseWriter, r *http.Request) { diff --git a/server/handler/test_data/test_get_artists_no_args b/server/handler/test_data/test_get_artists_no_args index a466b17..a7f5358 100644 --- a/server/handler/test_data/test_get_artists_no_args +++ b/server/handler/test_data/test_get_artists_no_args @@ -14,7 +14,7 @@ ] }, { - "name": "A", + "name": "a", "artist": [ { "id": 1, diff --git a/server/handler/test_data/test_get_indexes_no_args b/server/handler/test_data/test_get_indexes_no_args index 31976a6..f988b22 100644 --- a/server/handler/test_data/test_get_indexes_no_args +++ b/server/handler/test_data/test_get_indexes_no_args @@ -19,7 +19,7 @@ ] }, { - "name": "A", + "name": "a", "artist": [ { "id": 2,