remove pin auth test script
This commit is contained in:
parent
e3dd5727d8
commit
e5c2513c56
1 changed files with 0 additions and 104 deletions
104
plex_pin_auth.py
104
plex_pin_auth.py
|
|
@ -1,104 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Test script to authenticate with Plex using PIN-based login.
|
|
||||||
This mimics the app's /api/plex/pin/start and /api/plex/pin/status flows.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import traceback
|
|
||||||
from plexapi.myplex import MyPlexAccount, MyPlexPinLogin
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
print('Starting Plex PIN login flow...')
|
|
||||||
try:
|
|
||||||
pinlogin = MyPlexPinLogin(oauth=False)
|
|
||||||
except Exception as exc:
|
|
||||||
print(f'Failed to create MyPlexPinLogin: {exc}', file=sys.stderr)
|
|
||||||
traceback.print_exc()
|
|
||||||
return 1
|
|
||||||
|
|
||||||
pin = getattr(pinlogin, 'pin', None)
|
|
||||||
if not pin:
|
|
||||||
print('Failed to obtain PIN from Plex', file=sys.stderr)
|
|
||||||
return 1
|
|
||||||
|
|
||||||
print(f'\nPlease go to the following URL in your browser and enter the PIN: {pin}')
|
|
||||||
print(f' https://plex.tv/link')
|
|
||||||
print('Then return here and wait for authentication to complete.')
|
|
||||||
|
|
||||||
while True:
|
|
||||||
if getattr(pinlogin, 'expired', False):
|
|
||||||
print('\nPIN has expired. Please rerun this script to start again.', file=sys.stderr)
|
|
||||||
return 2
|
|
||||||
|
|
||||||
try:
|
|
||||||
if pinlogin.checkLogin():
|
|
||||||
token = getattr(pinlogin, 'token', None)
|
|
||||||
if not token:
|
|
||||||
print('Login succeeded but no token was returned.', file=sys.stderr)
|
|
||||||
return 3
|
|
||||||
|
|
||||||
print('\nLogin complete!')
|
|
||||||
print(f'Plex token: {token}')
|
|
||||||
|
|
||||||
try:
|
|
||||||
account = MyPlexAccount(token=token)
|
|
||||||
except Exception as exc:
|
|
||||||
print(f'Failed to create MyPlexAccount: {exc}', file=sys.stderr)
|
|
||||||
traceback.print_exc()
|
|
||||||
return 4
|
|
||||||
|
|
||||||
print(f'Authenticated Plex username: {getattr(account, "username", None)}')
|
|
||||||
print(f'Authenticated Plex title: {getattr(account, "title", None)}')
|
|
||||||
|
|
||||||
print('\nFetching available Plex resources...')
|
|
||||||
try:
|
|
||||||
resources = account.resources()
|
|
||||||
except Exception as exc:
|
|
||||||
print(f'Failed to fetch resources: {exc}', file=sys.stderr)
|
|
||||||
traceback.print_exc()
|
|
||||||
return 5
|
|
||||||
|
|
||||||
server_resources = [r for r in resources if 'server' in (getattr(r, 'provides', '') or '')]
|
|
||||||
if server_resources:
|
|
||||||
print(f'Found {len(server_resources)} Plex server resource(s):')
|
|
||||||
for idx, resource in enumerate(server_resources, 1):
|
|
||||||
print(f'[{idx}] {getattr(resource, "name", None)} ({getattr(resource, "product", None)})')
|
|
||||||
connections = getattr(resource, 'connections', []) or []
|
|
||||||
for conn in connections:
|
|
||||||
uri = getattr(conn, 'uri', None)
|
|
||||||
local = getattr(conn, 'local', False)
|
|
||||||
relay = getattr(conn, 'relay', False)
|
|
||||||
print(f' - {uri} {'(LOCAL)' if local else ''}{' (RELAY)' if relay else ''}')
|
|
||||||
|
|
||||||
local_conn = None
|
|
||||||
for resource in server_resources:
|
|
||||||
for conn in getattr(resource, 'connections', []) or []:
|
|
||||||
if getattr(conn, 'local', False):
|
|
||||||
local_conn = conn
|
|
||||||
break
|
|
||||||
if local_conn:
|
|
||||||
break
|
|
||||||
|
|
||||||
if local_conn:
|
|
||||||
print(f'\nSelected local server URI: {getattr(local_conn, "uri", None)}')
|
|
||||||
else:
|
|
||||||
print('\nNo local server connection found. Use one of the above URIs manually.')
|
|
||||||
else:
|
|
||||||
print('No Plex server resources were found for this account.')
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
print('PIN not yet authorized. Polling again in 5 seconds...')
|
|
||||||
except Exception as exc:
|
|
||||||
print(f'Error checking PIN login status: {exc}', file=sys.stderr)
|
|
||||||
traceback.print_exc()
|
|
||||||
return 6
|
|
||||||
|
|
||||||
time.sleep(5)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
sys.exit(main())
|
|
||||||
Loading…
Reference in a new issue