Skip to content

Commit 48882ce

Browse files
committed
Switch MyPlexJWTLogin to JSON response
1 parent 75a134b commit 48882ce

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

plexapi/myplex.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1983,6 +1983,7 @@ class MyPlexJWTLogin:
19831983
19841984
# Method 1: Generate a new Plex JWT using Plex OAuth
19851985
jwtlogin = MyPlexJWTLogin(
1986+
oauth=True,
19861987
scopes=['username', 'email', 'friendly_name']
19871988
)
19881989
jwtlogin.generateKeypair(keyfiles=('private.key', 'public.key'))
@@ -2123,14 +2124,13 @@ def _publicJWK(self):
21232124
def _encodeClientJWT(self):
21242125
""" Returns the encoded client JWT using the private JWK. """
21252126
payload = {
2127+
'nonce': self._getPlexNonce(),
21262128
'scope': ','.join(self._scopes),
21272129
'aud': 'plex.tv',
21282130
'iss': self._clientIdentifier,
21292131
'iat': int(datetime.now().timestamp()),
21302132
'exp': int((datetime.now() + timedelta(minutes=5)).timestamp()),
21312133
}
2132-
if self._token:
2133-
payload['nonce'] = self._getPlexNonce()
21342134
headers = {
21352135
'kid': self._keyID
21362136
}
@@ -2360,8 +2360,8 @@ def _getCode(self):
23602360
if response is None:
23612361
return None
23622362

2363-
self._id = response.attrib.get('id')
2364-
self._code = response.attrib.get('code')
2363+
self._id = response.get('id')
2364+
self._code = response.get('code')
23652365

23662366
return self._code
23672367

@@ -2378,7 +2378,7 @@ def _checkLogin(self):
23782378
if response is None:
23792379
return False
23802380

2381-
token = response.attrib.get('authToken')
2381+
token = response.get('authToken')
23822382
if not token:
23832383
return False
23842384

@@ -2412,7 +2412,7 @@ def _headers(self, **kwargs):
24122412
if self._customHeaders:
24132413
headers.update(self._customHeaders)
24142414
headers.update(kwargs)
2415-
# headers['Accept'] = 'application/json'
2415+
headers['Accept'] = 'application/json'
24162416
return headers
24172417

24182418
def _query(self, url, method=None, headers=None, **kwargs):
@@ -2424,6 +2424,8 @@ def _query(self, url, method=None, headers=None, **kwargs):
24242424
codename = codes.get(response.status_code)[0]
24252425
errtext = response.text.replace('\n', ' ')
24262426
raise BadRequest(f'({response.status_code}) {codename} {response.url}; {errtext}')
2427+
if 'application/json' in response.headers.get('Content-Type', ''):
2428+
return response.json()
24272429
return utils.parseXMLString(response.text)
24282430

24292431

0 commit comments

Comments
 (0)