Add libspotify backend which connects to Spotify and logs any calls to its callbacks

This commit is contained in:
Stein Magnus Jodal 2010-01-20 23:17:01 +01:00
parent a9f4860147
commit 2b8d692719
2 changed files with 53 additions and 2 deletions

View File

@ -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()

View File

@ -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()