Moved check for avoiding duplicate tracks in the playlist

Moved the check for whether queueing an album to the playlist will result in a
duplicated album at the end of the playlist. This should appear in the
_queue_album method, as it will also catch albums added to the playlist using
the queue button in the gui.
This commit is contained in:
alix 2020-10-12 20:40:31 +11:00
commit 3301c860f9

View file

@ -603,10 +603,7 @@ class Client(Base):
def _play_album(self, album): def _play_album(self, album):
if self._playlist and album == self._playlist[-1]._id: track_ids = self._queue_album(album)
track_ids = [self._playlist[-1].get_tracks()[0].get_id()]
else:
track_ids = self._queue_album(album)
if track_ids: if track_ids:
self._logger.info("play track %d", track_ids[0]) self._logger.info("play track %d", track_ids[0])
self._call('playid', track_ids[0]) self._call('playid', track_ids[0])
@ -614,6 +611,10 @@ class Client(Base):
def _queue_album(self, album): def _queue_album(self, album):
track_ids = [] track_ids = []
# check whether the album to queue is already the last in the playlist
if self._playlist and self._playlist[-1] == self._albums[album]:
# return the first song in the album
return [self._playlist[-1].get_tracks()[0].get_id()]
if album in self._albums: if album in self._albums:
self._logger.info("add album %s", album) self._logger.info("add album %s", album)
for track in self._albums[album].get_tracks(): for track in self._albums[album].get_tracks():