def postUpdateHook(cls, matches, updated_attr_list, is_new_list): ''' To run after the match has been updated. Send push notifications to subscribed users Only if the match is part of an active event ''' unplayed_match_events = [] for (match, updated_attrs, is_new) in zip(matches, updated_attr_list, is_new_list): event = match.event.get() # Only continue if the event is currently happening if event.within_a_day: if match.has_been_played: if is_new or 'alliances_json' in updated_attrs: # There is a score update for this match, push a notification logging.info("Sending push notifications for {}".format(match.key_name)) try: NotificationHelper.send_match_score_update(match) except Exception, exception: logging.error("Error sending match updates: {}".format(exception)) logging.error(traceback.format_exc()) else: if is_new or (set(['alliances_json', 'time', 'time_string']).intersection(set(updated_attrs)) != set()): # The match has not been played and we're changing a property that affects the event's schedule # So send a schedule update notification for the parent event if event not in unplayed_match_events: unplayed_match_events.append(event)
def postUpdateHook(cls, matches): ''' To run after the match has been updated. Send push notifications to subscribed users Only if the match is part of an active event ''' for match in matches: if match.event.get().now: logging.info("Sending push notifications for " + match.key_name) try: NotificationHelper.send_match_score_update(match) except Exception, exception: logging.error("Error sending match updates: " + str(exception))