aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevendra2014-04-24 01:33:45 +0530
committerDevendra2014-04-24 01:33:45 +0530
commitc98286f500b77dcf426367df0b688f536b77ea9b (patch)
tree824bec40ca73311fb417e4caa80fb602f2e53acd
parentc5d2fb446378e78e9e164dbea969edd57314dc4b (diff)
downloadpubnub-python-c98286f500b77dcf426367df0b688f536b77ea9b.tar.bz2
fixing imports
-rw-r--r--Pubnub.py853
-rw-r--r--python-tornado/examples/history-example.py30
-rw-r--r--python-tornado/examples/publish-example.py6
-rw-r--r--python-tornado/examples/subscribe-example.py2
-rw-r--r--python-tornado/examples/uuid-example.py2
-rw-r--r--python-tornado/tests/benchmark.py2
-rw-r--r--python-tornado/tests/delivery.py2
-rwxr-xr-xpython-tornado/tests/subscribe-test.py2
-rw-r--r--python-tornado/tests/unit-tests.py2
-rw-r--r--python-twisted/examples/here-now-example.py2
-rw-r--r--python-twisted/examples/history-example.py2
-rw-r--r--python-twisted/examples/publish-example.py2
-rw-r--r--python-twisted/examples/subscribe-example.py2
-rw-r--r--python-twisted/examples/uuid-example.py2
-rw-r--r--python-twisted/tests/benchmark.py2
-rw-r--r--python-twisted/tests/delivery.py2
-rwxr-xr-xpython-twisted/tests/subscribe-test.py2
-rw-r--r--python-twisted/tests/unit-test-full.py2
-rw-r--r--python-twisted/tests/unit-tests.py2
-rwxr-xr-xpython/examples/dev-console.py6
-rw-r--r--python/examples/here-now-example.py5
-rwxr-xr-xpython/examples/history-example.py2
-rwxr-xr-xpython/examples/publish-example.py7
-rwxr-xr-xpython/examples/subscribe-example.py2
-rwxr-xr-xpython/tests/detailed-history-unit-test.py2
-rwxr-xr-xpython/tests/subscribe-test.py2
-rwxr-xr-xpython/tests/unit-test.py2
27 files changed, 36 insertions, 913 deletions
diff --git a/Pubnub.py b/Pubnub.py
index bd00709..92a6822 100644
--- a/Pubnub.py
+++ b/Pubnub.py
@@ -1077,7 +1077,7 @@ class PubnubAsync(PubnubCoreAsync):
origin='pubsub.pubnub.com',
pres_uuid=None
):
- super(Pubnub, self).__init__(
+ super(PubnubAsync, self).__init__(
publish_key=publish_key,
subscribe_key=subscribe_key,
secret_key=secret_key,
@@ -1210,7 +1210,7 @@ class PubnubTornado(PubnubCoreAsync):
ssl_on=False,
origin='pubsub.pubnub.com'
):
- super(Pubnub, self).__init__(
+ super(PubnubTornado, self).__init__(
publish_key=publish_key,
subscribe_key=subscribe_key,
secret_key=secret_key,
@@ -1286,853 +1286,6 @@ class PubnubTornado(PubnubCoreAsync):
return abort
-## www.pubnub.com - PubNub Real-time push service in the cloud.
-# coding=utf8
-
-## PubNub Real-time Push APIs and Notifications Framework
-## Copyright (c) 2010 Stephen Blum
-## http://www.pubnub.com/
-
-## -----------------------------------
-## PubNub 3.3.5 Real-time Push Cloud API
-## -----------------------------------
-
-
-from Crypto.Cipher import AES
-from Crypto.Hash import MD5
-from base64 import encodestring, decodestring
-import hashlib
-import hmac
-
-
-class PubnubCrypto2():
- """
- #**
- #* PubnubCrypto
- #*
- #**
-
- ## Initiate Class
- pc = PubnubCrypto
-
- """
-
- def pad(self, msg, block_size=16):
- """
- #**
- #* pad
- #*
- #* pad the text to be encrypted
- #* appends a padding character to the end of the String
- #* until the string has block_size length
- #* @return msg with padding.
- #**
- """
- padding = block_size - (len(msg) % block_size)
- return msg + chr(padding) * padding
-
- def depad(self, msg):
- """
- #**
- #* depad
- #*
- #* depad the decryptet message"
- #* @return msg without padding.
- #**
- """
- return msg[0:-ord(msg[-1])]
-
- def getSecret(self, key):
- """
- #**
- #* getSecret
- #*
- #* hases the key to MD5
- #* @return key in MD5 format
- #**
- """
- return hashlib.sha256(key).hexdigest()
-
- def encrypt(self, key, msg):
- """
- #**
- #* encrypt
- #*
- #* encrypts the message
- #* @return message in encrypted format
- #**
- """
- secret = self.getSecret(key)
- Initial16bytes = '0123456789012345'
- cipher = AES.new(secret[0:32], AES.MODE_CBC, Initial16bytes)
- enc = encodestring(cipher.encrypt(self.pad(msg)))
- return enc
-
- def decrypt(self, key, msg):
- """
- #**
- #* decrypt
- #*
- #* decrypts the message
- #* @return message in decryped format
- #**
- """
- secret = self.getSecret(key)
- Initial16bytes = '0123456789012345'
- cipher = AES.new(secret[0:32], AES.MODE_CBC, Initial16bytes)
- return self.depad((cipher.decrypt(decodestring(msg))))
-
-
-class PubnubCrypto3():
- """
- #**
- #* PubnubCrypto
- #*
- #**
-
- ## Initiate Class
- pc = PubnubCrypto
-
- """
-
- def pad(self, msg, block_size=16):
- """
- #**
- #* pad
- #*
- #* pad the text to be encrypted
- #* appends a padding character to the end of the String
- #* until the string has block_size length
- #* @return msg with padding.
- #**
- """
- padding = block_size - (len(msg) % block_size)
- return msg + (chr(padding) * padding).encode('utf-8')
-
- def depad(self, msg):
- """
- #**
- #* depad
- #*
- #* depad the decryptet message"
- #* @return msg without padding.
- #**
- """
- return msg[0:-ord(msg[-1])]
-
- def getSecret(self, key):
- """
- #**
- #* getSecret
- #*
- #* hases the key to MD5
- #* @return key in MD5 format
- #**
- """
- return hashlib.sha256(key.encode("utf-8")).hexdigest()
-
- def encrypt(self, key, msg):
- """
- #**
- #* encrypt
- #*
- #* encrypts the message
- #* @return message in encrypted format
- #**
- """
- secret = self.getSecret(key)
- Initial16bytes = '0123456789012345'
- cipher = AES.new(secret[0:32], AES.MODE_CBC, Initial16bytes)
- return encodestring(
- cipher.encrypt(self.pad(msg.encode('utf-8')))).decode('utf-8')
-
- def decrypt(self, key, msg):
- """
- #**
- #* decrypt
- #*
- #* decrypts the message
- #* @return message in decryped format
- #**
- """
- secret = self.getSecret(key)
- Initial16bytes = '0123456789012345'
- cipher = AES.new(secret[0:32], AES.MODE_CBC, Initial16bytes)
- return (cipher.decrypt(
- decodestring(msg.encode('utf-8')))).decode('utf-8')
-
-
-try:
- import json
-except ImportError:
- import simplejson as json
-
-import time
-import hashlib
-import uuid
-import sys
-
-try:
- from urllib.parse import quote
-except ImportError:
- from urllib2 import quote
-
-from base64 import urlsafe_b64encode
-from hashlib import sha256
-
-
-import hmac
-
-
-class PubnubBase(object):
- def __init__(
- self,
- publish_key,
- subscribe_key,
- secret_key=False,
- cipher_key=False,
- auth_key=None,
- ssl_on=False,
- origin='pubsub.pubnub.com',
- UUID=None
- ):
- """
- #**
- #* Pubnub
- #*
- #* Init the Pubnub Client API
- #*
- #* @param string publish_key required key to send messages.
- #* @param string subscribe_key required key to receive messages.
- #* @param string secret_key optional key to sign messages.
- #* @param boolean ssl required for 2048 bit encrypted messages.
- #* @param string origin PUBNUB Server Origin.
- #* @param string pres_uuid optional identifier
- #* for presence (auto-generated if not supplied)
- #**
-
- ## Initiat Class
- pubnub = Pubnub( 'PUBLISH-KEY', 'SUBSCRIBE-KEY', 'SECRET-KEY', False )
-
- """
- self.origin = origin
- self.limit = 1800
- self.publish_key = publish_key
- self.subscribe_key = subscribe_key
- self.secret_key = secret_key
- self.cipher_key = cipher_key
- self.ssl = ssl_on
- self.auth_key = auth_key
-
- if self.ssl:
- self.origin = 'https://' + self.origin
- else:
- self.origin = 'http://' + self.origin
-
- self.uuid = UUID or str(uuid.uuid4())
-
- if type(sys.version_info) is tuple:
- self.python_version = 2
- self.pc = PubnubCrypto2()
- else:
- if sys.version_info.major == 2:
- self.python_version = 2
- self.pc = PubnubCrypto2()
- else:
- self.python_version = 3
- self.pc = PubnubCrypto3()
-
- if not isinstance(self.uuid, str):
- raise AttributeError("pres_uuid must be a string")
-
- '''
-
- def _sign(self, channel, message):
- ## Sign Message
- if self.secret_key:
- signature = hashlib.md5('/'.join([
- self.publish_key,
- self.subscribe_key,
- self.secret_key,
- channel,
- message
- ])).hexdigest()
- else:
- signature = '0'
- return signature
- '''
-
- def _pam_sign(self, msg):
- """Calculate a signature by secret key and message."""
-
- return urlsafe_b64encode(hmac.new(
- self.secret_key.encode("utf-8"),
- msg.encode("utf-8"),
- sha256
- ).digest())
-
- def _pam_auth(self, query, apicode=0, callback=None):
- """Issue an authenticated request."""
-
- if 'timestamp' not in query:
- query['timestamp'] = int(time.time())
-
- ## Global Grant?
- if 'auth' in query and not query['auth']:
- del query['auth']
-
- if 'channel' in query and not query['channel']:
- del query['channel']
-
- params = "&".join([
- x + "=" + quote(
- str(query[x]), safe=""
- ) for x in sorted(query)
- ])
- sign_input = "{subkey}\n{pubkey}\n{apitype}\n{params}".format(
- subkey=self.subscribe_key,
- pubkey=self.publish_key,
- apitype="audit" if (apicode) else "grant",
- params=params
- )
-
- query['signature'] = self._pam_sign(sign_input)
-
- return self._request({"urlcomponents": [
- 'v1', 'auth', "audit" if (apicode) else "grant",
- 'sub-key',
- self.subscribe_key
- ], 'urlparams': query},
- self._return_wrapped_callback(callback))
-
- def grant(self, channel, authkey=False, read=True,
- write=True, ttl=5, callback=None):
- """Grant Access on a Channel."""
-
- return self._pam_auth({
- "channel": channel,
- "auth": authkey,
- "r": read and 1 or 0,
- "w": write and 1 or 0,
- "ttl": ttl
- }, callback=callback)
-
- def revoke(self, channel, authkey=False, ttl=1, callback=None):
- """Revoke Access on a Channel."""
-
- return self._pam_auth({
- "channel": channel,
- "auth": authkey,
- "r": 0,
- "w": 0,
- "ttl": ttl
- }, callback=callback)
-
- def audit(self, channel=False, authkey=False, callback=None):
- return self._pam_auth({
- "channel": channel,
- "auth": authkey
- }, 1, callback=callback)
-
- def encrypt(self, message):
- if self.cipher_key:
- message = json.dumps(self.pc.encrypt(
- self.cipher_key, json.dumps(message)).replace('\n', ''))
- else:
- message = json.dumps(message)
-
- return message
-
- def decrypt(self, message):
- if self.cipher_key:
- message = self.pc.decrypt(self.cipher_key, message)
-
- return message
-
- def _return_wrapped_callback(self, callback=None):
- def _new_format_callback(response):
- if 'payload' in response:
- if (callback is not None):
- callback({'message': response['message'],
- 'payload': response['payload']})
- else:
- if (callback is not None):
- callback(response)
- if (callback is not None):
- return _new_format_callback
- else:
- return None
-
- def publish(channel, message, callback=None, error=None):
- """
- #**
- #* Publish
- #*
- #* Send a message to a channel.
- #*
- #* @param array args with channel and message.
- #* @return array success information.
- #**
-
- ## Publish Example
- info = pubnub.publish({
- 'channel' : 'hello_world',
- 'message' : {
- 'some_text' : 'Hello my World'
- }
- })
- print(info)
-
- """
-
- message = self.encrypt(message)
-
- ## Send Message
- return self._request({"urlcomponents": [
- 'publish',
- self.publish_key,
- self.subscribe_key,
- '0',
- channel,
- '0',
- message
- ], 'urlparams': {'auth': self.auth_key}},
- callback=self._return_wrapped_callback(callback),
- error=self._return_wrapped_callback(error))
-
- def presence(self, channel, callback, error=None):
- """
- #**
- #* presence
- #*
- #* This is BLOCKING.
- #* Listen for presence events on a channel.
- #*
- #* @param array args with channel and callback.
- #* @return false on fail, array on success.
- #**
-
- ## Presence Example
- def pres_event(message) :
- print(message)
- return True
-
- pubnub.presence({
- 'channel' : 'hello_world',
- 'callback' : receive
- })
- """
- return self.subscribe({
- 'channel': channel + '-pnpres',
- 'subscribe_key': self.subscribe_key,
- 'callback': self._return_wrapped_callback(callback)})
-
- def here_now(self, channel, callback, error=None):
- """
- #**
- #* Here Now
- #*
- #* Load current occupancy from a channel.
- #*
- #* @param array args with 'channel'.
- #* @return mixed false on fail, array on success.
- #*
-
- ## Presence Example
- here_now = pubnub.here_now({
- 'channel' : 'hello_world',
- })
- print(here_now['occupancy'])
- print(here_now['uuids'])
-
- """
-
- ## Get Presence Here Now
- return self._request({"urlcomponents": [
- 'v2', 'presence',
- 'sub_key', self.subscribe_key,
- 'channel', channel
- ], 'urlparams': {'auth': self.auth_key}},
- callback=self._return_wrapped_callback(callback),
- error=self._return_wrapped_callback(error))
-
- def history(self, channel, count=100, reverse=False,
- start=None, end=None, callback=None, error=None):
- """
- #**
- #* History
- #*
- #* Load history from a channel.
- #*
-
- ## History Example
- history = pubnub.detailedHistory({
- 'channel' : 'hello_world',
- 'count' : 5
- })
- print(history)
-
- """
-
- params = dict()
-
- params['count'] = count
- params['reverse'] = reverse
- params['start'] = start
- params['end'] = end
-
- ## Get History
- return self._request({'urlcomponents': [
- 'v2',
- 'history',
- 'sub-key',
- self.subscribe_key,
- 'channel',
- channel,
- ], 'urlparams': {'auth': self.auth_key}},
- callback=self._return_wrapped_callback(callback),
- error=self._return_wrapped_callback(error))
-
- def time(self, callback=None):
- """
- #**
- #* Time
- #*
- #* Timestamp from PubNub Cloud.
- #*
- #* @return int timestamp.
- #*
-
- ## PubNub Server Time Example
- timestamp = pubnub.time()
- print(timestamp)
-
- """
-
- time = self._request({'urlcomponents': [
- 'time',
- '0'
- ]}, callback)
- if time is not None:
- return time[0]
-
- def _encode(self, request):
- return [
- "".join([' ~`!@#$%^&*()+=[]\\{}|;\':",./<>?'.find(ch) > -1 and
- hex(ord(ch)).replace('0x', '%').upper() or
- ch for ch in list(bit)
- ]) for bit in request]
-
- def getUrl(self, request):
- ## Build URL
- url = self.origin + '/' + "/".join([
- "".join([' ~`!@#$%^&*()+=[]\\{}|;\':",./<>?'.find(ch) > -1 and
- hex(ord(ch)).replace('0x', '%').upper() or
- ch for ch in list(bit)
- ]) for bit in request["urlcomponents"]])
- if ("urlparams" in request):
- url = url + '?' + "&".join([x + "=" + str(y) for x, y in request[
- "urlparams"].items() if y is not None])
- return url
-
-
-try:
- from hashlib import sha256
- digestmod = sha256
-except ImportError:
- import Crypto.Hash.SHA256 as digestmod
- sha256 = digestmod.new
-import hmac
-
-
-class EmptyLock():
- def __enter__(self):
- pass
-
- def __exit__(self, a, b, c):
- pass
-
-empty_lock = EmptyLock()
-
-
-class PubnubCoreAsync(PubnubBase):
-
- def start(self):
- pass
-
- def stop(self):
- pass
-
- def __init__(
- self,
- publish_key,
- subscribe_key,
- secret_key=False,
- cipher_key=False,
- auth_key=None,
- ssl_on=False,
- origin='pubsub.pubnub.com',
- uuid=None,
- _tt_lock=empty_lock,
- _channel_list_lock=empty_lock
- ):
- """
- #**
- #* Pubnub
- #*
- #* Init the Pubnub Client API
- #*
- #* @param string publish_key required key to send messages.
- #* @param string subscribe_key required key to receive messages.
- #* @param string secret_key required key to sign messages.
- #* @param boolean ssl required for 2048 bit encrypted messages.
- #* @param string origin PUBNUB Server Origin.
- #**
-
- ## Initiat Class
- pubnub = Pubnub( 'PUBLISH-KEY', 'SUBSCRIBE-KEY', 'SECRET-KEY', False )
-
- """
- super(PubnubCoreAsync, 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=uuid
- )
-
- self.subscriptions = {}
- self.timetoken = 0
- self.last_timetoken = 0
- self.version = '3.3.4'
- self.accept_encoding = 'gzip'
- self.SUB_RECEIVER = None
- self._connect = None
- self._tt_lock = _tt_lock
- self._channel_list_lock = _channel_list_lock
- self._connect = lambda: None
-
- def get_channel_list(self, channels):
- channel = ''
- first = True
- with self._channel_list_lock:
- for ch in channels:
- if not channels[ch]['subscribed']:
- continue
- if not first:
- channel += ','
- else:
- first = False
- channel += ch
- return channel
-
- def get_channel_array(self):
- channels = self.subscriptions
- channel = []
- with self._channel_list_lock:
- for ch in channels:
- if not channels[ch]['subscribed']:
- continue
- channel.append(ch)
- return channel
-
- def each(l, func):
- if func is None:
- return
- for i in l:
- func(i)
-
- def subscribe(self, channel, callback, error=None,
- connect=None, disconnect=None, reconnect=None, sync=False):
- """
- #**
- #* Subscribe
- #*
- #* This is NON-BLOCKING.
- #* Listen for a message on a channel.
- #*
- #* @param array args with channel and message.
- #* @return false on fail, array on success.
- #**
-
- ## Subscribe Example
- def receive(message) :
- print(message)
- return True
-
- ## On Connect Callback
- def connected() :
- pubnub.publish({
- 'channel' : 'hello_world',
- 'message' : { 'some_var' : 'text' }
- })
-
- ## Subscribe
- pubnub.subscribe({
- 'channel' : 'hello_world',
- 'connect' : connected,
- 'callback' : receive
- })
-
- """
-
- with self._tt_lock:
- self.last_timetoken = self.timetoken if self.timetoken != 0 \
- else self.last_timetoken
- self.timetoken = 0
-
- if sync is True and self.susbcribe_sync is not None:
- self.susbcribe_sync(args)
- return
-
- def _invoke(func, msg=None):
- if func is not None:
- if msg is not None:
- func(msg)
- else:
- func()
-
- def _invoke_connect():
- if self._channel_list_lock:
- with self._channel_list_lock:
- for ch in self.subscriptions:
- chobj = self.subscriptions[ch]
- if chobj['connected'] is False:
- chobj['connected'] = True
- _invoke(chobj['connect'], chobj['name'])
-
- def _invoke_error(channel_list=None, err=None):
- if channel_list is None:
- for ch in self.subscriptions:
- chobj = self.subscriptions[ch]
- _invoke(chobj['error'], err)
- else:
- for ch in channel_list:
- chobj = self.subscriptions[ch]
- _invoke(chobj['error'], err)
-
- def _get_channel():
- for ch in self.subscriptions:
- chobj = self.subscriptions[ch]
- if chobj['subscribed'] is True:
- return chobj
-
- ## New Channel?
- if not channel in self.subscriptions or \
- self.subscriptions[channel]['subscribed'] is False:
- with self._channel_list_lock:
- self.subscriptions[channel] = {
- 'name': channel,
- 'first': False,
- 'connected': False,
- 'subscribed': True,
- 'callback': callback,
- 'connect': connect,
- 'disconnect': disconnect,
- 'reconnect': reconnect,
- 'error': error
- }
-
- ## return if already connected to channel
- if channel in self.subscriptions and \
- 'connected' in self.subscriptions[channel] and \
- self.subscriptions[channel]['connected'] is True:
- _invoke(error, "Already Connected")
- return
-
- ## SUBSCRIPTION RECURSION
- def _connect():
-
- self._reset_offline()
-
- def sub_callback(response):
- ## ERROR ?
- if not response or \
- ('message' in response and
- response['message'] == 'Forbidden'):
- _invoke_error(response['payload'][
- 'channels'], response['message'])
- _connect()
- return
-
- _invoke_connect()
-
- with self._tt_lock:
- self.timetoken = \
- self.last_timetoken if self.timetoken == 0 and \
- self.last_timetoken != 0 else response[1]
- if len(response) > 2:
- channel_list = response[2].split(',')
- response_list = response[0]
- for ch in enumerate(channel_list):
- if ch[1] in self.subscriptions:
- chobj = self.subscriptions[ch[1]]
- _invoke(chobj['callback'],
- self.decrypt(response_list[ch[0]]))
- else:
- response_list = response[0]
- chobj = _get_channel()
- for r in response_list:
- if chobj:
- _invoke(chobj['callback'], self.decrypt(r))
-
- _connect()
-
- channel_list = self.get_channel_list(self.subscriptions)
- if len(channel_list) <= 0:
- return
-
- ## CONNECT TO PUBNUB SUBSCRIBE SERVERS
- #try:
- self.SUB_RECEIVER = self._request({"urlcomponents": [
- 'subscribe',
- self.subscribe_key,
- channel_list,
- '0',
- str(self.timetoken)
- ], "urlparams": {"uuid": self.uuid, "auth": self.auth_key}},
- sub_callback,
- sub_callback,
- single=True)
- '''
- except Exception as e:
- print(e)
- self.timeout(1, _connect)
- return
- '''
-
- self._connect = _connect
-
- ## BEGIN SUBSCRIPTION (LISTEN FOR MESSAGES)
- _connect()
-
- def _reset_offline(self):
- if self.SUB_RECEIVER is not None:
- self.SUB_RECEIVER()
- self.SUB_RECEIVER = None
-
- def CONNECT(self):
- self._reset_offline()
- self._connect()
-
- def unsubscribe(self, channel):
-
- if channel in self.subscriptions is False:
- return False
-
- ## DISCONNECT
- with self._channel_list_lock:
- if channel in self.subscriptions:
- self.subscriptions[channel]['connected'] = 0
- self.subscriptions[channel]['subscribed'] = False
- self.subscriptions[channel]['timetoken'] = 0
- self.subscriptions[channel]['first'] = False
- self.CONNECT()
-
-
try:
from twisted.web.client import getPage
from twisted.internet import reactor
@@ -2186,7 +1339,7 @@ class PubnubTwisted(PubnubCoreAsync):
ssl_on=False,
origin='pubsub.pubnub.com'
):
- super(Pubnub, self).__init__(
+ super(PubnubTwisted, self).__init__(
publish_key=publish_key,
subscribe_key=subscribe_key,
secret_key=secret_key,
diff --git a/python-tornado/examples/history-example.py b/python-tornado/examples/history-example.py
index 00bdaf3..879568b 100644
--- a/python-tornado/examples/history-example.py
+++ b/python-tornado/examples/history-example.py
@@ -10,8 +10,7 @@
## -----------------------------------
import sys
-import tornado
-from Pubnub import Pubnub
+from Pubnub import PubnubTornado as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
@@ -19,28 +18,13 @@ secret_key = len(sys.argv) > 3 and sys.argv[3] or 'demo'
cipher_key = len(sys.argv) > 4 and sys.argv[4] or ''
ssl_on = len(sys.argv) > 5 and bool(sys.argv[5]) or False
-## -----------------------------------------------------------------------
-## Initiate Pubnub State
-## -----------------------------------------------------------------------
pubnub = Pubnub(publish_key, subscribe_key, secret_key, cipher_key, ssl_on)
-crazy = 'hello_world'
-
-## -----------------------------------------------------------------------
-## History Example
-## -----------------------------------------------------------------------
-
+channel = 'hello_world'
def history_complete(messages):
print(messages)
- tornado.ioloop.IOLoop.instance().stop()
-
-pubnub.history({
- 'channel': crazy,
- 'limit': 10,
- 'callback': history_complete
- })
-
-## -----------------------------------------------------------------------
-## IO Event Loop
-## -----------------------------------------------------------------------
-tornado.ioloop.IOLoop.instance().start()
+ pubnub.stop()
+
+pubnub.history(channel=channel, count=10, callback=history_complete)
+
+pubnub.start()
diff --git a/python-tornado/examples/publish-example.py b/python-tornado/examples/publish-example.py
index b02c41f..5da6485 100644
--- a/python-tornado/examples/publish-example.py
+++ b/python-tornado/examples/publish-example.py
@@ -10,14 +10,12 @@
## -----------------------------------
import sys
-from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
secret_key = len(sys.argv) > 3 and sys.argv[3] or 'demo'
-cipher_key = len(
- sys.argv) > 4 and sys.argv[4] or '' # (Cipher key is Optional)
+cipher_key = len( sys.argv) > 4 and sys.argv[4] or ''
ssl_on = len(sys.argv) > 5 and bool(sys.argv[5]) or False
## -----------------------------------------------------------------------
diff --git a/python-tornado/examples/subscribe-example.py b/python-tornado/examples/subscribe-example.py
index 0724fa9..26be1fd 100644
--- a/python-tornado/examples/subscribe-example.py
+++ b/python-tornado/examples/subscribe-example.py
@@ -11,7 +11,7 @@
import sys
import tornado
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-tornado/examples/uuid-example.py b/python-tornado/examples/uuid-example.py
index a1cabf6..e5521ab 100644
--- a/python-tornado/examples/uuid-example.py
+++ b/python-tornado/examples/uuid-example.py
@@ -11,7 +11,7 @@
import sys
import tornado
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
## -----------------------------------------------------------------------
## Initiate Pubnub State
diff --git a/python-tornado/tests/benchmark.py b/python-tornado/tests/benchmark.py
index 636a87a..748fe3b 100644
--- a/python-tornado/tests/benchmark.py
+++ b/python-tornado/tests/benchmark.py
@@ -12,7 +12,7 @@
import sys
import datetime
import tornado
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-tornado/tests/delivery.py b/python-tornado/tests/delivery.py
index d0eb9f9..0181403 100644
--- a/python-tornado/tests/delivery.py
+++ b/python-tornado/tests/delivery.py
@@ -14,7 +14,7 @@ import datetime
import time
import math
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
## -----------------------------------------------------------------------
## Configuration
diff --git a/python-tornado/tests/subscribe-test.py b/python-tornado/tests/subscribe-test.py
index a2bafde..bcbbc7e 100755
--- a/python-tornado/tests/subscribe-test.py
+++ b/python-tornado/tests/subscribe-test.py
@@ -11,7 +11,7 @@
import sys
import datetime
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
from functools import partial
from threading import current_thread
import threading
diff --git a/python-tornado/tests/unit-tests.py b/python-tornado/tests/unit-tests.py
index 0069a5c..b00f2b7 100644
--- a/python-tornado/tests/unit-tests.py
+++ b/python-tornado/tests/unit-tests.py
@@ -3,7 +3,7 @@ import sys
from PubnubUnitTest import Suite
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
pubnub = Pubnub("demo", "demo")
diff --git a/python-twisted/examples/here-now-example.py b/python-twisted/examples/here-now-example.py
index 0f34f36..4b2965b 100644
--- a/python-twisted/examples/here-now-example.py
+++ b/python-twisted/examples/here-now-example.py
@@ -10,7 +10,7 @@
## -----------------------------------
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/examples/history-example.py b/python-twisted/examples/history-example.py
index 72c7445..f867a36 100644
--- a/python-twisted/examples/history-example.py
+++ b/python-twisted/examples/history-example.py
@@ -11,7 +11,7 @@
import sys
from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/examples/publish-example.py b/python-twisted/examples/publish-example.py
index 5d6cc29..d5af6a5 100644
--- a/python-twisted/examples/publish-example.py
+++ b/python-twisted/examples/publish-example.py
@@ -11,7 +11,7 @@
import sys
from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/examples/subscribe-example.py b/python-twisted/examples/subscribe-example.py
index b261b0d..3bca615 100644
--- a/python-twisted/examples/subscribe-example.py
+++ b/python-twisted/examples/subscribe-example.py
@@ -11,7 +11,7 @@
import sys
from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/examples/uuid-example.py b/python-twisted/examples/uuid-example.py
index 840f48c..a745088 100644
--- a/python-twisted/examples/uuid-example.py
+++ b/python-twisted/examples/uuid-example.py
@@ -11,7 +11,7 @@
import sys
from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
## -----------------------------------------------------------------------
## Initiate Pubnub State
diff --git a/python-twisted/tests/benchmark.py b/python-twisted/tests/benchmark.py
index 0e7b809..b6477c0 100644
--- a/python-twisted/tests/benchmark.py
+++ b/python-twisted/tests/benchmark.py
@@ -12,7 +12,7 @@
import sys
import datetime
from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/tests/delivery.py b/python-twisted/tests/delivery.py
index d36e895..30ce55f 100644
--- a/python-twisted/tests/delivery.py
+++ b/python-twisted/tests/delivery.py
@@ -14,7 +14,7 @@ import datetime
import time
import math
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
## -----------------------------------------------------------------------
## Configuration
diff --git a/python-twisted/tests/subscribe-test.py b/python-twisted/tests/subscribe-test.py
index aca63ba..ba74992 100755
--- a/python-twisted/tests/subscribe-test.py
+++ b/python-twisted/tests/subscribe-test.py
@@ -11,7 +11,7 @@
import sys
import datetime
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
from functools import partial
from threading import current_thread
import threading
diff --git a/python-twisted/tests/unit-test-full.py b/python-twisted/tests/unit-test-full.py
index 374772f..3aecf12 100644
--- a/python-twisted/tests/unit-test-full.py
+++ b/python-twisted/tests/unit-test-full.py
@@ -18,7 +18,7 @@
## -----------------------------------
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python-twisted/tests/unit-tests.py b/python-twisted/tests/unit-tests.py
index 169e1f1..70c373b 100644
--- a/python-twisted/tests/unit-tests.py
+++ b/python-twisted/tests/unit-tests.py
@@ -4,7 +4,7 @@ import time
from PubnubUnitTest import Suite
-from Pubnub import Pubnub
+from Pubnub import PubnubTwisted as Pubnub
pubnub = Pubnub("demo", "demo")
diff --git a/python/examples/dev-console.py b/python/examples/dev-console.py
index 6ff5209..5bdbe8c 100755
--- a/python/examples/dev-console.py
+++ b/python/examples/dev-console.py
@@ -5,12 +5,8 @@
## Copyright (c) 2010 Stephen Blum
## http://www.pubnub.com/
-## -----------------------------------
-## PubNub 3.1 Real-time Push Cloud API
-## -----------------------------------
-
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
from optparse import OptionParser
diff --git a/python/examples/here-now-example.py b/python/examples/here-now-example.py
index 9bb448c..0bc3015 100644
--- a/python/examples/here-now-example.py
+++ b/python/examples/here-now-example.py
@@ -5,12 +5,9 @@
## Copyright (c) 2010 Stephen Blum
## http://www.pubnub.com/
-## -----------------------------------
-## PubNub 3.1 Real-time Push Cloud API
-## -----------------------------------
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python/examples/history-example.py b/python/examples/history-example.py
index 092c929..793c612 100755
--- a/python/examples/history-example.py
+++ b/python/examples/history-example.py
@@ -1,5 +1,5 @@
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
## Initiat Class
pubnub = Pubnub('demo', 'demo', None, False)
diff --git a/python/examples/publish-example.py b/python/examples/publish-example.py
index 69ea053..1c57e4b 100755
--- a/python/examples/publish-example.py
+++ b/python/examples/publish-example.py
@@ -5,13 +5,8 @@
## Copyright (c) 2010 Stephen Blum
## http://www.pubnub.com/
-## -----------------------------------
-## PubNub 3.1 Real-time Push Cloud API
-## -----------------------------------
-
import sys
-from twisted.internet import reactor
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'
diff --git a/python/examples/subscribe-example.py b/python/examples/subscribe-example.py
index 0b1c949..9c16bbe 100755
--- a/python/examples/subscribe-example.py
+++ b/python/examples/subscribe-example.py
@@ -3,7 +3,7 @@ import threading
import time
import random
import string
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
## Initiate Class
pubnub = Pubnub('demo', 'demo', None, False)
diff --git a/python/tests/detailed-history-unit-test.py b/python/tests/detailed-history-unit-test.py
index 9663de9..fd2c81a 100755
--- a/python/tests/detailed-history-unit-test.py
+++ b/python/tests/detailed-history-unit-test.py
@@ -10,7 +10,7 @@
## -----------------------------------
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
import unittest as unittest
diff --git a/python/tests/subscribe-test.py b/python/tests/subscribe-test.py
index a2bafde..a1b1826 100755
--- a/python/tests/subscribe-test.py
+++ b/python/tests/subscribe-test.py
@@ -11,7 +11,7 @@
import sys
import datetime
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
from functools import partial
from threading import current_thread
import threading
diff --git a/python/tests/unit-test.py b/python/tests/unit-test.py
index a9a462c..a48cbd3 100755
--- a/python/tests/unit-test.py
+++ b/python/tests/unit-test.py
@@ -10,7 +10,7 @@
## -----------------------------------
import sys
-from Pubnub import Pubnub
+from Pubnub import PubnubAsync as Pubnub
publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo'
subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo'