diff --git a/assets/broadcast_logos/abc.png b/assets/broadcast_logos/abc.png new file mode 100644 index 00000000..b2179c65 Binary files /dev/null and b/assets/broadcast_logos/abc.png differ diff --git a/assets/broadcast_logos/accn.png b/assets/broadcast_logos/accn.png new file mode 100644 index 00000000..80278daf Binary files /dev/null and b/assets/broadcast_logos/accn.png differ diff --git a/assets/broadcast_logos/btn.png b/assets/broadcast_logos/btn.png new file mode 100644 index 00000000..f0e7acb1 Binary files /dev/null and b/assets/broadcast_logos/btn.png differ diff --git a/assets/broadcast_logos/cbs.png b/assets/broadcast_logos/cbs.png new file mode 100644 index 00000000..61cc47dd Binary files /dev/null and b/assets/broadcast_logos/cbs.png differ diff --git a/assets/broadcast_logos/cbssn.png b/assets/broadcast_logos/cbssn.png new file mode 100644 index 00000000..a585f4d7 Binary files /dev/null and b/assets/broadcast_logos/cbssn.png differ diff --git a/assets/broadcast_logos/espn-sec-us.png b/assets/broadcast_logos/espn-sec-us.png new file mode 100644 index 00000000..869d10bf Binary files /dev/null and b/assets/broadcast_logos/espn-sec-us.png differ diff --git a/assets/broadcast_logos/espn.png b/assets/broadcast_logos/espn.png new file mode 100644 index 00000000..a29409be Binary files /dev/null and b/assets/broadcast_logos/espn.png differ diff --git a/assets/broadcast_logos/espn2.png b/assets/broadcast_logos/espn2.png new file mode 100644 index 00000000..6fa4fdb4 Binary files /dev/null and b/assets/broadcast_logos/espn2.png differ diff --git a/assets/broadcast_logos/espn3.png b/assets/broadcast_logos/espn3.png new file mode 100644 index 00000000..c2b8b529 Binary files /dev/null and b/assets/broadcast_logos/espn3.png differ diff --git a/assets/broadcast_logos/espnu.png b/assets/broadcast_logos/espnu.png new file mode 100644 index 00000000..26e66c76 Binary files /dev/null and b/assets/broadcast_logos/espnu.png differ diff --git a/assets/broadcast_logos/fox.png b/assets/broadcast_logos/fox.png new file mode 100644 index 00000000..7fa8a16f Binary files /dev/null and b/assets/broadcast_logos/fox.png differ diff --git a/assets/broadcast_logos/fs1.png b/assets/broadcast_logos/fs1.png new file mode 100644 index 00000000..ea5ba3ed Binary files /dev/null and b/assets/broadcast_logos/fs1.png differ diff --git a/assets/broadcast_logos/fs2.png b/assets/broadcast_logos/fs2.png new file mode 100644 index 00000000..273a6893 Binary files /dev/null and b/assets/broadcast_logos/fs2.png differ diff --git a/assets/broadcast_logos/mlbn.png b/assets/broadcast_logos/mlbn.png new file mode 100644 index 00000000..37da7d03 Binary files /dev/null and b/assets/broadcast_logos/mlbn.png differ diff --git a/assets/broadcast_logos/nbc.png b/assets/broadcast_logos/nbc.png new file mode 100644 index 00000000..7002950f Binary files /dev/null and b/assets/broadcast_logos/nbc.png differ diff --git a/assets/broadcast_logos/nfln.png b/assets/broadcast_logos/nfln.png new file mode 100644 index 00000000..433ab8d2 Binary files /dev/null and b/assets/broadcast_logos/nfln.png differ diff --git a/assets/broadcast_logos/pac12n.png b/assets/broadcast_logos/pac12n.png new file mode 100644 index 00000000..1ac1687b Binary files /dev/null and b/assets/broadcast_logos/pac12n.png differ diff --git a/assets/broadcast_logos/tbs.png b/assets/broadcast_logos/tbs.png new file mode 100644 index 00000000..2c1c551a Binary files /dev/null and b/assets/broadcast_logos/tbs.png differ diff --git a/assets/broadcast_logos/tnt.png b/assets/broadcast_logos/tnt.png new file mode 100644 index 00000000..79cc104e Binary files /dev/null and b/assets/broadcast_logos/tnt.png differ diff --git a/assets/broadcast_logos/tru.png b/assets/broadcast_logos/tru.png new file mode 100644 index 00000000..b7497f58 Binary files /dev/null and b/assets/broadcast_logos/tru.png differ diff --git a/src/odds_ticker_manager.py b/src/odds_ticker_manager.py index 75f16b13..a7222fb4 100644 --- a/src/odds_ticker_manager.py +++ b/src/odds_ticker_manager.py @@ -259,6 +259,13 @@ class OddsTickerManager: away_abbr = away_team['team']['abbreviation'] home_name = home_team['team'].get('name', home_abbr) away_name = away_team['team'].get('name', away_abbr) + + broadcast_info = "" + broadcasts = event.get('competitions', [{}])[0].get('broadcasts', []) + if broadcasts: + broadcast_info = broadcasts[0].get('media', {}).get('shortName', "") + logger.info(f"Found broadcast info for game {game_id}: {broadcast_info}") + # Only process favorite teams if enabled if self.show_favorite_teams_only: if not favorite_teams: @@ -294,6 +301,7 @@ class OddsTickerManager: 'home_record': home_record, 'away_record': away_record, 'odds': odds_data if has_odds else None, + 'broadcast_info': broadcast_info, 'logo_dir': league_config.get('logo_dir', f'assets/sports/{league.lower()}_logos') } all_games.append(game) @@ -402,11 +410,14 @@ class OddsTickerManager: # Get team logos home_logo = self._get_team_logo(game['home_team'], game['logo_dir']) away_logo = self._get_team_logo(game['away_team'], game['logo_dir']) + broadcast_logo = self._get_team_logo(game.get('broadcast_info', ''), 'assets/broadcast_logos') if home_logo: home_logo = home_logo.resize((logo_size, logo_size), Image.Resampling.LANCZOS) if away_logo: away_logo = away_logo.resize((logo_size, logo_size), Image.Resampling.LANCZOS) + if broadcast_logo: + broadcast_logo = broadcast_logo.resize((logo_size, logo_size), Image.Resampling.LANCZOS) # Create a temporary draw object to measure text temp_draw = ImageDraw.Draw(Image.new('RGB', (1, 1))) @@ -445,6 +456,9 @@ class OddsTickerManager: date_width = int(temp_draw.textlength(date_text, font=datetime_font)) time_width = int(temp_draw.textlength(time_text, font=datetime_font)) datetime_col_width = max(day_width, date_width, time_width) + if broadcast_logo: + datetime_col_width = max(datetime_col_width, broadcast_logo.width) + # Odds text odds = game.get('odds') or {} @@ -549,6 +563,10 @@ class OddsTickerManager: draw.text((current_x, date_y), date_text, font=datetime_font, fill=(255, 255, 255)) draw.text((current_x, time_y), time_text, font=datetime_font, fill=(255, 255, 255)) + if broadcast_logo: + broadcast_y = time_y + datetime_font_height + 2 + image.paste(broadcast_logo, (int(current_x), broadcast_y), broadcast_logo if broadcast_logo.mode == 'RGBA' else None) + return image def _create_ticker_image(self):