Improve logic to connect to local PMS via plex.direct redirect

This commit is contained in:
croneter 2020-02-21 09:12:59 +01:00
parent 83598ff3f1
commit cad5923546

View file

@ -210,24 +210,31 @@ def discover_pms(token=None):
if pms['machineIdentifier'] == plex_pms['machineIdentifier']: if pms['machineIdentifier'] == plex_pms['machineIdentifier']:
break break
else: else:
# Only found PMS using GDM - add it to the PMS from plex.tv # Only found PMS using GDM. Check whether we can use baseURL
https = _pms_https_enabled('%s:%s' % (pms['ip'], pms['port'])) # (which is in a different format) or need to connect directly
if https is None: if not _correct_baseurl(pms,
# Error contacting url. Skip and ignore this PMS for now '%s:%s' % (pms['baseURL'], pms['port'])):
LOG.error('Could not contact PMS %s but we should have', pms) if not _correct_baseurl(pms,
continue '%s:%s' % (pms['ip'], pms['port'])):
elif https is True: continue
pms['scheme'] = 'https'
else:
pms['scheme'] = 'http'
pms['baseURL'] = '%s://%s:%s' % (pms['scheme'],
pms['ip'],
pms['port'])
plex_pms_list.append(pms) plex_pms_list.append(pms)
_log_pms(plex_pms_list) _log_pms(plex_pms_list)
return plex_pms_list return plex_pms_list
def _correct_baseurl(pms, url):
https = _pms_https_enabled(url)
if https is None:
# Error contacting url
return False
elif https is True:
pms['scheme'] = 'https'
else:
pms['scheme'] = 'http'
pms['baseURL'] = '%s://%s' % (pms['scheme'], url)
return True
def _log_pms(pms_list): def _log_pms(pms_list):
log_list = deepcopy(pms_list) log_list = deepcopy(pms_list)
for pms in log_list: for pms in log_list: