mopidy-pummeluff/actions/tracklist.py

42 lines
971 B
Python

'''
Python module for Mopidy Pummeluff tracklist tag.
'''
__all__ = (
'Tracklist',
)
from logging import getLogger
from .base import Action
LOGGER = getLogger(__name__)
class Tracklist(Action):
'''
Replaces the current tracklist with the URI retreived from the tag's
parameter.
'''
@classmethod
def execute(cls, core, uri): # pylint: disable=arguments-differ
'''
Replace tracklist and play.
:param mopidy.core.Core core: The mopidy core instance
:param str uri: An URI for the tracklist replacement
'''
LOGGER.info('Replacing tracklist with URI "%s"', uri)
playlists = [playlist.uri for playlist in core.playlists.as_list().get()]
if uri in playlists:
uris = [item.uri for item in core.playlists.get_items(uri).get()]
else:
uris = [uri]
core.tracklist.clear()
core.tracklist.add(uris=uris)
core.playback.play()