From e575825c33e531406b9268a08b0b14ab7df5f403 Mon Sep 17 00:00:00 2001 From: Yash Jipkate <34203227+YashJipkate@users.noreply.github.com> Date: Fri, 26 Mar 2021 07:18:28 +0530 Subject: [PATCH] Add `/` to `_` mapping for paths based on tags. (#888) Closes #592 --- server/subsonic/helpers.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/subsonic/helpers.go b/server/subsonic/helpers.go index 030b1c550..906e5edd6 100644 --- a/server/subsonic/helpers.go +++ b/server/subsonic/helpers.go @@ -5,6 +5,7 @@ import ( "fmt" "mime" "net/http" + "strings" "github.com/navidrome/navidrome/consts" "github.com/navidrome/navidrome/model" @@ -151,7 +152,7 @@ func childFromMediaFile(ctx context.Context, mf model.MediaFile) responses.Child if ok && player.ReportRealPath { child.Path = mf.Path } else { - child.Path = fmt.Sprintf("%s/%s/%s.%s", realArtistName(mf), mf.Album, mf.Title, mf.Suffix) + child.Path = fmt.Sprintf("%s/%s/%s.%s", mapSlashToDash(realArtistName(mf)), mapSlashToDash(mf.Album), mapSlashToDash(mf.Title), mf.Suffix) } child.DiscNumber = mf.DiscNumber child.Created = &mf.CreatedAt @@ -184,6 +185,10 @@ func realArtistName(mf model.MediaFile) string { return mf.Artist } +func mapSlashToDash(target string) string { + return strings.ReplaceAll(target, "/", "_") +} + func childrenFromMediaFiles(ctx context.Context, mfs model.MediaFiles) []responses.Child { children := make([]responses.Child, len(mfs)) for i, mf := range mfs {