aboutsummaryrefslogtreecommitdiffstats
path: root/python-tornado/unassembled/Platform.py
diff options
context:
space:
mode:
Diffstat (limited to 'python-tornado/unassembled/Platform.py')
-rw-r--r--python-tornado/unassembled/Platform.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/python-tornado/unassembled/Platform.py b/python-tornado/unassembled/Platform.py
new file mode 100644
index 0000000..7565fd2
--- /dev/null
+++ b/python-tornado/unassembled/Platform.py
@@ -0,0 +1,67 @@
+import tornado.httpclient
+
+try:
+ from hashlib import sha256
+ digestmod = sha256
+except ImportError:
+ import Crypto.Hash.SHA256 as digestmod
+ sha256 = digestmod.new
+
+import hmac
+import tornado.ioloop
+from tornado.stack_context import ExceptionStackContext
+from PubnubCrypto import PubnubCrypto
+
+ioloop = tornado.ioloop.IOLoop.instance()
+
+class Pubnub(PubnubCoreAsync):
+
+ def stop(self): ioloop.stop()
+ def start(self): ioloop.start()
+ def timeout( self, delay, callback):
+ ioloop.add_timeout( time.time()+float(delay), callback )
+
+ def __init__(
+ self,
+ publish_key,
+ subscribe_key,
+ secret_key = False,
+ cipher_key = False,
+ ssl_on = False,
+ origin = 'pubsub.pubnub.com'
+ ) :
+ super(Pubnub, self).__init__(
+ publish_key=publish_key,
+ subscribe_key=subscribe_key,
+ secret_key=secret_key,
+ cipher_key=cipher_key,
+ ssl_on=ssl_on,
+ origin=origin,
+ )
+ self.headers = {}
+ self.headers['User-Agent'] = 'Python-Tornado'
+ self.headers['Accept-Encoding'] = self.accept_encoding
+ self.headers['V'] = self.version
+ self.http = tornado.httpclient.AsyncHTTPClient(max_clients=1000)
+
+ def _request( self, request, callback ) :
+ url = self.getUrl(request)
+ ## Send Request Expecting JSON Response
+ #print self.headers
+
+ request = tornado.httpclient.HTTPRequest( url, 'GET', self.headers, connect_timeout=10, request_timeout=310 )
+
+ def responseCallback(response):
+ def handle_exc(*args):
+ return True
+ if response.error is not None:
+ with ExceptionStackContext(handle_exc):
+ response.rethrow()
+ elif callback:
+ callback(eval(response._get_body()))
+
+ self.http.fetch(
+ request,
+ callback=responseCallback,
+ )
+