Allow numeric title/album/artist on queue entries
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
f47ba3da89
commit
f9d5cb11ec
50
queue.go
50
queue.go
|
@ -33,9 +33,9 @@ type QueueTrackEntry struct {
|
|||
QueueIdentifier queue.QueueIdentifier
|
||||
Path string
|
||||
Metadata struct {
|
||||
Title string `json:"title"`
|
||||
Album string `json:"album"`
|
||||
Artist string `json:"artist"`
|
||||
Title interface{} `json:"title"`
|
||||
Album interface{} `json:"album"`
|
||||
Artist interface{} `json:"artist"`
|
||||
Art string `json:"art"`
|
||||
ReplayGain struct {
|
||||
TrackPeak float64 `json:"track_peak"`
|
||||
|
@ -50,6 +50,36 @@ type QueueTrackEntry struct {
|
|||
original map[string]interface{}
|
||||
}
|
||||
|
||||
func (e *QueueTrackEntry) Title() string {
|
||||
if strVal, ok := e.Metadata.Title.(string); ok {
|
||||
return strVal
|
||||
} else if intVal, ok := e.Metadata.Title.(int); ok {
|
||||
return strconv.Itoa(intVal)
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func (e *QueueTrackEntry) Album() string {
|
||||
if strVal, ok := e.Metadata.Album.(string); ok {
|
||||
return strVal
|
||||
} else if intVal, ok := e.Metadata.Album.(int); ok {
|
||||
return strconv.Itoa(intVal)
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func (e *QueueTrackEntry) Artist() string {
|
||||
if strVal, ok := e.Metadata.Artist.(string); ok {
|
||||
return strVal
|
||||
} else if intVal, ok := e.Metadata.Artist.(int); ok {
|
||||
return strconv.Itoa(intVal)
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func (e *QueueTrackEntry) Load() error {
|
||||
if e.source != nil {
|
||||
return nil
|
||||
|
@ -105,16 +135,16 @@ func (e *QueueTrackEntry) Load() error {
|
|||
|
||||
//apply tags found on file
|
||||
if meta != nil {
|
||||
if e.Metadata.Title == "" {
|
||||
if e.Title() == "" {
|
||||
e.Metadata.Title = meta.Title()
|
||||
}
|
||||
if e.Metadata.Album == "" {
|
||||
if e.Album() == "" {
|
||||
e.Metadata.Album = meta.Album()
|
||||
}
|
||||
if e.Metadata.Artist == "" {
|
||||
if e.Artist() == "" {
|
||||
e.Metadata.Artist = meta.Artist()
|
||||
}
|
||||
if e.Metadata.Artist == "" {
|
||||
if e.Artist() == "" {
|
||||
e.Metadata.Artist = meta.AlbumArtist()
|
||||
}
|
||||
|
||||
|
@ -752,10 +782,10 @@ func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Req
|
|||
return requestDone.Error
|
||||
}
|
||||
if metadataPacket, ok := packet.(*QueueMetadataPacket); ok {
|
||||
if len(metadataPacket.TrackEntry.Metadata.Artist) > 0 {
|
||||
metadataToSend["StreamTitle"] = fmt.Sprintf("%s - %s", metadataPacket.TrackEntry.Metadata.Artist, metadataPacket.TrackEntry.Metadata.Title)
|
||||
if len(metadataPacket.TrackEntry.Artist()) > 0 {
|
||||
metadataToSend["StreamTitle"] = fmt.Sprintf("%s - %s", metadataPacket.TrackEntry.Artist(), metadataPacket.TrackEntry.Title())
|
||||
} else {
|
||||
metadataToSend["StreamTitle"] = metadataPacket.TrackEntry.Metadata.Title
|
||||
metadataToSend["StreamTitle"] = metadataPacket.TrackEntry.Title()
|
||||
}
|
||||
if len(metadataPacket.TrackEntry.Metadata.Art) > 0 {
|
||||
metadataToSend["StreamURL"] = metadataPacket.TrackEntry.Metadata.Art
|
||||
|
|
Loading…
Reference in a new issue