Ejemplo n.º 1
0
    def _getteam_status(cls, request):
        team_number = request['result']['parameters']['team_number']
        team_key = 'frc{}'.format(team_number)
        team = Team.get_by_id(team_key)
        if team:
            events = TeamYearEventsQuery(team_key, datetime.datetime.now().year).fetch()
            current_event = None
            for event in events:
                if event.now:
                    current_event = event

            if current_event:
                event_team = EventTeam.get_by_id('{}_{}'.format(current_event.key.id(), team_key))

                text = EventTeamStatusHelper.generate_team_at_event_status_string(
                    team_key, event_team.status, formatting=False, event=current_event)
                tts = 'Team {} {}'.format(
                    cls._team_number_tts(team_number),
                    EventTeamStatusHelper.generate_team_at_event_status_string(
                        team_key, event_team.status, formatting=False, event=current_event, include_team=False, verbose=True))

                additional_prompt = ' Would you like to know more about {} or another team?'.format(team_number)
                text += additional_prompt
                tts += additional_prompt

                messages = cls._create_simple_response(text, tts=tts) +\
                    cls._create_link_chip(current_event.display_name, 'https://www.thebluealliance.com/event/{}'.format(current_event.key.id()))
            else:
                fmt = 'Team {0} is not currently competing. Would you like to know more about {0} or another team?'
                text = fmt.format(
                    team_number)
                tts = fmt.format(
                    cls._team_number_tts(team_number))
                messages = cls._create_simple_response(text, tts=tts)

            messages += cls._create_suggestion_chips([
                    'Next match',
                    'Location',
                    'Rookie year',
                    'Another team',
                    'No thanks',
                ])
        else:
            fmt = 'Team {0} does not exist. Please ask about another team.'
            text = fmt.format(team_number)
            tts = fmt.format(cls._team_number_tts(team_number))
            messages = cls._create_simple_response(text, tts=tts)

        return {
            'speech': text,
            'messages': messages,
        }
 def _render(self, team_key, year):
     event_teams, self._last_modified = TeamYearEventTeamsQuery(
         team_key, int(year)).fetch(return_updated=True)
     statuses = {}
     for event_team in event_teams:
         status = event_team.status
         if status:
             status.update({
                 'alliance_status_str':
                 EventTeamStatusHelper.
                 generate_team_at_event_alliance_status_string(
                     team_key, status),
                 'playoff_status_str':
                 EventTeamStatusHelper.
                 generate_team_at_event_playoff_status_string(
                     team_key, status),
                 'overall_status_str':
                 EventTeamStatusHelper.generate_team_at_event_status_string(
                     team_key, status),
             })
         statuses[event_team.event.id()] = status
     return json.dumps(statuses,
                       ensure_ascii=True,
                       indent=2,
                       sort_keys=True)
Ejemplo n.º 3
0
 def _render(self, team_key, event_key):
     event_team = EventTeam.get_by_id('{}_{}'.format(event_key, team_key))
     status = None
     if event_team:
         status = event_team.status
     if status:
         status.update({
             'alliance_status_str': EventTeamStatusHelper.generate_team_at_event_alliance_status_string(team_key, status),
             'playoff_status_str': EventTeamStatusHelper.generate_team_at_event_playoff_status_string(team_key, status),
             'overall_status_str': EventTeamStatusHelper.generate_team_at_event_status_string(team_key, status),
         })
     return json.dumps(status, ensure_ascii=True, indent=2, sort_keys=True)
Ejemplo n.º 4
0
 def _render(self, team_key, year):
     event_teams, self._last_modified = TeamYearEventTeamsQuery(team_key, int(year)).fetch(return_updated=True)
     statuses = {}
     for event_team in event_teams:
         status = event_team.status
         if status:
             status.update({
                 'alliance_status_str': EventTeamStatusHelper.generate_team_at_event_alliance_status_string(team_key, status),
                 'playoff_status_str': EventTeamStatusHelper.generate_team_at_event_playoff_status_string(team_key, status),
                 'overall_status_str': EventTeamStatusHelper.generate_team_at_event_status_string(team_key, status),
             })
         statuses[event_team.event.id()] = status
     return json.dumps(statuses, ensure_ascii=True, indent=2, sort_keys=True)
 def _render(self, team_key, event_key):
     event_team = EventTeam.get_by_id('{}_{}'.format(event_key, team_key))
     status = None
     if event_team:
         status = event_team.status
         self._last_modified = event_team.updated
     else:
         self._last_modified = datetime.datetime.now()
     if status:
         status.update({
             'alliance_status_str': EventTeamStatusHelper.generate_team_at_event_alliance_status_string(team_key, status),
             'playoff_status_str': EventTeamStatusHelper.generate_team_at_event_playoff_status_string(team_key, status),
             'overall_status_str': EventTeamStatusHelper.generate_team_at_event_status_string(team_key, status),
         })
     return json.dumps(status, ensure_ascii=True, indent=2, sort_keys=True)
Ejemplo n.º 6
0
    def _render(self, team_number):
        self.response.headers['content-type'] = 'text/plain; charset="utf-8"'
        user = self.request.get('user')
        if user:
            user_str = '@{}, '.format(user)
        else:
            user_str = ''

        team_event_or_error = validate_team(user_str, team_number)
        if type(team_event_or_error) == str:
            return team_event_or_error

        _, event = team_event_or_error
        event_code_upper = event.event_short.upper()
        event_team = EventTeam.get_by_id('{}_frc{}'.format(event.key.id(), team_number))

        team_key = 'frc{}'.format(team_number)
        status = EventTeamStatusHelper.generate_team_at_event_status_string(team_key, event_team.status)
        if status:
            status = status.replace('<b>', '').replace('</b>', '')
        return '{}[{}] {}'.format(user_str, event_code_upper, status)
    def _render(self, team_number):
        self.response.headers['content-type'] = 'text/plain; charset="utf-8"'
        user = self.request.get('user')
        if user:
            user_str = '@{}, '.format(user)
        else:
            user_str = ''

        team_event_or_error = validate_team(user_str, team_number)
        if type(team_event_or_error) == str:
            return team_event_or_error

        _, event = team_event_or_error
        event_code_upper = event.event_short.upper()
        event_team = EventTeam.get_by_id('{}_frc{}'.format(
            event.key.id(), team_number))

        team_key = 'frc{}'.format(team_number)
        status = EventTeamStatusHelper.generate_team_at_event_status_string(
            team_key, event_team.status)
        if status:
            status = status.replace('<b>', '').replace('</b>', '')
        return '{}[{}] {}'.format(user_str, event_code_upper, status)
Ejemplo n.º 8
0
    def _getteam_status(cls, request):
        team_number = request['result']['parameters']['team_number']
        team_key = 'frc{}'.format(team_number)
        team = Team.get_by_id(team_key)
        if team:
            events = TeamYearEventsQuery(team_key,
                                         datetime.datetime.now().year).fetch()
            current_event = None
            for event in events:
                if event.now:
                    current_event = event

            if current_event:
                event_team = EventTeam.get_by_id('{}_{}'.format(
                    current_event.key.id(), team_key))

                text = EventTeamStatusHelper.generate_team_at_event_status_string(
                    team_key,
                    event_team.status,
                    formatting=False,
                    event=current_event)
                tts = 'Team {} {}'.format(
                    cls._team_number_tts(team_number),
                    EventTeamStatusHelper.generate_team_at_event_status_string(
                        team_key,
                        event_team.status,
                        formatting=False,
                        event=current_event,
                        include_team=False,
                        verbose=True))

                additional_prompt = ' Would you like to know more about {} or another team?'.format(
                    team_number)
                text += additional_prompt
                tts += additional_prompt

                messages = cls._create_simple_response(text, tts=tts) +\
                    cls._create_link_chip(current_event.display_name, 'https://www.thebluealliance.com/event/{}'.format(current_event.key.id()))
            else:
                fmt = 'Team {0} is not currently competing. Would you like to know more about {0} or another team?'
                text = fmt.format(team_number)
                tts = fmt.format(cls._team_number_tts(team_number))
                messages = cls._create_simple_response(text, tts=tts)

            messages += cls._create_suggestion_chips([
                'Next match',
                'Location',
                'Rookie year',
                'Another team',
                'No thanks',
            ])
        else:
            fmt = 'Team {0} does not exist. Please ask about another team.'
            text = fmt.format(team_number)
            tts = fmt.format(cls._team_number_tts(team_number))
            messages = cls._create_simple_response(text, tts=tts)

        return {
            'speech': text,
            'messages': messages,
        }