def switch_server(self, server): settings = plexdesktop.settings.Settings() settings.setValue('last_server', server.client_identifier) self.current_server = server self.shortcuts = Shortcuts(self.server) self.shortcuts.shortcuts_changed.connect(self.shortcuts_changed.emit) self.shortcuts.shortcuts_loaded.connect(self.shortcuts_loaded.emit) self.shortcuts.load()
def save_session(self): settings = plexdesktop.settings.Settings() try: logger.info('SessionManager: saving session') # with open('session.pickle', 'wb') as f: # pickle.dump(self.session, f) settings.setValue('session', base64.b64encode(pickle.dumps(self.session)).decode()) except Exception as e: logger.error('SessionManager: save_session: ' + str(e))
def switch_user(self, user, pin=None): self.working.emit() settings = plexdesktop.settings.Settings() try: logger.info('SessionManager: changing user.') self.session.switch_user(user, pin=pin) except plexdevices.PlexTVError as e: logger.error('SessionManager: switch_user: '******'user', user.id) server = self.session.get_server_by_id(self.current_server.client_identifier) self.current_server = server if server else self.session.servers[0] self.user = user self.save_session() self.done.emit(True, '')
def create_session(self, user, passwd): self.working.emit() settings = plexdesktop.settings.Settings() try: logger.debug('SessionManager: creating session') self.session = plexdevices.create_session(user=user, password=passwd) except plexdevices.PlexTVError as e: logger.error('SessionManager: create_session: ' + str(e)) self.done.emit(False, str(e)) else: self.refresh_devices() self.refresh_users() for user in self.session.users: if user.title == self.session.user: settings.setValue('user', user.id) break self.save_session() self.user = self.session.get_user_by_id(settings.value('user')) self.current_server = self.session.get_server_by_id(settings.value('last_server')) if not self.current_server and self.session.servers: self.current_server = self.session.servers[0] self.active.emit(True) self.done.emit(True, '')