diff --git a/plexpy/http_handler.py b/plexpy/http_handler.py index bd003695..487dc521 100644 --- a/plexpy/http_handler.py +++ b/plexpy/http_handler.py @@ -33,7 +33,9 @@ class HTTPHandler(object): Retrieve data from Plex Server """ - def __init__(self, urls, headers=None, token=None, timeout=10, ssl_verify=True): + def __init__(self, urls, headers=None, token=None, timeout=10, ssl_verify=True, silent=False): + self._silent = silent + if isinstance(urls, basestring): self.urls = urls.split() or urls.split(',') else: @@ -131,7 +133,8 @@ class HTTPHandler(object): for work in pool.imap_unordered(part, urls, chunk): yield work except Exception as e: - logger.error(u"Failed to yield request: %s" % e) + if not self._silent: + logger.error(u"Failed to yield request: %s" % e) finally: pool.close() pool.join() @@ -141,13 +144,16 @@ class HTTPHandler(object): try: r = session.request(self.request_type, url, headers=self.headers, timeout=self.timeout) except IOError as e: - logger.warn(u"Failed to access uri endpoint %s with error %s" % (self.uri, e)) + if not self._silent: + logger.warn(u"Failed to access uri endpoint %s with error %s" % (self.uri, e)) return None except Exception as e: - logger.warn(u"Failed to access uri endpoint %s. Is your server maybe accepting SSL connections only? %s" % (self.uri, e)) + if not self._silent: + logger.warn(u"Failed to access uri endpoint %s. Is your server maybe accepting SSL connections only? %s" % (self.uri, e)) return None except: - logger.warn(u"Failed to access uri endpoint %s with Uncaught exception." % self.uri) + if not self._silent: + logger.warn(u"Failed to access uri endpoint %s with Uncaught exception." % self.uri) return None response_status = r.status @@ -157,7 +163,8 @@ class HTTPHandler(object): if response_status in (200, 201): return self._http_format_output(response_content, response_headers) else: - logger.warn(u"Failed to access uri endpoint %s. Status code %r" % (self.uri, response_status)) + if not self._silent: + logger.warn(u"Failed to access uri endpoint %s. Status code %r" % (self.uri, response_status)) return None def _http_format_output(self, response_content, response_headers): @@ -183,5 +190,6 @@ class HTTPHandler(object): return output except Exception as e: - logger.warn(u"Failed format response from uri %s to %s error %s" % (self.uri, self.output_format, e)) + if not self._silent: + logger.warn(u"Failed format response from uri %s to %s error %s" % (self.uri, self.output_format, e)) return None diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 9faf4459..51d74f2a 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -687,10 +687,14 @@ class PlexTV(object): """ Query plex for all servers online. Returns the ones you own in a selectize format """ # Try to discover localhost server - pms_connect = pmsconnect.PmsConnect(url='http://127.0.0.1:32400') - pms_connect.request_handler.timeout = 1 - identity = pms_connect.get_server_identity(log=False) - local_machine_identifier = identity.get('machine_identifier') + local_machine_identifier = None + request_handler = http_handler.HTTPHandler(urls='http://127.0.0.1:32400', timeout=1, + ssl_verify=False, silent=True) + request = request_handler.make_request(uri='/identity', request_type='GET', output_format='xml') + if request: + xml_head = request.getElementsByTagName('MediaContainer')[0] + local_machine_identifier = xml_head.getAttribute('machineIdentifier') + local_server = {'httpsRequired': '0', 'clientIdentifier': local_machine_identifier, 'label': 'Local', diff --git a/plexpy/pmsconnect.py b/plexpy/pmsconnect.py index 552a8fdf..3c589e27 100644 --- a/plexpy/pmsconnect.py +++ b/plexpy/pmsconnect.py @@ -2193,7 +2193,7 @@ class PmsConnect(object): return server_info - def get_server_identity(self, log=True): + def get_server_identity(self): """ Return the local machine identity. @@ -2204,8 +2204,7 @@ class PmsConnect(object): try: xml_head = identity.getElementsByTagName('MediaContainer') except Exception as e: - if log: - logger.warn(u"Tautulli Pmsconnect :: Unable to parse XML for get_local_server_identity: %s." % e) + logger.warn(u"Tautulli Pmsconnect :: Unable to parse XML for get_local_server_identity: %s." % e) return {} server_identity = {}