def setup_login_manual(self): ''' Setup manual login by itself for default server. ''' client = self.get_client() client.set_credentials(get_credentials()) manager = client.auth try: self.login_manual(manager=manager) except RuntimeError: return credentials = client.get_credentials() save_credentials(credentials)
def setup_manual_server(self): ''' Setup manual servers ''' client = self.get_client() client.set_credentials(get_credentials()) manager = client.auth try: self.manual_server(manager) except RuntimeError: return credentials = client.get_credentials() save_credentials(credentials)
def setup_login_connect(self): ''' Setup emby connect by itself. ''' client = self.get_client() client.set_credentials(get_credentials()) manager = client.auth try: self.login_connect(manager) except RuntimeError: return credentials = client.get_credentials() save_credentials(credentials)
def setup_login_manual(self): ''' Setup manual login by itself for default server. ''' credentials = get_credentials() client = self.get_client( credentials['Servers'][0] if credentials['Servers'] else {}) client.set_credentials(credentials) manager = client.auth try: self.login_manual(manager=manager) except RuntimeError: return new_credentials = client.get_credentials() credentials = self._save_servers(new_credentials['Servers']) save_credentials(credentials)
def setup_login_connect(self): ''' Setup emby connect by itself. ''' credentials = get_credentials() client = self.get_client( credentials['Servers'][0] if credentials['Servers'] else {}) client.set_credentials(credentials) manager = client.auth try: self.login_connect(manager) except RuntimeError: return new_credentials = client.get_credentials() credentials = self._save_servers(new_credentials['Servers']) save_credentials(credentials)
def setup_manual_server(self): ''' Setup manual servers ''' credentials = get_credentials() client = self.get_client( credentials['Servers'][0] if credentials['Servers'] else {}) client.set_credentials(credentials) manager = client.auth try: self.manual_server(manager) except RuntimeError: return new_credentials = client.get_credentials() credentials = self._save_servers(new_credentials['Servers']) save_credentials(credentials)
def register_client(self, credentials=None, options=None, server_id=None, server_selection=False): client = self.get_client(server_id) self.client = client self.connect_manager = client.auth if server_id is None: client.config.data['app.default'] = True try: state = client.authenticate(credentials or {}, options or {}) if state['State'] == CONNECTION_STATE['SignedIn']: client.callback_ws = event if server_id is None: # Only assign for default server client.callback = event self.get_user(client) settings('serverName', client.config.data['auth.server-name']) settings('server', client.config.data['auth.server']) event('ServerOnline', {'ServerId': server_id}) event('LoadServer', {'ServerId': server_id}) return state['Credentials'] elif (server_selection or state['State'] == CONNECTION_STATE['ServerSelection'] or state['State'] == CONNECTION_STATE['Unavailable'] and not settings('SyncInstallRunDone.bool')): self.select_servers(state) elif state['State'] == CONNECTION_STATE['ServerSignIn']: if 'ExchangeToken' not in state['Servers'][0]: self.login() elif state['State'] == CONNECTION_STATE['Unavailable'] and state[ 'Status_Code'] == 401: # If the saved credentials don't work, restart the addon to force the password dialog to open window('jellyfin.restart', clear=True) elif state['State'] == CONNECTION_STATE['Unavailable']: raise HTTPException('ServerUnreachable', {}) return self.register_client(state['Credentials'], options, server_id, False) except RuntimeError as error: LOG.exception(error) xbmc.executebuiltin('Addon.OpenSettings(%s)' % addon_id()) raise Exception('User sign in interrupted') except HTTPException as error: if error.status == 'ServerUnreachable': event('ServerUnreachable', {'ServerId': server_id}) return client.get_credentials()