Set URI on local playlists when reading from disk (#217)
This commit is contained in:
parent
fd88b974e8
commit
d8378e9284
@ -6,6 +6,7 @@ import shutil
|
||||
from mopidy import settings
|
||||
from mopidy.backends import base
|
||||
from mopidy.models import Playlist
|
||||
from mopidy.utils import path
|
||||
|
||||
from .translator import parse_m3u
|
||||
|
||||
@ -27,14 +28,15 @@ class LocalStoredPlaylistsProvider(base.BaseStoredPlaylistsProvider):
|
||||
logger.info('Loading playlists from %s', self._folder)
|
||||
|
||||
for m3u in glob.glob(os.path.join(self._folder, '*.m3u')):
|
||||
uri = path.path_to_uri(m3u)
|
||||
name = os.path.splitext(os.path.basename(m3u))[0]
|
||||
tracks = []
|
||||
for uri in parse_m3u(m3u, settings.LOCAL_MUSIC_PATH):
|
||||
for track_uri in parse_m3u(m3u, settings.LOCAL_MUSIC_PATH):
|
||||
try:
|
||||
tracks.append(self.backend.library.lookup(uri))
|
||||
tracks.append(self.backend.library.lookup(track_uri))
|
||||
except LookupError as ex:
|
||||
logger.error('Playlist item could not be added: %s', ex)
|
||||
playlist = Playlist(tracks=tracks, name=name)
|
||||
playlist = Playlist(uri=uri, name=name, tracks=tracks)
|
||||
|
||||
# FIXME playlist name needs better handling
|
||||
# FIXME tracks should come from lib. lookup
|
||||
|
||||
@ -57,6 +57,8 @@ class LocalStoredPlaylistsControllerTest(
|
||||
self.assertEqual(uri, contents.strip())
|
||||
|
||||
def test_playlists_are_loaded_at_startup(self):
|
||||
playlist_path = os.path.join(settings.LOCAL_PLAYLIST_PATH, 'test.m3u')
|
||||
|
||||
track = Track(uri=path_to_uri(path_to_data_dir('uri2')))
|
||||
playlist = self.stored.create('test')
|
||||
playlist = playlist.copy(tracks=[track])
|
||||
@ -65,6 +67,9 @@ class LocalStoredPlaylistsControllerTest(
|
||||
backend = self.backend_class(audio=self.audio)
|
||||
|
||||
self.assert_(backend.stored_playlists.playlists)
|
||||
self.assertEqual(
|
||||
path_to_uri(playlist_path),
|
||||
backend.stored_playlists.playlists[0].uri)
|
||||
self.assertEqual(
|
||||
playlist.name, backend.stored_playlists.playlists[0].name)
|
||||
self.assertEqual(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user