Skip to content

Commit f33faf7

Browse files
committed
Merge pull request #92 from xilvar/fix-resend-enhanced
Make resends of enhanced notifications with frames work
2 parents 5bebbe3 + a6e4ce4 commit f33faf7

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

apns.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ class Frame(object):
352352
"""A class representing an APNs message frame for multiple sending"""
353353
def __init__(self):
354354
self.frame_data = bytearray()
355+
self.notification_data = list()
355356

356357
def get_frame(self):
357358
return self.frame_data
@@ -394,6 +395,12 @@ def add_item(self, token_hex, payload, identifier, expiry, priority):
394395

395396
self.frame_data[-item_len-4:-item_len] = APNs.packed_uint_big_endian(item_len)
396397

398+
self.notification_data.append({'token':token_hex, 'payload':payload, 'identifier':identifier, 'expiry':expiry, "priority":priority})
399+
400+
def get_notifications(self, gateway_connection):
401+
notifications = list({'id': x['identifier'], 'message':gateway_connection._get_enhanced_notification(x['token'], x['payload'],x['identifier'], x['expiry'])} for x in self.notification_data)
402+
return notifications
403+
397404
def __str__(self):
398405
"""Get the frame buffer"""
399406
return str(self.frame_data)
@@ -546,6 +553,7 @@ def _make_sure_error_response_handler_worker_alive(self):
546553
_logger.warning("error response handler worker is not started after 3 secs")
547554

548555
def send_notification_multiple(self, frame):
556+
self._sent_notifications += frame.get_notifications(self)
549557
return self.write(frame.get_frame())
550558

551559
def register_response_listener(self, response_listener):

0 commit comments

Comments
 (0)