diff --git a/mopidy/__main__.py b/mopidy/__main__.py index df641038..bb856ced 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -8,11 +8,11 @@ sys.path.insert(0, from mopidy import config, ConfigError from mopidy.server import MpdServer -from mopidy.backends.despotify import DespotifyBackend +from mopidy.backends.libspotify import LibspotifyBackend def main(): _setup_logging(2) - backend = DespotifyBackend() + backend = LibspotifyBackend() MpdServer(backend=backend) asyncore.loop() diff --git a/mopidy/backends/libspotify.py b/mopidy/backends/libspotify.py new file mode 100644 index 00000000..a4a34ff6 --- /dev/null +++ b/mopidy/backends/libspotify.py @@ -0,0 +1,51 @@ +import logging + +from spotify.manager import SpotifySessionManager +from spotify.alsahelper import AlsaController + +from mopidy import config +from mopidy.backends.base import BaseBackend + +logger = logging.getLogger(u'backends.libspotify') + +class LibspotifySession(SpotifySessionManager): + def __init__(self, *args, **kwargs): + super(LibspotifySession, self).__init__(*args, **kwargs) + self.audio = AlsaController() + + def logged_in(self, session, error): + logger.info('Logged in') + + def logged_out(self, sess): + logger.info('Logged out') + + def metadata_updated(self, sess): + logger.debug('Metadata updated') + + def connection_error(self, sess, error): + logger.error('Connection error: %s', error) + + def message_to_user(self, sess, message): + logger.info(message) + + def notify_main_thread(self, sess): + logger.debug('Notify main thread') + + def music_delivery(self, *args, **kwargs): + self.audio.music_delivery(*args, **kwargs) + + def play_token_lost(self, sess): + logger.debug('Play token lost') + + def log_message(self, sess, data): + logger.debug(data) + + def end_of_track(self, sess): + logger.debug('End of track') + +class LibspotifyBackend(BaseBackend): + def __init__(self, *args, **kwargs): + self.spotify = LibspotifySession( + config.SPOTIFY_USERNAME, config.SPOTIFY_PASSWORD) + logger.info(u'Connecting to Spotify') + self.spotify.connect()