From 3cf285f44e15aca964a2fdf9212ad98c4412fb6c Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Tue, 4 May 2010 21:35:57 +0200 Subject: [PATCH] despotify: Ignore local files in playlists Fixes initial hang on "Caching stored playlists". --- docs/changes.rst | 2 ++ mopidy/backends/despotify.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/changes.rst b/docs/changes.rst index 4421a6f8..5f15619b 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -24,6 +24,8 @@ This change log is used to track all major changes to Mopidy. - Made :class:`mopidy.mixers.alsa.AlsaMixer` work on machines without a mixer named "Master". +- Make :class:`mopidy.backends.DespotifyBackend` ignore local files in + playlists (feature added in Spotify 0.4.3). Reported by Richard Haugen Olsen. 0.1.0a0 (2010-03-27) diff --git a/mopidy/backends/despotify.py b/mopidy/backends/despotify.py index 8ea29d87..0fe9c506 100644 --- a/mopidy/backends/despotify.py +++ b/mopidy/backends/despotify.py @@ -137,6 +137,8 @@ class DespotifyTranslator(object): @classmethod def to_mopidy_track(cls, spotify_track): + if not spotify_track.has_meta_data(): + return None if dt.MINYEAR <= int(spotify_track.year) <= dt.MAXYEAR: date = dt.date(spotify_track.year, 1, 1) else: @@ -158,7 +160,7 @@ class DespotifyTranslator(object): return Playlist( uri=spotify_playlist.get_uri(), name=spotify_playlist.name.decode(ENCODING), - tracks=[cls.to_mopidy_track(t) for t in spotify_playlist.tracks], + tracks=filter(None, [cls.to_mopidy_track(t) for t in spotify_playlist.tracks]), )