From 3d6bd910f20029da913035f775d7e5c160952af2 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sat, 1 Jun 2024 10:32:52 -0700 Subject: [PATCH] fix nil interface bug --- backend/mediaprovider/model.go | 5 +++-- sharedutil/sharedutil.go | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) 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 {