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, '')