diff --git a/mopidy/frontends/mpd/translator.py b/mopidy/frontends/mpd/translator.py index 49fc064d..87708da5 100644 --- a/mopidy/frontends/mpd/translator.py +++ b/mopidy/frontends/mpd/translator.py @@ -1,10 +1,11 @@ +import os import re from mopidy import settings from mopidy.frontends.mpd import protocol from mopidy.utils.path import path_to_uri -def track_to_mpd_format(track, position=None, cpid=None): +def track_to_mpd_format(track, position=None, cpid=None, key=None): """ Format track for output to MPD client. @@ -32,6 +33,8 @@ def track_to_mpd_format(track, position=None, cpid=None): if position is not None and cpid is not None: result.append(('Pos', position)) result.append(('Id', cpid)) + if key is not None: + result.insert(0, ('key', key)) return result def track_artists_to_mpd_format(track): diff --git a/tests/frontends/mpd/serializer_test.py b/tests/frontends/mpd/serializer_test.py index 09db3394..ba4e8f18 100644 --- a/tests/frontends/mpd/serializer_test.py +++ b/tests/frontends/mpd/serializer_test.py @@ -36,6 +36,10 @@ class TrackMpdFormatTest(unittest.TestCase): self.assert_(('Pos', 1) in result) self.assert_(('Id', 2) in result) + def test_mpd_format_with_key(self): + result = translator.track_to_mpd_format(Track(), key='file.mp3') + self.assert_(('key', 'file.mp3') in result) + def test_mpd_format_track_uses_uri_to_mpd_relative_path(self): track = Track(uri='file:///dir/subdir/song.mp3') path = dict(translator.track_to_mpd_format(track))['file']