def API_queueAndPlay(self, uri, request): # If in tmpqueue and state is playing and there are tracks in tmpqueue. # Then remove the currently playing track. Since we do not want to queue tracks # from just "clicking around". playlist = Playlist.objects.get(id=self.active_playlist_id) if self.is_in_tmpqueue() and self.get_state() == 'playing' and playlist.tracks.count() >= 1: playlist.entry_set.all()[0].delete() tracks = self.dogvibes.create_tracks_from_uri(uri) e = None queue = Playlist.objects.get(id=self.tmpqueue_id) for track in tracks: e = Entry(playlist=queue, track=track) e.insert_at(0) self.play_track(queue.id, e.id) self.playlist_version += 1 self.needs_push_update = True request.finish()