"Error sending match video updates: {}".format( exception)) logging.error(traceback.format_exc()) ''' If we have an unplayed match during an event within a day, send out a schedule update notification ''' for event in unplayed_match_events: try: logging.info("Sending schedule updates for: {}".format( event.key_name)) NotificationHelper.send_schedule_update(event) except Exception, exception: logging.error("Eror sending schedule updates for: {}".format( event.key_name)) try: TBANSHelper.event_schedule(event) except Exception, exception: logging.error("Eror sending schedule updates for: {}".format( event.key_name)) logging.error(traceback.format_exc()) try: # When an event gets a new schedule, we should schedule `match_upcoming` notifications for the first matches for the event TBANSHelper.schedule_upcoming_matches(event) except Exception, exception: logging.error("Eror scheduling match_upcoming for: {}".format( event.key_name)) logging.error(traceback.format_exc()) ''' Enqueue firebase push ''' affected_stats_event_keys = set()
def post(self): self._require_admin() user_id = self.user_bundle.account.key.id() notification_type = self.request.get('type') if notification_type == "alliance_selection": event_key = self.request.get('event_key') event = Event.get_by_id(event_key) if not event: self.template_values.update({ 'error': 'No event for key {}'.format(event_key) }) return self.redirect('/admin/tbans') TBANSHelper.alliance_selection(event, user_id) elif notification_type == "awards": event_key = self.request.get('event_key') event = Event.get_by_id(event_key) if not event: self.template_values.update({ 'error': 'No event for key {}'.format(event_key) }) return self.redirect('/admin/tbans') TBANSHelper.awards(event, user_id) elif notification_type == "event_level": match_key = self.request.get('match_key') match = Match.get_by_id(match_key) if not match: self.template_values.update({ 'error': 'No match for key {}'.format(match_key) }) return self.redirect('/admin/tbans') TBANSHelper.event_level(match, user_id) elif notification_type == "event_schedule": event_key = self.request.get('event_key') event = Event.get_by_id(event_key) if not event: self.template_values.update({ 'error': 'No event for key {}'.format(event_key) }) return self.redirect('/admin/tbans') TBANSHelper.event_schedule(event, user_id) elif notification_type == "match_score": match_key = self.request.get('match_key') match = Match.get_by_id(match_key) if not match: self.template_values.update({ 'error': 'No match for key {}'.format(match_key) }) return self.redirect('/admin/tbans') TBANSHelper.match_score(match, user_id) elif notification_type == "match_upcoming": match_key = self.request.get('match_key') match = Match.get_by_id(match_key) if not match: self.template_values.update({ 'error': 'No match for key {}'.format(match_key) }) return self.redirect('/admin/tbans') TBANSHelper.match_upcoming(match, user_id) elif notification_type == "match_video": match_key = self.request.get('match_key') match = Match.get_by_id(match_key) if not match: self.template_values.update({ 'error': 'No match for key {}'.format(match_key) }) return self.redirect('/admin/tbans') TBANSHelper.match_video(match, user_id) elif notification_type == "ping": clients = MobileClient.clients([user_id]) for client in clients: TBANSHelper.ping(client) return self.redirect('/admin/tbans')