def __init__(self):
        self.addon = xbmcaddon.Addon(id=ADDON_ID)
        self.win = xbmcgui.Window(10000)
        self.kodimonitor = xbmc.Monitor()
        self.spotty = Spotty()

        # spotipy and the webservice are always prestarted in the background
        # the auth key for spotipy will be set afterwards
        # the webserver is also used for the authentication callbacks from spotify api
        self.sp = spotipy.Spotify()
        self.connect_player = ConnectPlayer(sp=self.sp)

        self.proxy_runner = ProxyRunner(self.spotty, self.connect_player)
        self.proxy_runner.start()
        webport = self.proxy_runner.get_port()
        log_msg('started webproxy at port {0}'.format(webport))

        # kill all pre-existing spotty instances
        kill_spotty()

        # authenticate at startup
        self.renew_token()

        # start mainloop
        self.main_loop()
Esempio n. 2
0
 def close(self):
     '''shutdown, perform cleanup'''
     log_msg('Shutdown requested !', xbmc.LOGNOTICE)
     kill_spotty()
     self.proxy_runner.stop()
     self.connect_player.close()
     del self.connect_player
     del self.addon
     del self.kodimonitor
     log_msg('stopped', xbmc.LOGNOTICE)