diff --git a/mopidy/frontends/mpd/translator.py b/mopidy/frontends/mpd/translator.py index 3f7a6adf..41d2af5c 100644 --- a/mopidy/frontends/mpd/translator.py +++ b/mopidy/frontends/mpd/translator.py @@ -3,9 +3,9 @@ import re from mopidy import settings from mopidy.frontends.mpd import protocol -from mopidy.utils.path import path_to_uri +from mopidy.utils.path import path_to_uri, uri_to_path -def track_to_mpd_format(track, position=None, cpid=None, key=None): +def track_to_mpd_format(track, position=None, cpid=None, key=False, mtime=False): """ Format track for output to MPD client. @@ -35,6 +35,9 @@ def track_to_mpd_format(track, position=None, cpid=None, key=None): result.append(('Id', cpid)) if key and track.uri: result.insert(0, ('key', os.path.basename(track.uri))) + if mtime and track.uri: + mtime = os.stat(uri_to_path(track.uri)).st_mtime + result.append(('mtime', int(mtime))) 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 de0a6814..689347fe 100644 --- a/tests/frontends/mpd/serializer_test.py +++ b/tests/frontends/mpd/serializer_test.py @@ -5,6 +5,8 @@ from mopidy import settings from mopidy.frontends.mpd import translator, protocol from mopidy.models import Album, Artist, Playlist, Track +from tests import data_folder + class TrackMpdFormatTest(unittest.TestCase): def setUp(self): settings.LOCAL_MUSIC_FOLDER = '/dir/subdir' @@ -41,6 +43,12 @@ class TrackMpdFormatTest(unittest.TestCase): result = translator.track_to_mpd_format(track, key=True) self.assert_(('key', 'file.mp3') in result) + def test_track_to_mpd_format_with_mtime(self): + uri = translator.path_to_uri(data_folder('blank.mp3')) + result = translator.track_to_mpd_format(Track(uri=uri), mtime=True) + print result + self.assert_(('mtime', 1288125516) in result) + def test_track_to_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']