diff --git a/mopidy/backends/base/current_playlist.py b/mopidy/backends/base/current_playlist.py index fe7d1de9..bd424a2d 100644 --- a/mopidy/backends/base/current_playlist.py +++ b/mopidy/backends/base/current_playlist.py @@ -2,8 +2,6 @@ from copy import copy import logging import random -from mopidy.frontends.mpd import translator - logger = logging.getLogger('mopidy.backends.base') class CurrentPlaylistController(object): @@ -197,8 +195,3 @@ class CurrentPlaylistController(object): random.shuffle(shuffled) self._cp_tracks = before + shuffled + after self.version += 1 - - def mpd_format(self, *args, **kwargs): - """Not a part of the generic backend API.""" - kwargs['cpids'] = [ct[0] for ct in self._cp_tracks] - return translator.tracks_to_mpd_format(self.tracks, *args, **kwargs) diff --git a/mopidy/frontends/mpd/protocol/current_playlist.py b/mopidy/frontends/mpd/protocol/current_playlist.py index 2f0a9f8f..13635a33 100644 --- a/mopidy/frontends/mpd/protocol/current_playlist.py +++ b/mopidy/frontends/mpd/protocol/current_playlist.py @@ -1,6 +1,7 @@ -from mopidy.frontends.mpd.protocol import handle_pattern from mopidy.frontends.mpd.exceptions import (MpdArgError, MpdNoExistError, MpdNotImplemented) +from mopidy.frontends.mpd.protocol import handle_pattern +from mopidy.frontends.mpd.translator import tracks_to_mpd_format @handle_pattern(r'^add "(?P[^"]*)"$') def add(frontend, uri): @@ -218,7 +219,9 @@ def playlistid(frontend, cpid=None): except LookupError: raise MpdNoExistError(u'No such song', command=u'playlistid') else: - return frontend.backend.current_playlist.mpd_format() + cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] + return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + cpids=cpids) @handle_pattern(r'^playlistinfo$') @handle_pattern(r'^playlistinfo "(?P-?\d+)"$') @@ -248,7 +251,9 @@ def playlistinfo(frontend, songpos=None, end = songpos + 1 if start == -1: end = None - return frontend.backend.current_playlist.mpd_format(start, end) + cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] + return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + start, end, cpids=cpids) else: if start is None: start = 0 @@ -259,7 +264,9 @@ def playlistinfo(frontend, songpos=None, end = int(end) if end > len(frontend.backend.current_playlist.tracks): end = None - return frontend.backend.current_playlist.mpd_format(start, end) + cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] + return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + start, end, cpids=cpids) @handle_pattern(r'^playlistsearch "(?P[^"]+)" "(?P[^"]+)"$') @handle_pattern(r'^playlistsearch (?P\S+) "(?P[^"]+)"$') @@ -298,7 +305,9 @@ def plchanges(frontend, version): """ # XXX Naive implementation that returns all tracks as changed if int(version) < frontend.backend.current_playlist.version: - return frontend.backend.current_playlist.mpd_format() + cpids = [ct[0] for ct in frontend.backend.current_playlist.cp_tracks] + return tracks_to_mpd_format(frontend.backend.current_playlist.tracks, + cpids=cpids) @handle_pattern(r'^plchangesposid "(?P\d+)"$') def plchangesposid(frontend, version):