diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 3edeee36..8bbcaa0d 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -172,70 +172,6 @@ class PlexTV(object): ssl_verify=self.ssl_verify, headers=headers) - def get_plex_auth(self, output_format='raw'): - uri = '/api/v2/users/signin' - headers = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'Accept': 'application/xml'} - data = {'login': self.username, - 'password': self.password, - 'rememberMe': True} - - request = self.request_handler.make_request(uri=uri, - request_type='POST', - headers=headers, - data=data, - output_format=output_format, - no_token=True, - encode_multipart=False) - - return request - - def get_token(self): - plextv_response = self.get_plex_auth(output_format='xml') - - if plextv_response: - try: - xml_head = plextv_response.getElementsByTagName('user') - if xml_head: - user = {'auth_token': xml_head[0].getAttribute('authToken'), - 'user_id': xml_head[0].getAttribute('id') - } - else: - logger.warn("Tautulli PlexTV :: Could not get Plex authentication token.") - except Exception as e: - logger.warn("Tautulli PlexTV :: Unable to parse XML for get_token: %s." % e) - return None - - return user - else: - return None - - def get_plexpy_pms_token(self, force=False): - if force: - logger.debug("Tautulli PlexTV :: Forcing refresh of Plex.tv token.") - devices_list = self.get_devices_list() - device_id = next((d for d in devices_list if d['device_identifier'] == plexpy.CONFIG.PMS_UUID), {}).get('device_id', None) - - if device_id: - logger.debug("Tautulli PlexTV :: Removing Tautulli from Plex.tv devices.") - try: - self.delete_plextv_device(device_id=device_id) - except: - logger.error("Tautulli PlexTV :: Failed to remove Tautulli from Plex.tv devices.") - return None - else: - logger.warn("Tautulli PlexTV :: No existing Tautulli device found.") - - logger.info("Tautulli PlexTV :: Fetching a new Plex.tv token for Tautulli.") - user = self.get_token() - if user: - token = user['auth_token'] - plexpy.CONFIG.__setattr__('PMS_TOKEN', token) - plexpy.CONFIG.write() - logger.info("Tautulli PlexTV :: Updated Plex.tv token for Tautulli.") - return token - - def get_server_token(self): servers = self.get_plextv_resources(output_format='xml') server_token = '' @@ -293,14 +229,6 @@ class PlexTV(object): else: return None - def get_plextv_user_data(self): - plextv_response = self.get_plex_auth(output_format='dict') - - if plextv_response: - return plextv_response - else: - return [] - def get_plextv_friends(self, output_format=''): uri = '/api/users' request = self.request_handler.make_request(uri=uri, diff --git a/plexpy/webauth.py b/plexpy/webauth.py index d4d23707..2272d7ab 100644 --- a/plexpy/webauth.py +++ b/plexpy/webauth.py @@ -55,18 +55,12 @@ JWT_ALGORITHM = 'HS256' JWT_COOKIE_NAME = 'tautulli_token_' -def plex_user_login(username=None, password=None, token=None, headers=None): +def plex_user_login(token=None, headers=None): user_token = None user_id = None # Try to login to Plex.tv to check if the user has a vaild account - if username and password: - plex_tv = PlexTV(username=username, password=password, headers=headers) - plex_user = plex_tv.get_token() - if plex_user: - user_token = plex_user['auth_token'] - user_id = plex_user['user_id'] - elif token: + if token: plex_tv = PlexTV(token=token, headers=headers) plex_user = plex_tv.get_plex_account_details() if plex_user: @@ -125,9 +119,6 @@ def plex_user_login(username=None, password=None, token=None, headers=None): logger.warn("Tautulli WebAuth :: Unable to retrieve Plex.tv server token for user '%s'." % user_details['username']) return None - elif username: - logger.warn("Tautulli WebAuth :: Unable to retrieve Plex.tv user token for user '%s'." % username) - return None elif token: logger.warn("Tautulli WebAuth :: Unable to retrieve Plex.tv user token for Plex OAuth.") diff --git a/plexpy/webserve.py b/plexpy/webserve.py index d62f9f61..322e4ad0 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -4083,55 +4083,6 @@ class WebInterface(object): else: return {'result': 'error', 'message': 'Invalid path.'} - @cherrypy.expose - @cherrypy.tools.json_out() - @requireAuth(member_of("admin")) - @addtoapi() - def get_pms_token(self, username=None, password=None, **kwargs): - """ Get the user's Plex token used for Tautulli. - - ``` - Required parameters: - username (str): The Plex.tv username - password (str): The Plex.tv password - - Optional parameters: - None - - Returns: - string: The Plex token used for Tautulli - ``` - """ - if not username and not password: - return None - - plex_tv = plextv.PlexTV(username=username, password=password) - result = plex_tv.get_token() - - if result: - return result['auth_token'] - else: - logger.warn("Unable to retrieve Plex.tv token.") - return None - - @cherrypy.expose - @cherrypy.tools.json_out() - @requireAuth(member_of("admin")) - def get_plexpy_pms_token(self, username=None, password=None, force=False, **kwargs): - """ Fetch a new Plex.tv token for Tautulli """ - if not username and not password: - return None - - force = helpers.bool_true(force) - - plex_tv = plextv.PlexTV(username=username, password=password) - token = plex_tv.get_plexpy_pms_token(force=force) - - if token: - return {'result': 'success', 'message': 'Authentication successful.', 'token': token} - else: - return {'result': 'error', 'message': 'Authentication failed.'} - @cherrypy.expose @cherrypy.tools.json_out() @requireAuth(member_of("admin"))