@@ -206,30 +206,44 @@ func (c *Controller) ServeGetPlayQueue(r *http.Request) *spec.Response {
206206 sub .PlayQueue .ChangedBy = queue .ChangedBy
207207
208208 trackIDs := queue .GetItems ()
209- sub .PlayQueue .List = make ([]* spec.TrackChild , len (trackIDs ))
209+ sub .PlayQueue .List = make ([]* spec.TrackChild , 0 , len (trackIDs ))
210210
211211 transcodeMeta := streamGetTranscodeMeta (c .dbc , user .ID , params .GetOr ("c" , "" ))
212212
213- for i , id := range trackIDs {
213+ for _ , id := range trackIDs {
214214 switch id .Type {
215215 case specid .Track :
216- track := db.Track {}
217- c .dbc .
216+ var track db.Track
217+ err := c .dbc .
218218 Where ("id=?" , id .Value ).
219219 Preload ("Album" ).
220220 Preload ("Artists" ).
221221 Preload ("TrackStar" , "user_id=?" , user .ID ).
222222 Preload ("TrackRating" , "user_id=?" , user .ID ).
223- Find (& track )
224- sub .PlayQueue .List [i ] = spec .NewTCTrackByFolder (& track , track .Album )
225- sub .PlayQueue .List [i ].TranscodeMeta = transcodeMeta
223+ Find (& track ).
224+ Error
225+ if err != nil && ! errors .Is (err , gorm .ErrRecordNotFound ) {
226+ return spec .NewError (0 , "error finding track" )
227+ }
228+ if track .ID != 0 {
229+ tc := spec .NewTCTrackByFolder (& track , track .Album )
230+ tc .TranscodeMeta = transcodeMeta
231+ sub .PlayQueue .List = append (sub .PlayQueue .List , tc )
232+ }
226233 case specid .PodcastEpisode :
227- pe := db.PodcastEpisode {}
228- c .dbc .
234+ var pe db.PodcastEpisode
235+ err := c .dbc .
229236 Where ("id=?" , id .Value ).
230- Find (& pe )
231- sub .PlayQueue .List [i ] = spec .NewTCPodcastEpisode (& pe )
232- sub .PlayQueue .List [i ].TranscodeMeta = transcodeMeta
237+ Find (& pe ).
238+ Error
239+ if err != nil && ! errors .Is (err , gorm .ErrRecordNotFound ) {
240+ return spec .NewError (0 , "error finding podcast episode" )
241+ }
242+ if pe .ID != 0 {
243+ tc := spec .NewTCPodcastEpisode (& pe )
244+ tc .TranscodeMeta = transcodeMeta
245+ sub .PlayQueue .List = append (sub .PlayQueue .List , tc )
246+ }
233247 }
234248 }
235249 return sub
0 commit comments