fix nil interface bug

This commit is contained in:
Drew Weymouth
2024-06-01 10:32:52 -07:00
parent 82d4546096
commit 3d6bd910f2
2 changed files with 9 additions and 5 deletions
+3 -2
View File
@@ -170,7 +170,7 @@ type MediaItem interface {
Copy() MediaItem Copy() MediaItem
} }
func (t Track) Metadata() MediaItemMetadata { func (t *Track) Metadata() MediaItemMetadata {
return MediaItemMetadata{ return MediaItemMetadata{
Type: MediaItemTypeTrack, Type: MediaItemTypeTrack,
ID: t.ID, ID: t.ID,
@@ -183,12 +183,13 @@ func (t Track) Metadata() MediaItemMetadata {
Duration: t.Duration, Duration: t.Duration,
} }
} }
func (t *Track) Copy() MediaItem { func (t *Track) Copy() MediaItem {
new := *t new := *t
return &new return &new
} }
func (r RadioStation) Metadata() MediaItemMetadata { func (r *RadioStation) Metadata() MediaItemMetadata {
return MediaItemMetadata{ return MediaItemMetadata{
Type: MediaItemTypeRadioStation, Type: MediaItemTypeRadioStation,
ID: r.ID, ID: r.ID,
+6 -3
View File
@@ -84,10 +84,13 @@ func FindMediaItemByID(id string, items []mediaprovider.MediaItem) mediaprovider
} }
func MediaItemIDOrEmptyStr(item mediaprovider.MediaItem) string { func MediaItemIDOrEmptyStr(item mediaprovider.MediaItem) string {
if item == nil { if tr, ok := item.(*mediaprovider.Track); ok && tr != nil {
return "" 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 { func AlbumIDOrEmptyStr(track *mediaprovider.Track) string {