diff --git a/backend/mediaprovider/model.go b/backend/mediaprovider/model.go index 9e7c896..3367512 100644 --- a/backend/mediaprovider/model.go +++ b/backend/mediaprovider/model.go @@ -170,7 +170,7 @@ type MediaItem interface { Copy() MediaItem } -func (t Track) Metadata() MediaItemMetadata { +func (t *Track) Metadata() MediaItemMetadata { return MediaItemMetadata{ Type: MediaItemTypeTrack, ID: t.ID, @@ -183,12 +183,13 @@ func (t Track) Metadata() MediaItemMetadata { Duration: t.Duration, } } + func (t *Track) Copy() MediaItem { new := *t return &new } -func (r RadioStation) Metadata() MediaItemMetadata { +func (r *RadioStation) Metadata() MediaItemMetadata { return MediaItemMetadata{ Type: MediaItemTypeRadioStation, ID: r.ID, diff --git a/sharedutil/sharedutil.go b/sharedutil/sharedutil.go index b549331..00bcfb7 100644 --- a/sharedutil/sharedutil.go +++ b/sharedutil/sharedutil.go @@ -84,10 +84,13 @@ func FindMediaItemByID(id string, items []mediaprovider.MediaItem) mediaprovider } func MediaItemIDOrEmptyStr(item mediaprovider.MediaItem) string { - if item == nil { - return "" + if tr, ok := item.(*mediaprovider.Track); ok && tr != nil { + return tr.ID } - return item.Metadata().ID + if rd, ok := item.(*mediaprovider.RadioStation); ok && rd != nil { + return rd.ID + } + return "" } func AlbumIDOrEmptyStr(track *mediaprovider.Track) string {