backend-spotify: implement a container manager (fixes GH59)
This commit is contained in:
parent
fc9875bf3d
commit
f73ba3bd62
16
mopidy/backends/spotify/container_manager.py
Normal file
16
mopidy/backends/spotify/container_manager.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import logging
|
||||||
|
|
||||||
|
from spotify.manager import SpotifyContainerManager as PyspotifyContainerManager
|
||||||
|
|
||||||
|
logger = logging.getLogger('mopidy.backends.spotify.container_manager')
|
||||||
|
|
||||||
|
class SpotifyContainerManager(PyspotifyContainerManager):
|
||||||
|
|
||||||
|
def __init__(self, session_manager):
|
||||||
|
PyspotifyContainerManager.__init__(self)
|
||||||
|
self.session_manager = session_manager
|
||||||
|
|
||||||
|
def container_loaded(self, container, userdata):
|
||||||
|
"""Callback used by pyspotify."""
|
||||||
|
logger.debug(u'Container loaded')
|
||||||
|
self.session_manager.refresh_stored_playlists()
|
||||||
@ -12,6 +12,7 @@ from mopidy.backends.spotify.translator import SpotifyTranslator
|
|||||||
from mopidy.models import Playlist
|
from mopidy.models import Playlist
|
||||||
from mopidy.gstreamer import GStreamer
|
from mopidy.gstreamer import GStreamer
|
||||||
from mopidy.utils.process import BaseThread
|
from mopidy.utils.process import BaseThread
|
||||||
|
from mopidy.backends.spotify.container_manager import SpotifyContainerManager
|
||||||
|
|
||||||
logger = logging.getLogger('mopidy.backends.spotify.session_manager')
|
logger = logging.getLogger('mopidy.backends.spotify.session_manager')
|
||||||
|
|
||||||
@ -35,6 +36,8 @@ class SpotifySessionManager(BaseThread, PyspotifySessionManager):
|
|||||||
self.connected = threading.Event()
|
self.connected = threading.Event()
|
||||||
self.session = None
|
self.session = None
|
||||||
|
|
||||||
|
self.container_manager = None
|
||||||
|
|
||||||
def run_inside_try(self):
|
def run_inside_try(self):
|
||||||
self.setup()
|
self.setup()
|
||||||
self.connect()
|
self.connect()
|
||||||
@ -61,6 +64,8 @@ class SpotifySessionManager(BaseThread, PyspotifySessionManager):
|
|||||||
else:
|
else:
|
||||||
logger.debug(u'Preferring normal bitrate from Spotify')
|
logger.debug(u'Preferring normal bitrate from Spotify')
|
||||||
self.session.set_preferred_bitrate(0)
|
self.session.set_preferred_bitrate(0)
|
||||||
|
self.container_manager = SpotifyContainerManager(self)
|
||||||
|
self.container_manager.watch(self.session.playlist_container())
|
||||||
self.connected.set()
|
self.connected.set()
|
||||||
|
|
||||||
def logged_out(self, session):
|
def logged_out(self, session):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user