Changelog¶
v1.5.0 (2018-07-29)¶
- gcm: Use FCM URL instead of deprecated GCM URL. Thanks Lukas Anzinger!
v1.4.1 (2018-06-18)¶
- apns: Remove restriction on token length due to incorrect assumption about tokens always being 64 characters long.
v1.4.0 (2017-11-09)¶
- apns: Add exceptions
APNSProtocolErrorandAPNSTimeoutError. Thanks Jakub Kleň! - apns: Add retry mechanism to
APNSClient.send. Thanks Jakub Kleň!- Add
default_retriesargument toAPNSClientinitialization. Defaults to5. - Add
retriesargument toAPNSClient.send. By default will useAPNSClient.default_retriesunless explicitly passed in. - If unable to send after
retries, anAPNSTimeoutErrorwill be raised.
- Add
- apns: Fix bug in bulk
APNSClient.sendthat resulted in an off-by-one error for message identifier in returned errors. Thanks Jakub Kleň! - apns: Add max payload truncation option to
APNSClient.send. Thanks Jakub Kleň!- Add
default_max_payload_lengthargument toAPNSClientinitialization. Defaults to0which disabled max payload length check. - Add
max_payload_lengthargument toAPNSClient.send. By default will useAPNSClient.default_max_payload_lengthunless explicitly passed in. - When
max_payload_lengthset, messages will be truncated to fit within the length restriction by trimming the “message” text and appending it with “…”.
- Add
v1.3.0 (2017-03-11)¶
- apns: Optimize reading from APNS Feedback so that the number of bytes read are based on header and token lengths.
- apns: Explicitly close connection to APNS Feedback service after reading data.
- apns: Add support for
mutable-contentfield (Apple Notification Service Extension) viamutable_contentargument toAPNSClient.send(). Thanks Ahmed Khedr! - apns: Add support for
thread-idfield (group identifier in Notification Center) viathread_idargument toAPNSClient.send(). Thanks Ahmed Khedr!
v1.2.1 (2015-12-14)¶
- apns: Fix implementation of empty APNS notifications and allow notifications with
{"aps": {}}to be sent. Thanks Julius Seporaitis!
v1.2.0 (2015-12-04)¶
- gcm: Add support for
priorityfield to GCM messages vialow_prioritykeyword argument. Default behavior is for all messages to be"high"priority. This is the opposite of GCM messages but mirrors the behavior in the APNS module where the default priority is"high".
v1.1.0 (2015-10-22)¶
- gcm: Add support for
notificationfield to GCM messages. - gcm: Replace
registration_idsfield withtofield when sending to a single recipient sinceregistration_idsfield has been deprecated for single recipients.
v1.0.1 (2015-05-07)¶
- gcm: Fix incorrect authorization header in GCM client. Thanks Brad Montgomery!
v1.0.0 (2015-04-28)¶
apns: Add
APNSSandboxClientfor sending notifications to APNS sandbox server.apns: Add
messageattribute toAPNSResponse.pushjack: Add internal logging.
apns: Fix APNS error checking to properly handle reading when no data returned.
apns: Make APNS sending stop during iteration if a fatal error is received from APNS server (e.g. invalid topic, invalid payload size, etc).
apns/gcm: Make APNS and GCM clients maintain an active connection to server.
apns: Make APNS always return
APNSResponseobject instead of only raisingAPNSSendErrorwhen errors encountered. (breaking change)apns/gcm: Remove APNS/GCM module send functions and only support client interfaces. (breaking change)
apns: Remove
configargument fromAPNSClientand use individual method parameters as mapped below instead: (breaking change)APNS_ERROR_TIMEOUT=>default_error_timeoutAPNS_DEFAULT_EXPIRATION_OFFSET=>default_expiration_offsetAPNS_DEFAULT_BATCH_SIZE=>default_batch_size
gcm: Remove
configargument fromGCMClientand use individual method parameters as mapped below instead: (breaking change)GCM_API_KEY=>api_key
pushjack: Remove
pushjack.clientsmodule. (breaking change)pushjack: Remove
pushjack.configmodule. (breaking change)gcm: Rename
GCMResponse.payloadstoGCMResponse.messages. (breaking change)
v0.5.0 (2015-04-22)¶
- apns: Add new APNS configuration value
APNS_DEFAULT_BATCH_SIZEand set to100. - apns: Add
batch_sizeparameter to APNSsendthat can be used to overrideAPNS_DEFAULT_BATCH_SIZE. - apns: Make APNS
sendbatch multiple notifications into a single payload. Previously, individual socket writes were performed for each token. Now, socket writes are batched based on either theAPNS_DEFAULT_BATCH_SIZEconfiguration value or thebatch_sizefunction argument value. - apns: Make APNS
sendresume sending from after the failed token when an error response is received. - apns: Make APNS
sendraise anAPNSSendErrorwhen one or more error responses received.APNSSendErrorcontains an aggregation of errors, all tokens attempted, failed tokens, and successful tokens. (breaking change) - apns: Replace
priorityargument to APNSsendwithlow_priority=False. (breaking change)
v0.4.0 (2015-04-15)¶
- apns: Improve error handling in APNS so that errors aren’t missed.
- apns: Improve handling of APNS socket connection during bulk sending so that connection is re-established when lost.
- apns: Make APNS socket read/writes non-blocking.
- apns: Make APNS socket frame packing easier to grok.
- apns/gmc: Remove APNS and GCM
send_bulkfunction. Modifysendto support bulk notifications. (breaking change) - apns: Remove
APNS_MAX_NOTIFICATION_SIZEas config option. - gcm: Remove
GCM_MAX_RECIPIENTSas config option. - gcm: Remove
requestargument from GCM send function. (breaking change) - apns: Remove
sockargument from APNS send function. (breaking change) - gcm: Return namedtuple for GCM canonical ids.
- apns: Return namedtuple class for APNS expired tokens.
v0.3.0 (2015-04-01)¶
gcm: Add
restricted_package_nameanddry_runfields to GCM sending.gcm: Add exceptions for all GCM server error responses.
apns: Make
apns.get_expired_tokensandAPNSClient.get_expired_tokensaccept an optionalsockargument to provide a custom socket connection.apns: Raise
APNSAuthErrorinstead ofAPNSErrorif certificate file cannot be read.apns: Raise
APNSInvalidPayloadSizeErrorinstead ofAPNSDataOverflow. (breaking change)apns: Raise
APNSInvalidTokenErrorinstead ofAPNSError.gcm: Raise
GCMAuthErrorifGCM_API_KEYis not set.pushjack: Rename several function parameters: (breaking change)
- gcm:
alerttodata - gcm:
token/tokenstoregistration_id/registration_ids - gcm:
Dispatcher/dispatchertoGCMRequest/request - Clients:
registration_idtodevice_id
- gcm:
gcm: Return
GCMResponseobject forGCMClient.send/send_bulk. (breaking change)gcm: Return
requests.Responseobject(s) forgcm.send/send_bulk. (breaking change)
v0.2.2 (2015-03-30)¶
- apns: Fix payload key assigments for
title-loc,title-loc-args, andlaunch-image. Previously,'_'was used in place of'-'.
v0.2.1 (2015-03-28)¶
- apns: Fix incorrect variable reference in
apns.receive_feedback.
v0.2.0 (2015-03-28)¶
- pushjack: Fix handling of
configin clients whenconfigis a class object and subclass ofConfig. - apns: Make
apns.send/send_bulkaccept additionalalertfields:title,title-loc,title-loc-args, andlaunch-image. - gcm: Make
gcm.send/send_bulkraise aGCMErrorexception ifGCM_API_KEYis not set. - gcm: Make gcm payload creation cast
datato dict if isn’t not passed in as one. Original value ofdatais then set to{'message': data}. (breaking change) - gcm: Make gcm payload creation not set defaults for optional keyword arguments. (breaking change)
v0.1.0 (2015-03-26)¶
- pushjack: Rename
pushjack.settingsmodule topushjack.config. (breaking change) - apns/gcm: Allow config settings overrides to be passed into
create_gcm_config,create_apns_config, andcreate_apns_sandbox_config. - pushjack: Override
Config’supdate()method with custom method that functions similarly tofrom_object()except that it accepts adictinstead.
v0.0.1 (2015-03-25)¶
- First release.