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)
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
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
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