diff --git a/scanner/mapping.go b/scanner/mapping.go index 81267d4f0..500f2d194 100644 --- a/scanner/mapping.go +++ b/scanner/mapping.go @@ -141,12 +141,12 @@ func (s mediaFileMapper) mapGenres(genres []string) (string, model.Genres) { var result model.Genres unique := map[string]struct{}{} var all []string - separators := conf.Server.Scanner.GenreSeparators + " " for i := range genres { gs := strings.FieldsFunc(genres[i], func(r rune) bool { - return strings.ContainsRune(separators, r) + return strings.ContainsRune(conf.Server.Scanner.GenreSeparators, r) }) - for _, g := range gs { + for j := range gs { + g := strings.TrimSpace(gs[j]) key := strings.ToLower(g) if _, ok := unique[key]; ok { continue diff --git a/scanner/mapping_test.go b/scanner/mapping_test.go index 57d357032..02279b76e 100644 --- a/scanner/mapping_test.go +++ b/scanner/mapping_test.go @@ -67,5 +67,10 @@ var _ = Describe("mapping", func() { Expect(gs[1].Name).To(Equal("Dance")) Expect(gs[2].Name).To(Equal("Electronic")) }) + It("does not break on spaces", func() { + _, gs := mapper.mapGenres([]string{"New Wave"}) + Expect(gs).To(HaveLen(1)) + Expect(gs[0].Name).To(Equal("New Wave")) + }) }) })