diff --git a/pubnub.py b/pubnub.py index 0fcd651b..fe5f72e6 100755 --- a/pubnub.py +++ b/pubnub.py @@ -847,7 +847,7 @@ def presence_group(self, channel_group, callback, error=None, callback=callback, error=error, connect=connect, disconnect=disconnect, - reconnect=reconnect) + reconnect=reconnect, presence=callback) def state(self, channel=None, channel_group=None, uuid=None, state=None, callback=None, error=None): @@ -1023,7 +1023,7 @@ def where_now(self, uuid=None, callback=None, error=None): callback=self._return_wrapped_callback(callback), error=self._return_wrapped_callback(error)) - def here_now(self, channel, uuids=True, state=False, + def here_now(self, channel=None, channel_group=None, uuids=True, state=False, callback=None, error=None): """Get here now data. @@ -1036,8 +1036,14 @@ def here_now(self, channel, uuids=True, state=False, Args: channel: (string) (optional) Specifies the channel name to return occupancy - results. If channel is not provided, here_now will - return data for all channels. + results. If channel and channel group are not + provided, here_now will return data for all + channels. If both channel and channel group are + provided, the function will return error. + + channel_group: (string) (optional) + Specifies the channel group name to return + occupancy results. callback: (optional) A callback method should be passed to the method. @@ -1089,6 +1095,11 @@ def here_now(self, channel, uuids=True, state=False, data = {'auth': self.auth_key, 'pnsdk': self.pnsdk} + if channel_group is not None and len(channel_group) > 0: + urlcomponents.append('channel') + urlcomponents.append(',') + data['channel-group'] = channel_group + if state is True: data['state'] = '1' @@ -2014,7 +2025,7 @@ def subscribe(self, channels, callback, state=None, error=None, def subscribe_group(self, channel_groups, callback, error=None, connect=None, disconnect=None, reconnect=None, - sync=False): + sync=False, presence=None): """Subscribe to data on a channel group. This function causes the client to create an open TCP socket to the @@ -2055,7 +2066,7 @@ def subscribe_group(self, channel_groups, callback, error=None, return self._subscribe( channel_groups=channel_groups, callback=callback, error=error, - connect=connect, disconnect=disconnect, reconnect=reconnect) + connect=connect, disconnect=disconnect, reconnect=reconnect, presence=presence) def _subscribe( self, channels=None, channel_groups=None, state=None, callback=None, @@ -2264,11 +2275,7 @@ def sub_callback(response): except KeyError: chobj = self.subscriptions[ch[1]] - if ('-pnpres' in channel_list_2[ch[0]]): - cb = chobj['presence'] - else: - cb = chobj['callback'] - _invoke(cb, + _invoke(chobj['callback'], self.decrypt(response_list[ch[0]]), chobj['name'].split('-pnpres')[0], channel_list_2[ch[0]].split