local: Temporary workaround for issue #527

Adds a fallback to `Track(uri=uri` when track lookup fails for playlists. This
means we can at least load metadata less tracks giving users functioning
playlists, instead of only supporting `local:track:...` style URIs.

Issue is not fixed, but this is sufficient to reduce priority until we get to
the larger planed refactor for this and other core API issues.
This commit is contained in:
Thomas Adamcik 2013-10-20 13:26:38 +02:00
parent 8561e9c815
commit 0f6176a3b4

View File

@ -6,7 +6,7 @@ import os
import shutil
from mopidy.backends import base, listener
from mopidy.models import Playlist
from mopidy.models import Playlist, Track
from mopidy.utils import formatting, path
from .translator import parse_m3u
@ -52,11 +52,12 @@ class LocalPlaylistsProvider(base.BasePlaylistsProvider):
tracks = []
for track_uri in parse_m3u(m3u, self._media_dir):
try:
# TODO We must use core.library.lookup() to support tracks
# TODO: We must use core.library.lookup() to support tracks
# from other backends
tracks += self.backend.library.lookup(track_uri)
except LookupError as ex:
logger.warning('Playlist item could not be added: %s', ex)
# TODO: this is just a quick workaround for issue #527.
tracks.append(Track(uri=track_uri))
playlist = Playlist(uri=uri, name=name, tracks=tracks)
playlists.append(playlist)