# -*- coding: utf-8 -*-
-# Copyright (c) 2009-2015 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2009-2019 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2019 sacha <sachahony@gmail.com>
#
# This file is part of sima
#
# local import
from .plugin import Plugin
from .track import Track
-from .meta import Artist, MetaContainer
+from .meta import Artist, Album, MetaContainer
from ..utils.utils import WSError, WSNotFound
def cache(func):
continue
self.log.info('%s album candidate: %s - %s', self.ws.name, artist, album_to_queue)
nb_album_add += 1
- self.to_add.extend(self.player.find_album(artist, album_to_queue))
+ candidates = self.player.find_tracks(Album(name=album_to_queue,
+ artist=artist))
+ if self.plugin_conf.getboolean('shuffle_album'):
+ random.shuffle(candidates)
+ # this allows to select a maximum number of track from the album
+ # a value of 0 (default) means keep all
+ nbtracks = self.plugin_conf.getint('track_to_add_from_album')
+ if nbtracks > 0:
+ candidates = candidates[0:nbtracks]
+ self.to_add.extend(candidates)
if nb_album_add == target_album_to_add:
return True
except WSError as err:
self.log.warning('%s: %s', self.ws.name, err)
for trk in titles:
- found = self.player.fuzzy_find_track(artist, trk.title)
+ found = self.player.search_track(artist, trk.title)
random.shuffle(found)
if found:
self.log.debug('%s', found[0])