aboutsummaryrefslogtreecommitdiffstats
path: root/python/unassembled/Platform.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/unassembled/Platform.py')
-rw-r--r--python/unassembled/Platform.py220
1 files changed, 0 insertions, 220 deletions
diff --git a/python/unassembled/Platform.py b/python/unassembled/Platform.py
deleted file mode 100644
index 17180fa..0000000
--- a/python/unassembled/Platform.py
+++ /dev/null
@@ -1,220 +0,0 @@
-try:
- import urllib.request
-except ImportError:
- import urllib2
-
-import threading
-import json
-import time
-import threading
-from threading import current_thread
-
-latest_sub_callback_lock = threading.RLock()
-latest_sub_callback = {'id': None, 'callback': None}
-
-
-class HTTPClient:
- def __init__(self, url, urllib_func=None,
- callback=None, error=None, id=None):
- self.url = url
- self.id = id
- self.callback = callback
- self.error = error
- self.stop = False
- self._urllib_func = urllib_func
-
- def cancel(self):
- self.stop = True
- self.callback = None
- self.error = None
-
- def run(self):
-
- def _invoke(func, data):
- if func is not None:
- func(data)
-
- if self._urllib_func is None:
- return
-
- '''
- try:
- resp = urllib2.urlopen(self.url, timeout=320)
- except urllib2.HTTPError as http_error:
- resp = http_error
- '''
- resp = self._urllib_func(self.url, timeout=320)
- data = resp[0]
- code = resp[1]
-
- if self.stop is True:
- return
- if self.callback is None:
- global latest_sub_callback
- global latest_sub_callback_lock
- with latest_sub_callback_lock:
- if latest_sub_callback['id'] != self.id:
- return
- else:
- if latest_sub_callback['callback'] is not None:
- latest_sub_callback['id'] = 0
- print data
- try:
- data = json.loads(data)
- except ValueError as e:
- _invoke(latest_sub_callback['error'],
- {'error': 'json decoding error'})
- return
- print code
- if code != 200:
- print 'ERROR'
- _invoke(latest_sub_callback['error'], data)
- else:
- print 'CALLBACK'
- _invoke(latest_sub_callback['callback'], data)
- else:
- try:
- data = json.loads(data)
- except ValueError:
- _invoke(self.error, {'error': 'json decoding error'})
- return
-
- if code != 200:
- _invoke(self.error, data)
- else:
- _invoke(self.callback, data)
-
-
-def _urllib_request_2(url, timeout=320):
- try:
- resp = urllib2.urlopen(url, timeout=timeout)
- except urllib2.HTTPError as http_error:
- resp = http_error
- except urllib2.URLError as error:
- #print error.reason
- msg = { "message" : str(error.reason)}
- #print str(msg)
- return (json.dumps(msg),0)
-
- return (resp.read(), resp.code)
-
-
-def _urllib_request_3(url, timeout=320):
- #print(url)
- try:
- resp = urllib.request.urlopen(url, timeout=timeout)
- except (urllib.request.HTTPError, urllib.request.URLError) as http_error:
- resp = http_error
- r = resp.read().decode("utf-8")
- #print(r)
- 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
- ):
- 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,
- _tt_lock=threading.RLock(),
- _channel_list_lock=threading.RLock()
- )
- global _urllib_request
- if self.python_version == 2:
- _urllib_request = _urllib_request_2
- else:
- _urllib_request = _urllib_request_3
-
- def timeout(self, interval, func):
- def cb():
- time.sleep(interval)
- func()
- thread = threading.Thread(target=cb)
- thread.start()
-
- 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)
- 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)
-
- thread = threading.Thread(target=client.run)
- thread.start()
-
- def abort():
- client.cancel()
- return abort
-
- def _request_sync(self, request):
- global _urllib_request
- ## Build URL
- url = self.getUrl(request)
- ## Send Request Expecting JSONP Response
- response = _urllib_request(url, timeout=320)
- try:
- resp_json = json.loads(response[0])
- except ValueError:
- return [0, "JSON Error"]
-
- if response[1] != 200 and 'status' in resp_json:
- 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)
- else:
- self._request_async(request, callback, error, single=single)
-
-'''
-
- def _request3_sync( self, request) :
- ## Build URL
- url = self.getUrl(request)
- ## Send Request Expecting JSONP Response
- try:
- response = urllib.request.urlopen(url,timeout=310)
- 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 ) :
- pass
-
- def _request3(self, request, callback=None, single=False):
- if callback is None:
- return self._request3_sync(request,single=single)
- else:
- self._request3_async(request, callback, single=single)
- '''