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
52
queue.go
52
queue.go
|
@ -33,10 +33,10 @@ type QueueTrackEntry struct {
|
||||||
QueueIdentifier queue.QueueIdentifier
|
QueueIdentifier queue.QueueIdentifier
|
||||||
Path string
|
Path string
|
||||||
Metadata struct {
|
Metadata struct {
|
||||||
Title string `json:"title"`
|
Title interface{} `json:"title"`
|
||||||
Album string `json:"album"`
|
Album interface{} `json:"album"`
|
||||||
Artist string `json:"artist"`
|
Artist interface{} `json:"artist"`
|
||||||
Art string `json:"art"`
|
Art string `json:"art"`
|
||||||
ReplayGain struct {
|
ReplayGain struct {
|
||||||
TrackPeak float64 `json:"track_peak"`
|
TrackPeak float64 `json:"track_peak"`
|
||||||
TrackGain float64 `json:"track_gain"`
|
TrackGain float64 `json:"track_gain"`
|
||||||
|
@ -50,6 +50,36 @@ type QueueTrackEntry struct {
|
||||||
original map[string]interface{}
|
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 {
|
func (e *QueueTrackEntry) Load() error {
|
||||||
if e.source != nil {
|
if e.source != nil {
|
||||||
return nil
|
return nil
|
||||||
|
@ -105,16 +135,16 @@ func (e *QueueTrackEntry) Load() error {
|
||||||
|
|
||||||
//apply tags found on file
|
//apply tags found on file
|
||||||
if meta != nil {
|
if meta != nil {
|
||||||
if e.Metadata.Title == "" {
|
if e.Title() == "" {
|
||||||
e.Metadata.Title = meta.Title()
|
e.Metadata.Title = meta.Title()
|
||||||
}
|
}
|
||||||
if e.Metadata.Album == "" {
|
if e.Album() == "" {
|
||||||
e.Metadata.Album = meta.Album()
|
e.Metadata.Album = meta.Album()
|
||||||
}
|
}
|
||||||
if e.Metadata.Artist == "" {
|
if e.Artist() == "" {
|
||||||
e.Metadata.Artist = meta.Artist()
|
e.Metadata.Artist = meta.Artist()
|
||||||
}
|
}
|
||||||
if e.Metadata.Artist == "" {
|
if e.Artist() == "" {
|
||||||
e.Metadata.Artist = meta.AlbumArtist()
|
e.Metadata.Artist = meta.AlbumArtist()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -752,10 +782,10 @@ func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Req
|
||||||
return requestDone.Error
|
return requestDone.Error
|
||||||
}
|
}
|
||||||
if metadataPacket, ok := packet.(*QueueMetadataPacket); ok {
|
if metadataPacket, ok := packet.(*QueueMetadataPacket); ok {
|
||||||
if len(metadataPacket.TrackEntry.Metadata.Artist) > 0 {
|
if len(metadataPacket.TrackEntry.Artist()) > 0 {
|
||||||
metadataToSend["StreamTitle"] = fmt.Sprintf("%s - %s", metadataPacket.TrackEntry.Metadata.Artist, metadataPacket.TrackEntry.Metadata.Title)
|
metadataToSend["StreamTitle"] = fmt.Sprintf("%s - %s", metadataPacket.TrackEntry.Artist(), metadataPacket.TrackEntry.Title())
|
||||||
} else {
|
} else {
|
||||||
metadataToSend["StreamTitle"] = metadataPacket.TrackEntry.Metadata.Title
|
metadataToSend["StreamTitle"] = metadataPacket.TrackEntry.Title()
|
||||||
}
|
}
|
||||||
if len(metadataPacket.TrackEntry.Metadata.Art) > 0 {
|
if len(metadataPacket.TrackEntry.Metadata.Art) > 0 {
|
||||||
metadataToSend["StreamURL"] = metadataPacket.TrackEntry.Metadata.Art
|
metadataToSend["StreamURL"] = metadataPacket.TrackEntry.Metadata.Art
|
||||||
|
|
Loading…
Reference in a new issue