From 9411ff14ce09c157b7b3606c1ab40bb9d0a07f1c Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Fri, 9 Sep 2016 18:12:30 -0500 Subject: [PATCH] Update token/user for connect module --- resources/lib/connect/connectionmanager.py | 20 -------------------- resources/lib/connectmanager.py | 4 ++++ resources/lib/initialsetup.py | 7 ++++++- resources/lib/userclient.py | 11 ++++++++++- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/resources/lib/connect/connectionmanager.py b/resources/lib/connect/connectionmanager.py index e227c424..6ddab3e5 100644 --- a/resources/lib/connect/connectionmanager.py +++ b/resources/lib/connect/connectionmanager.py @@ -645,26 +645,6 @@ class ConnectionManager(object): return result - def onAuthenticated(self, result, options={}): - - credentials = self.credentialProvider.getCredentials() - for s in credentials['Servers']: - if s['Id'] == result['ServerId']: - server = s - break - else: # Server not found? - return - - if options.get('updateDateLastAccessed') is not False: - server['DateLastAccessed'] = datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ') - - server['UserId'] = result['User']['Id'] - server['AccessToken'] = result['AccessToken'] - - self.credentialProvider.addOrUpdateServer(credentials['Servers'], server) - self._saveUserInfoIntoCredentials(server, result['User']) - self.credentialProvider.getCredentials(credentials) - def _onConnectUserSignIn(self, user): self.connectUser = user diff --git a/resources/lib/connectmanager.py b/resources/lib/connectmanager.py index 68086193..f44ad418 100644 --- a/resources/lib/connectmanager.py +++ b/resources/lib/connectmanager.py @@ -177,3 +177,7 @@ class ConnectManager(object): return user else: raise RuntimeError("User is not authenticated") + + def update_token(self, servers, server): + self._connect.credentialProvider.addOrUpdateServer(servers, server) + self.update_state() diff --git a/resources/lib/initialsetup.py b/resources/lib/initialsetup.py index 55c461a3..b34d0ee5 100644 --- a/resources/lib/initialsetup.py +++ b/resources/lib/initialsetup.py @@ -91,10 +91,15 @@ class InitialSetup(object): if settings('server'): current_state = self.connectmanager.get_state() for server in current_state['Servers']: + if server['Id'] == settings('serverId'): + # Update token + server['UserId'] = settings('userId') or None + server['AccessToken'] = settings('token') or None + self.connectmanager.update_token(current_state['Servers'], server) + server_address = self.connectmanager.get_address(server) self._set_server(server_address, server) - #self._set_user(server['UserId'], server['AccessToken']) log.info("Found server!") return True diff --git a/resources/lib/userclient.py b/resources/lib/userclient.py index 861291cb..40e7be54 100644 --- a/resources/lib/userclient.py +++ b/resources/lib/userclient.py @@ -39,6 +39,7 @@ class UserClient(threading.Thread): self.doutils = downloadutils.DownloadUtils() self.download = self.doutils.downloadUrl self.emby = embyserver.Read_EmbyServer() + self.connectmanager = connectmanager.ConnectManager() threading.Thread.__init__(self) @@ -180,7 +181,7 @@ class UserClient(threading.Thread): user_found = user break try: - user = connectmanager.ConnectManager().login_manual(server, user_found) + user = self.connectmanager.login_manual(server, user_found) except RuntimeError: window('emby_serverStatus', value="stop") self._auth = False @@ -246,6 +247,14 @@ class UserClient(threading.Thread): self._user = None self.auth = None + current_state = self.connectmanager.get_state() + for server in current_state['Servers']: + + if server['Id'] == settings('serverId'): + # Update token + server['AccessToken'] = None + self.connectmanager.update_token(current_state['Servers'], server) + def run(self): monitor = xbmc.Monitor()