Ejemplo n.º 1
0
def _get_team_str(teamrec, rank_tag):
    clinch = ''
    if 'clinchIndicator' in teamrec:
        clinch = teamrec['clinchIndicator'] + '-'
    rank = ''
    if rank_tag in teamrec:
        rank = teamrec[rank_tag]
    color_on = ''
    color_off = ''
    if mlbapidata.is_fav(teamrec['team']['name']):
        if config.CONFIG.parser['fav_colour'] != '':
            color_on = ANSI.fg(config.CONFIG.parser['fav_colour'])
            color_off = ANSI.reset()
    name = clinch + teamrec['team']['name']
    return '{color_on}{rank:2} {name:28} {win:3} {loss:3} {pct:5} {gb:4} {wgb:4} [{streak}]{color_off}'.format(
        color_on=color_on,
        rank=rank,
        name=name,
        win=teamrec['leagueRecord']['wins'],
        loss=teamrec['leagueRecord']['losses'],
        pct=teamrec['leagueRecord']['pct'],
        gb=teamrec['gamesBack'],
        wgb=teamrec['wildCardGamesBack'],
        streak=teamrec['streak']['streakCode'],
        color_off=color_off)
Ejemplo n.º 2
0
def _get_title_header(display_title, border):
    name = '   {thickborder} {title} {thickborder}'.format(title=display_title,
                                                           thickborder=border.doubledash * int((29-len(display_title))/2 - 1))
    header = '{color_on}{name:31} {win:>3} {loss:>3} {pct:<5} {gb:<4} {wgb:<4} {streak}{color_off}'.format(
        color_on=border.border_color,
        name=name, win='W', loss='L', pct='PCT', gb='GB', wgb='WGB', streak='Streak',
        color_off=ANSI.reset())
    return header
Ejemplo n.º 3
0
def _get_subtitle_header(record, header_tags, border):
    header = ''
    for tag in header_tags:
        if tag in record:
            if 'name' in record[tag]:
                header = _add_to_header(header, record[tag]['name'])
            else:
                header = _add_to_header(header, record[tag])
    if header:
        header = '{color_on}{b1} {title} {b2}{color_off}'.format(color_on=border.border_color,
                                                                 title=header,
                                                                 b1=border.dash*3,
                                                                 b2=border.dash*(52-len(header)),
                                                                 color_off=ANSI.reset())
        return header
    return None
Ejemplo n.º 4
0
    def _display_game_details(self, header, game_pk, game_rec, show_linescore, show_boxscore, show_info, games_displayed_count):
        show_scores = config.CONFIG.parser.getboolean('scores')
        outl = list()
        if games_displayed_count > 1:
            if show_info or show_linescore or show_boxscore:
                outl.append('')
            if show_info:
                outl.extend(header)
        border = displayutil.Border(use_unicode=config.UNICODE)
        color_on = ''
        color_off = ''
        # odd_even = games_displayed_count % 2
        # if odd_even:
        #     color_on = ANSI.fg('yellow')
        # else:
        #     color_on = display'reset'.ANSI.fg('lightblue')
        color_off = ANSI.reset()
        if gamedata.is_fav(game_rec):
            if config.CONFIG.parser['fav_colour'] != '':
                color_on = ANSI.fg(config.CONFIG.parser['fav_colour'])
                color_off = ANSI.reset()
        if game_rec['abstractGameState'] == 'Live':
            color_on += ANSI.control_code('bold')
            color_off = ANSI.reset()
        if game_rec['doubleHeader'] == 'N':
            series_info = "{sgn}/{gis}".format(sgn=game_rec['seriesGameNumber'], gis=game_rec['gamesInSeries'])
        else:
            # series_info = "DH{gn} {sgn}/{gis}".format(sgn=game_rec['seriesGameNumber'],
            #                                           gis=game_rec['gamesInSeries'],
            #                                           gn=game_rec['gameNumber'])
            series_info = "DH-{gn}".format(gn=game_rec['gameNumber'])
        game_info_str = "{time}: {a1} ({a2}) at {h1} ({h2})"\
            .format(time=util.convert_time_to_local(game_rec['mlbdate']),
                    a1=game_rec['away']['display'], a2=game_rec['away']['abbrev'].upper(),
                    h1=game_rec['home']['display'], h2=game_rec['home']['abbrev'].upper())
        game_state = ''
        game_state_color_on = color_on
        game_state_color_off = color_off

        if game_rec['abstractGameState'] in ('Preview', ):
            if game_rec['detailedState'] != 'Scheduled':
                if 'Delayed' in game_rec['detailedState']:
                    game_state = 'Delayed'
                else:
                    game_state = game_rec['detailedState']
        else:
            if show_scores:
                if game_rec['detailedState'] in ('Critical', ):
                    game_state_color_on = ANSI.fg(config.CONFIG.parser['game_critical_colour'])
                    game_state_color_off = ANSI.reset()
                if game_rec['detailedState'] in ('Final', ):
                    game_state = game_rec['detailedState']
                    if 'currentInning' in game_rec['linescore'] and int(game_rec['linescore']['currentInning']) != 9:
                        game_state += '({})'.format(game_rec['linescore']['currentInning'])
                else:
                    if game_rec['linescore']['inningState'] != '':
                        game_state = '{} {}'.format(game_rec['linescore']['inningState'].title(),
                                                    game_rec['linescore']['currentInningOrdinal'])
                    else:
                        game_state = game_rec['linescore']['currentInningOrdinal']
            else:
                game_state = game_rec['abstractGameState']
                if 'In Progress - ' in game_rec['detailedState']:
                    game_state = game_rec['detailedState'].split('In Progress - ')[-1]
                elif game_rec['detailedState'] not in ('Live', 'Final', 'Scheduled', 'In Progress'):
                    game_state = game_rec['detailedState']

        if show_scores:
            score = ''
            if game_rec['abstractGameState'] not in ('Preview', ) and game_rec['detailedState'] not in ('Postponed', ):
                score = '{}-{}'.format(game_rec['linescore']['away']['runs'], game_rec['linescore']['home']['runs'])

            # linescore
            if show_linescore:
                if games_displayed_count > 1 and not show_info:
                    outl.append('{coloron}{dash}{coloroff}'.format(coloron=ANSI.fg('darkgrey'),
                                                                   dash=border.dash*92,
                                                                   coloroff=ANSI.reset()))
                linescore_dict = self._format_linescore(game_rec)
                """
                18:05: LA Dodgers (LAD) at San Francisco (SF)            1  2  3  4  5  6  7  8  9 10 11 12 13 14  R  H  E
                1/2    Final(14): 5-7                              LAD   0  0  1  0  0  2  1  0  0  0  0  0  0  1  5 12  0
                       Feeds: a,h / cnd,rcp                        SF    1  0  0  2  0  1  0  0  0  0  0  0  0  3  7 17  1
                """
                line_fmt = "{coloron}{ginfo:<50} {lscore}{coloroff}"
                # if game_rec['abstractGameState'] not in ('Live', 'Final'):  # or game_rec['detailedState'] in ('Postponed', ):
                #     outl.append(line_fmt.format(coloron=color_on, coloroff=color_off, ginfo=game_info_str, lscore=''))
                #     return outl

                outl.append(line_fmt.format(coloron=color_on, coloroff=color_off,
                                            ginfo=game_info_str, lscore=linescore_dict['header'], pipe=border.pipe))
                if game_state == '':
                    # game_info_str = '{series:7}Not Started'.format(series=series_info)
                    game_info_str = '{series:7}'.format(series=series_info)
                else:
                    if game_rec['abstractGameState'] in ('Live',) \
                            and game_rec['linescore']['inningState'] != 'Mid' and 'raw' in game_rec['linescore']:
                        outs_info = ', {} out'.format(game_rec['linescore']['raw']['outs'])
                    else:
                        outs_info = ''
                    if score:
                        game_info_str = '{series:7}{gstate}: {score}{outs}'.format(series=series_info,
                                                                                   gstate=game_state, score=score, outs=outs_info)
                    else:
                        game_info_str = '{series:7}{gstate}'.format(series=series_info, gstate=game_state)
                outl.append(line_fmt.format(coloron=color_on, coloroff=color_off,
                                            ginfo=game_info_str, lscore=linescore_dict['away']))

                feeds = self.__get_feeds_for_display(game_rec)
                if feeds:
                    game_info_str = '{:7}Feeds: {feeds}'.format('', feeds=self.__get_feeds_for_display(game_rec))
                    outl.append(line_fmt.format(coloron=color_on, coloroff=color_off,
                                                ginfo=game_info_str, lscore=linescore_dict['home']))
                else:
                    outl.append(line_fmt.format(coloron=color_on, coloroff=color_off,
                                                ginfo='', lscore=linescore_dict['home']))
            else:
                # single-line game score
                outl.append(("{coloron}{ginfo:<48} {series:^7}{coloroff} "
                             "{pipe} {coloron}{score:^5}{coloroff} {pipe} "
                             "{gscoloron}{gstate:<9}{gscoloroff} {pipe} {coloron}{feeds}{coloroff}")
                            .format(coloron=color_on, coloroff=color_off,
                                    ginfo=game_info_str, series=series_info, score=score,
                                    gscoloron=game_state_color_on, gstate=game_state, gscoloroff=game_state_color_off,
                                    feeds=self.__get_feeds_for_display(game_rec), pipe=border.pipe))
        else:  # no scores
            outl.append(("{coloron}{ginfo:<48} {series:^7}{coloroff} {pipe} "
                         "{coloron}{gstate:^9}{coloroff} {pipe} {coloron}{feeds}{coloroff}")
                        .format(coloron=color_on, coloroff=color_off,
                                ginfo=game_info_str, series=series_info, gstate=game_state,
                                feeds=self.__get_feeds_for_display(game_rec), pipe=border.pipe))

        if show_info:
            # found_info = False
            for text_type in ('summary', 'preview'):
                if text_type in game_rec and game_rec[text_type]:
                    # if text_type == 'summary':
                    #     outl.append('')
                    outl.append('')
                    for line in game_rec[text_type]:
                        outl.append('{coloron}{text}{coloroff}'.format(coloron=color_on,
                                                                       text=util.strip_html_tags(line, True),
                                                                       coloroff=color_off))
                    # outl.append('')
                    # only show one of summary or preview
                    break

        if show_boxscore:
            outl.extend(self._get_formatted_boxscore(game_rec, color_on, color_off))

        return outl