diff --git a/.gopmfile b/.gopmfile index 58024ba72..64d460305 100644 --- a/.gopmfile +++ b/.gopmfile @@ -9,6 +9,7 @@ github.com/smartystreets/goconvey = commit:899ed5a github.com/karlkfi/inject = commit:fe06da2 github.com/dhowden/tag = commit:bccc91e github.com/nfnt/resize = commit:4d93a29 +github.com/kennygrant/sanitize = ce9fd1f github.com/deluan/gomate = [res] diff --git a/.travis.yml b/.travis.yml index 389ad5f3b..1410dc610 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ install: - go get github.com/smartystreets/goconvey - go get github.com/dhowden/tag - go get github.com/nfnt/resize + - go get github.com/kennygrant/sanitize - go get github.com/deluan/gomate script: diff --git a/engine/search.go b/engine/search.go index efaf53bbb..6c146fd84 100644 --- a/engine/search.go +++ b/engine/search.go @@ -5,6 +5,7 @@ import ( "github.com/deluan/gomate" "github.com/deluan/gosonic/domain" + "github.com/kennygrant/sanitize" ) type Results Entries @@ -50,19 +51,19 @@ func (s search) ClearAll() error { } func (s search) IndexArtist(ar *domain.Artist) error { - return s.idxArtist.Index(ar.Id, strings.ToLower(ar.Name)) + return s.idxArtist.Index(ar.Id, sanitize.Accents(strings.ToLower(ar.Name))) } func (s search) IndexAlbum(al *domain.Album) error { - return s.idxAlbum.Index(al.Id, strings.ToLower(al.Name)) + return s.idxAlbum.Index(al.Id, sanitize.Accents(strings.ToLower(al.Name))) } func (s search) IndexMediaFile(mf *domain.MediaFile) error { - return s.idxSong.Index(mf.Id, strings.ToLower(mf.Title)) + return s.idxSong.Index(mf.Id, sanitize.Accents(strings.ToLower(mf.Title))) } func (s search) SearchArtist(q string, offset int, size int) (*Results, error) { - q = strings.ToLower(strings.TrimSuffix(q, "*")) + q = sanitize.Accents(strings.ToLower(strings.TrimSuffix(q, "*"))) min := offset max := min + size - 1 resp, err := s.sArtist.Search(q, min, max) @@ -81,7 +82,7 @@ func (s search) SearchArtist(q string, offset int, size int) (*Results, error) { } func (s search) SearchAlbum(q string, offset int, size int) (*Results, error) { - q = strings.ToLower(strings.TrimSuffix(q, "*")) + q = sanitize.Accents(strings.ToLower(strings.TrimSuffix(q, "*"))) min := offset max := min + size - 1 resp, err := s.sAlbum.Search(q, min, max) @@ -100,7 +101,7 @@ func (s search) SearchAlbum(q string, offset int, size int) (*Results, error) { } func (s search) SearchSong(q string, offset int, size int) (*Results, error) { - q = strings.ToLower(strings.TrimSuffix(q, "*")) + q = sanitize.Accents(strings.ToLower(strings.TrimSuffix(q, "*"))) min := offset max := min + size - 1 resp, err := s.sSong.Search(q, min, max)