diff options
Diffstat (limited to 'python/unassembled')
| -rw-r--r-- | python/unassembled/Platform.py | 86 |
1 files changed, 44 insertions, 42 deletions
diff --git a/python/unassembled/Platform.py b/python/unassembled/Platform.py index 0ffccbb..83bb6f5 100644 --- a/python/unassembled/Platform.py +++ b/python/unassembled/Platform.py @@ -10,13 +10,12 @@ import threading from threading import current_thread latest_sub_callback_lock = threading.RLock() -latest_sub_callback = {'id' : None, 'callback' : None} - - +latest_sub_callback = {'id': None, 'callback': None} class HTTPClient: - def __init__(self, url, urllib_func=None, callback=None, error=None, id=None): + def __init__(self, url, urllib_func=None, + callback=None, error=None, id=None): self.url = url self.id = id self.callback = callback @@ -29,7 +28,6 @@ class HTTPClient: self.callback = None self.error = None - def run(self): def _invoke(func, data): @@ -63,65 +61,68 @@ class HTTPClient: try: data = json.loads(data) except: - _invoke(latest_sub_callback['error'], {'error' : 'json decoding error'}) + _invoke(latest_sub_callback['error'], + {'error': 'json decoding error'}) return if code != 200: - _invoke(latest_sub_callback['error'],data) + _invoke(latest_sub_callback['error'], data) else: - _invoke(latest_sub_callback['callback'],data) + _invoke(latest_sub_callback['callback'], data) else: try: data = json.loads(data) except: - _invoke(self.error, {'error' : 'json decoding error'}) + _invoke(self.error, {'error': 'json decoding error'}) return if code != 200: - _invoke(self.error,data) + _invoke(self.error, data) else: - _invoke(self.callback,data) + _invoke(self.callback, data) def _urllib_request_2(url, timeout=320): try: - resp = urllib2.urlopen(url,timeout=timeout) + resp = urllib2.urlopen(url, timeout=timeout) except urllib2.HTTPError as http_error: resp = http_error - return (resp.read(),resp.code) + return (resp.read(), resp.code) + def _urllib_request_3(url, timeout=320): #print(url) try: - resp = urllib.request.urlopen(url,timeout=timeout) + resp = urllib.request.urlopen(url, timeout=timeout) except urllib.request.HTTPError as http_error: resp = http_error - r = resp.read().decode("utf-8") + r = resp.read().decode("utf-8") #print(r) - return (r,resp.code) + return (r, resp.code) _urllib_request = None + class Pubnub(PubnubCoreAsync): def __init__( self, publish_key, subscribe_key, - secret_key = False, - cipher_key = False, - auth_key = None, - ssl_on = False, - origin = 'pubsub.pubnub.com', - pres_uuid = None - ) : + secret_key=False, + cipher_key=False, + auth_key=None, + ssl_on=False, + origin='pubsub.pubnub.com', + pres_uuid=None + ): super(Pubnub, self).__init__( - publish_key = publish_key, - subscribe_key = subscribe_key, - secret_key = secret_key, - cipher_key = cipher_key, - auth_key = auth_key, - ssl_on = ssl_on, - origin = origin, - uuid = pres_uuid, + publish_key=publish_key, + subscribe_key=subscribe_key, + secret_key=secret_key, + cipher_key=cipher_key, + auth_key=auth_key, + ssl_on=ssl_on, + origin=origin, + uuid=pres_uuid, _tt_lock=threading.RLock(), _channel_list_lock=threading.RLock() ) @@ -138,29 +139,30 @@ class Pubnub(PubnubCoreAsync): thread = threading.Thread(target=cb) thread.start() - - def _request_async( self, request, callback=None, error=None, single=False ) : + def _request_async(self, request, callback=None, error=None, single=False): global _urllib_request ## Build URL url = self.getUrl(request) if single is True: id = time.time() - client = HTTPClient(url=url, urllib_func=_urllib_request, callback=None, error=None, id=id) + client = HTTPClient(url=url, urllib_func=_urllib_request, + callback=None, error=None, id=id) with latest_sub_callback_lock: latest_sub_callback['id'] = id latest_sub_callback['callback'] = callback latest_sub_callback['error'] = error else: - client = HTTPClient(url=url, urllib_func=_urllib_request, callback=callback, error=error) + client = HTTPClient(url=url, urllib_func=_urllib_request, + callback=callback, error=error) thread = threading.Thread(target=client.run) thread.start() + def abort(): - client.cancel(); + client.cancel() return abort - - def _request_sync( self, request) : + def _request_sync(self, request): global _urllib_request ## Build URL url = self.getUrl(request) @@ -169,14 +171,14 @@ class Pubnub(PubnubCoreAsync): try: resp_json = json.loads(response[0]) except: - return [0,"JSON Error"] + return [0, "JSON Error"] if response[1] != 200 and 'status' in resp_json: - return {'message' : resp_json['message'], 'payload' : resp_json['payload']} + return {'message': resp_json['message'], + 'payload': resp_json['payload']} return resp_json - def _request(self, request, callback=None, error=None, single=False): if callback is None: return self._request_sync(request) @@ -194,7 +196,7 @@ class Pubnub(PubnubCoreAsync): resp_json = json.loads(response.read().decode("utf-8")) except Exception as e: return None - + return resp_json def _request3_async( self, request, callback, single=False ) : |
