Release v0.6.1
This commit is contained in:
commit
8d60ed5f93
@ -5,6 +5,24 @@ Changes
|
||||
This change log is used to track all major changes to Mopidy.
|
||||
|
||||
|
||||
v0.6.1 (2011-12-28)
|
||||
===================
|
||||
|
||||
This is a maintenance release to make Mopidy 0.6 work with pyspotify >= 1.5,
|
||||
which Mopidy's develop branch have supported for a long time. This should also
|
||||
make the Debian packages work out of the box again.
|
||||
|
||||
**Important changes**
|
||||
|
||||
- pyspotify 1.5 or greater is required.
|
||||
|
||||
**Changes**
|
||||
|
||||
- Spotify playlist folder boundaries are now properly detected. In other words,
|
||||
if you use playlist folders, you will no longer get lots of log messages
|
||||
about bad playlists.
|
||||
|
||||
|
||||
v0.6.0 (2011-10-09)
|
||||
===================
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ import os
|
||||
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
VERSION = (0, 6, 0)
|
||||
VERSION = (0, 6, 1)
|
||||
|
||||
DATA_PATH = os.path.join(glib.get_user_data_dir(), 'mopidy')
|
||||
CACHE_PATH = os.path.join(glib.get_user_cache_dir(), 'mopidy')
|
||||
|
||||
@ -13,13 +13,15 @@ class SpotifyContainerManager(PyspotifyContainerManager):
|
||||
def container_loaded(self, container, userdata):
|
||||
"""Callback used by pyspotify"""
|
||||
logger.debug(u'Callback called: playlist container loaded')
|
||||
|
||||
self.session_manager.refresh_stored_playlists()
|
||||
|
||||
playlist_container = self.session_manager.session.playlist_container()
|
||||
for playlist in playlist_container:
|
||||
self.session_manager.playlist_manager.watch(playlist)
|
||||
logger.debug(u'Watching %d playlist(s) for changes',
|
||||
len(playlist_container))
|
||||
count = 0
|
||||
for playlist in self.session_manager.session.playlist_container():
|
||||
if playlist.type() == 'playlist':
|
||||
self.session_manager.playlist_manager.watch(playlist)
|
||||
count += 1
|
||||
logger.debug(u'Watching %d playlist(s) for changes', count)
|
||||
|
||||
def playlist_added(self, container, playlist, position, userdata):
|
||||
"""Callback used by pyspotify"""
|
||||
|
||||
@ -139,10 +139,8 @@ class SpotifySessionManager(BaseThread, PyspotifySessionManager):
|
||||
def refresh_stored_playlists(self):
|
||||
"""Refresh the stored playlists in the backend with fresh meta data
|
||||
from Spotify"""
|
||||
playlists = []
|
||||
for spotify_playlist in self.session.playlist_container():
|
||||
playlists.append(
|
||||
SpotifyTranslator.to_mopidy_playlist(spotify_playlist))
|
||||
playlists = map(SpotifyTranslator.to_mopidy_playlist,
|
||||
self.session.playlist_container())
|
||||
playlists = filter(None, playlists)
|
||||
self.backend.stored_playlists.playlists = playlists
|
||||
logger.debug(u'Refreshed %d stored playlist(s)', len(playlists))
|
||||
@ -163,5 +161,6 @@ class SpotifySessionManager(BaseThread, PyspotifySessionManager):
|
||||
|
||||
def logout(self):
|
||||
"""Log out from spotify"""
|
||||
logger.debug(u'Logging out from spotify')
|
||||
self.session.logout()
|
||||
logger.debug(u'Logging out from Spotify')
|
||||
if self.session:
|
||||
self.session.logout()
|
||||
|
||||
@ -51,9 +51,8 @@ class SpotifyTranslator(object):
|
||||
def to_mopidy_playlist(cls, spotify_playlist):
|
||||
if not spotify_playlist.is_loaded():
|
||||
return Playlist(name=u'[loading...]')
|
||||
# FIXME Replace this try-except with a check on the playlist type,
|
||||
# which is currently not supported by pyspotify, to avoid handling
|
||||
# playlist folder boundaries like normal playlists.
|
||||
if spotify_playlist.type() != 'playlist':
|
||||
return
|
||||
try:
|
||||
return Playlist(
|
||||
uri=str(Link.from_playlist(spotify_playlist)),
|
||||
@ -63,5 +62,4 @@ class SpotifyTranslator(object):
|
||||
if str(Link.from_track(t, 0))],
|
||||
)
|
||||
except SpotifyError, e:
|
||||
logger.info(u'Failed translating Spotify playlist '
|
||||
'(probably a playlist folder boundary): %s', e)
|
||||
logger.warning(u'Failed translating Spotify playlist: %s', e)
|
||||
|
||||
@ -22,8 +22,9 @@ class VersionTest(unittest.TestCase):
|
||||
self.assert_(SV('0.3.1') < SV('0.4.0'))
|
||||
self.assert_(SV('0.4.0') < SV('0.4.1'))
|
||||
self.assert_(SV('0.4.1') < SV('0.5.0'))
|
||||
self.assert_(SV('0.5.0') < SV(get_plain_version()))
|
||||
self.assert_(SV(get_plain_version()) < SV('0.6.1'))
|
||||
self.assert_(SV('0.5.0') < SV('0.6.0'))
|
||||
self.assert_(SV('0.6.0') < SV(get_plain_version()))
|
||||
self.assert_(SV(get_plain_version()) < SV('0.7.0'))
|
||||
|
||||
def test_get_platform_contains_platform(self):
|
||||
self.assert_(platform.platform() in get_platform())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user