Add option to get mtime set in translator
This commit is contained in:
parent
d785b9b14e
commit
8d1339ef7f
@ -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):
|
||||
|
||||
@ -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']
|
||||
|
||||
Loading…
Reference in New Issue
Block a user