Load tracks when stored playlist is initialised
This commit is contained in:
parent
0f26329455
commit
32dcabafc3
@ -9,12 +9,14 @@ pygst.require('0.10')
|
||||
import gst
|
||||
import logging
|
||||
import os
|
||||
import glob
|
||||
import shutil
|
||||
import threading
|
||||
|
||||
from mopidy.backends import *
|
||||
from mopidy.models import Playlist
|
||||
from mopidy.models import Playlist, Track
|
||||
from mopidy import settings
|
||||
from mopidy.utils import m3u_to_uris
|
||||
|
||||
logger = logging.getLogger(u'backends.gstreamer')
|
||||
|
||||
@ -112,6 +114,16 @@ class GStreamerStoredPlaylistsController(BaseStoredPlaylistsController):
|
||||
super(GStreamerStoredPlaylistsController, self).__init__(*args)
|
||||
self._folder = os.path.expanduser(settings.PLAYLIST_FOLDER)
|
||||
|
||||
for m3u in glob.glob(os.path.join(self._folder, '*.m3u')):
|
||||
name = os.path.basename(m3u)[:len('.m3u')]
|
||||
track_uris = m3u_to_uris(m3u)
|
||||
tracks = map(lambda u: Track(uri=u), track_uris)
|
||||
playlist = Playlist(tracks=tracks, name=name)
|
||||
|
||||
# FIXME playlist name needs better handling
|
||||
|
||||
self._playlists.append(playlist)
|
||||
|
||||
def create(self, name):
|
||||
playlist = Playlist(name=name)
|
||||
self.save(playlist)
|
||||
|
||||
@ -2,9 +2,10 @@ import unittest
|
||||
import os
|
||||
import urllib
|
||||
|
||||
from mopidy.models import Playlist, Track
|
||||
from mopidy.backends.gstreamer import GStreamerBackend
|
||||
from mopidy import settings
|
||||
from mopidy.backends.gstreamer import GStreamerBackend
|
||||
from mopidy.mixers.dummy import DummyMixer
|
||||
from mopidy.models import Playlist, Track
|
||||
|
||||
from tests.backends.base import *
|
||||
from tests import SkipTest
|
||||
@ -93,6 +94,22 @@ class GStreamerBackendStoredPlaylistsControllerTest(BaseStoredPlaylistsControlle
|
||||
|
||||
self.assertEqual(uri, contents.strip())
|
||||
|
||||
def test_playlists_are_loaded_at_startup(self):
|
||||
track = Track(uri=generate_song(1))
|
||||
uri = track.uri[len('file:'):]
|
||||
playlist = Playlist(tracks=[track], name='test')
|
||||
file_path = os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u')
|
||||
|
||||
self.stored.save(playlist)
|
||||
|
||||
self.backend.destroy()
|
||||
self.backend = self.backend_class(mixer=DummyMixer())
|
||||
self.stored = self.backend.stored_playlists
|
||||
|
||||
self.assert_(self.stored.playlists)
|
||||
self.assertEqual('test', self.stored.playlists[0].name)
|
||||
self.assertEqual(track.uri, self.stored.playlists[0].tracks[0].uri)
|
||||
|
||||
def test_santitising_of_playlist_filenames(self):
|
||||
raise SkipTest
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user