def send_match_score_update(cls, match): users = PushHelper.get_users_subscribed_to_match( match, NotificationType.MATCH_SCORE) keys = PushHelper.get_client_ids_for_users(users) notification = MatchScoreNotification(match) notification.send(keys)
def send_upcoming_match_notification(cls, match, event): users = PushHelper.get_users_subscribed_to_match(match, NotificationType.UPCOMING_MATCH) keys = PushHelper.get_client_ids_for_users(users) if match.set_number == 1 and match.match_number == 1: # First match of a new type, send level starting notifications start_users = PushHelper.get_users_subscribed_to_match(match, NotificationType.LEVEL_STARTING) start_keys = PushHelper.get_client_ids_for_users(start_users) level_start = CompLevelStartingNotification(match, event) level_start.send(start_keys) # Send upcoming match notification notification = UpcomingMatchNotification(match, event) notification.send(keys) match.push_sent = True # Make sure we don't send updates for this match again match.put()
def send_match_score_update(cls, match): users = PushHelper.get_users_subscribed_to_match(match, NotificationType.MATCH_SCORE) gcm_keys = PushHelper.get_client_ids_for_users(ClientType.names[ClientType.OS_ANDROID], users) if len(gcm_keys) == 0: return notification = MatchScoreNotification(match) message = notification.build(ClientType.OS_ANDROID, {ClientType.OS_ANDROID: gcm_keys}) gcm_connection = GCMConnection() gcm_connection.notify_device(message)
def send_upcoming_match_notification(cls, match, event): users = PushHelper.get_users_subscribed_to_match( match, NotificationType.UPCOMING_MATCH) keys = PushHelper.get_client_ids_for_users( users, os_types=[ClientType.OS_ANDROID]) if match.set_number == 1 and match.match_number == 1: # First match of a new type, send level starting notifications start_users = PushHelper.get_users_subscribed_to_match( match, NotificationType.LEVEL_STARTING) start_keys = PushHelper.get_client_ids_for_users( start_users, os_types=[ClientType.OS_ANDROID]) level_start = CompLevelStartingNotification(match, event) level_start.send(start_keys) # Send upcoming match notification notification = UpcomingMatchNotification(match, event) notification.send(keys) match.push_sent = True # Make sure we don't send updates for this match again match.dirty = True from helpers.match_manipulator import MatchManipulator MatchManipulator.createOrUpdate(match)
def send_match_video(cls, match): """ Sends match_video and event_match_video notifications If the match is current, MatchVideoNotification is sent. Otherwise, EventMatchVideoNotification is sent """ match_users = set(PushHelper.get_users_subscribed_to_match(match, NotificationType.MATCH_VIDEO)) event_users = set(PushHelper.get_users_subscribed_to_event(match.event.get(), NotificationType.MATCH_VIDEO)) users = match_users.union(event_users) if match.within_seconds(60*10): user_keys = PushHelper.get_client_ids_for_users(users) MatchVideoNotification(match).send(user_keys) else: user_keys = PushHelper.get_client_ids_for_users(users) EventMatchVideoNotification(match).send(user_keys)
def send_match_score_update(cls, match): users = PushHelper.get_users_subscribed_to_match(match, NotificationType.MATCH_SCORE) keys = PushHelper.get_client_ids_for_users(users) notification = MatchScoreNotification(match) notification.send(keys)