if not self.enabled:
self.log.debug('Queueing disabled!')
return False
- queue = self.player.queue
queue_trigger = self.config.getint('sima', 'queue_length')
- self.log.debug('Currently %s track(s) ahead. (target %s)', len(queue), queue_trigger)
+ if self.player.playmode.get('random'):
+ queue = self.player.playlist
+ self.log.debug('Currently %s track(s) in the playlist. (target %s)', len(queue), queue_trigger)
+ else:
+ queue = self.player.queue
+ self.log.debug('Currently %s track(s) ahead. (target %s)', len(queue), queue_trigger)
if len(queue) < queue_trigger:
return True
return False
* not blacklisted
"""
artist = tracks[0].artist
- black_list = self.player.queue + self.to_add
+ if self.player.playmode.get('random'):
+ black_list = self.player.playlist + self.to_add
+ else:
+ black_list = self.player.queue + self.to_add
not_in_hist = list(set(tracks) - set(self.get_history(artist=artist)))
if self.plugin_conf.get('queue_mode') != 'top' and not not_in_hist:
self.log.debug('All tracks already played for "%s"', artist)
if not self.player.playlist:
return
history = list(self.history)
- history = self.player.queue + history
+ if self.player.playmode.get('random'):
+ history = self.player.playlist + history
+ else:
+ history = self.player.queue + history
history = deque(history)
last_trk = history.popleft() # remove
extra_arts = list()
if not ret:
self.log.warning('Got nothing from music library.')
return []
- queued_artists = MetaContainer([trk.Artist for trk in self.player.queue])
+ if self.player.playmode.get('random'):
+ queued_artists = MetaContainer([trk.Artist for trk in self.player.playlist])
+ else:
+ queued_artists = MetaContainer([trk.Artist for trk in self.player.queue])
self.log.trace('Already queued: {}'.format(queued_artists))
self.log.trace('Candidate: {}'.format(ret))
if ret & queued_artists:
if tracks[0] in self.player.queue:
self.log.debug('"%s" already queued, skipping!', tracks[0].album)
continue
+ if tracks[0] in self.player.playlist:
+ if self.player.playmode.get('random'):
+ self.log.debug('"%s" already in playlist, skipping!', tracks[0].album)
+ continue
album_to_queue = album
if not album_to_queue:
self.log.info('No album found for "%s"', artist)
Called on player changes
"""
player = self.daemon.player
- if player.status().get('single') == str(1):
+ if player.playmode.get('single'):
self.log.info('MPD "single" mode activated.')
self.daemon.enabled = False
- elif player.status().get('repeat') == str(1):
+ elif player.playmode.get('repeat'):
self.log.info('MPD "repeat" mode activated.')
self.daemon.enabled = False
else: