Merge branch 'feature/tag-cache-extra-key-handling' into develop

This commit is contained in:
Thomas Adamcik 2010-11-01 23:17:03 +01:00
commit 74d004d6fe
2 changed files with 16 additions and 26 deletions

View File

@ -6,7 +6,7 @@ from mopidy.utils.path import mtime as get_mtime
from mopidy.frontends.mpd import protocol
from mopidy.utils.path import path_to_uri, uri_to_path, split_path
def track_to_mpd_format(track, position=None, cpid=None, key=False, mtime=False):
def track_to_mpd_format(track, position=None, cpid=None):
"""
Format track for output to MPD client.
@ -41,10 +41,6 @@ def track_to_mpd_format(track, position=None, cpid=None, key=False, mtime=False)
if position is not None and cpid is not None:
result.append(('Pos', position))
result.append(('Id', cpid))
if key and track.uri:
result.insert(0, ('key', os.path.basename(uri_to_path(track.uri))))
if mtime and track.uri:
result.append(('mtime', get_mtime(uri_to_path(track.uri))))
return result
MPD_KEY_ORDER = '''
@ -127,9 +123,11 @@ def tracks_to_tag_cache_format(tracks):
return result
def _add_to_tag_cache(result, folders, files):
music_folder = settings.LOCAL_MUSIC_PATH
regexp = '^' + re.escape(music_folder).rstrip('/') + '/?'
for path, entry in folders.items():
name = os.path.split(path)[1]
music_folder = settings.LOCAL_MUSIC_PATH
mtime = get_mtime(os.path.join(music_folder, path))
result.append(('directory', path))
result.append(('mtime', mtime))
@ -139,8 +137,11 @@ def _add_to_tag_cache(result, folders, files):
result.append(('songList begin',))
for track in files:
track_result = track_to_mpd_format(track, key=True, mtime=True)
track_result = order_mpd_track_info(track_result)
track_result = dict(track_to_mpd_format(track))
path = uri_to_path(track_result['file'])
track_result['mtime'] = get_mtime(path)
track_result['file'] = re.sub(regexp, '', path)
track_result = order_mpd_track_info(track_result.items())
result.extend(track_result)
result.append(('songList end',))

View File

@ -3,7 +3,7 @@ import os
import unittest
from mopidy import settings
from mopidy.utils.path import mtime
from mopidy.utils.path import mtime, uri_to_path
from mopidy.frontends.mpd import translator, protocol
from mopidy.models import Album, Artist, Playlist, Track
@ -42,21 +42,6 @@ class TrackMpdFormatTest(unittest.TestCase):
self.assert_(('Pos', 1) in result)
self.assert_(('Id', 2) in result)
def test_track_to_mpd_format_with_key(self):
track = Track(uri='file:///dir/subdir/file.mp3')
result = translator.track_to_mpd_format(track, key=True)
self.assert_(('key', 'file.mp3') in result)
def test_track_to_mpd_format_with_key_not_uri_encoded(self):
track = Track(uri='file:///dir/subdir/file%20test.mp3')
result = translator.track_to_mpd_format(track, key=True)
self.assert_(('key', 'file test.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)
self.assert_(('mtime', 1234567) in result)
def test_track_to_mpd_format_for_nonempty_track(self):
track = Track(
uri=u'a uri',
@ -112,8 +97,12 @@ class TracksToTagCacheFormatTest(unittest.TestCase):
mtime.undo_fake()
def translate(self, track):
result = translator.track_to_mpd_format(track, key=True, mtime=True)
return translator.order_mpd_track_info(result)
folder = settings.LOCAL_MUSIC_PATH
result = dict(translator.track_to_mpd_format(track))
result['file'] = uri_to_path(result['file'])
result['file'] = result['file'][len(folder)+1:]
result['mtime'] = mtime('')
return translator.order_mpd_track_info(result.items())
def consume_headers(self, result):
self.assertEqual(('info_begin',), result[0])