From a5a9398c5cbe47b093c083d5783fd6f7b1c79bca Mon Sep 17 00:00:00 2001 From: Alex Resnick Date: Sun, 14 Sep 2025 15:44:50 -0500 Subject: [PATCH] Add Emulator Support (#35) * Add emulator * Update limit for ESPM API * use params --------- Co-authored-by: Alex Resnick --- requirements-emulator.txt | 1 + src/calendar_manager.py | 1 - src/display_manager.py | 6 +++++- src/logo_downloader.py | 2 +- src/ncaa_fb_managers.py | 4 ++-- src/nfl_managers.py | 4 ++-- src/of_the_day_manager.py | 7 ++----- src/youtube_display.py | 2 -- 8 files changed, 13 insertions(+), 14 deletions(-) create mode 100644 requirements-emulator.txt diff --git a/requirements-emulator.txt b/requirements-emulator.txt new file mode 100644 index 00000000..c7f50e88 --- /dev/null +++ b/requirements-emulator.txt @@ -0,0 +1 @@ +RGBMatrixEmulator \ No newline at end of file diff --git a/src/calendar_manager.py b/src/calendar_manager.py index 0cb33a56..35d4c798 100644 --- a/src/calendar_manager.py +++ b/src/calendar_manager.py @@ -9,7 +9,6 @@ from googleapiclient.discovery import build import pickle from PIL import Image, ImageDraw, ImageFont import numpy as np -from rgbmatrix import graphics import pytz from src.config_manager import ConfigManager import time diff --git a/src/display_manager.py b/src/display_manager.py index 84c515a0..4ee9ad72 100644 --- a/src/display_manager.py +++ b/src/display_manager.py @@ -1,4 +1,8 @@ -from rgbmatrix import RGBMatrix, RGBMatrixOptions +import os +if os.getenv("EMULATOR", "false") == "true": + from RGBMatrixEmulator import RGBMatrix, RGBMatrixOptions +else: + from rgbmatrix import RGBMatrix, RGBMatrixOptions from PIL import Image, ImageDraw, ImageFont import time from typing import Dict, Any, List, Tuple diff --git a/src/logo_downloader.py b/src/logo_downloader.py index 702048d4..0f7146f8 100644 --- a/src/logo_downloader.py +++ b/src/logo_downloader.py @@ -161,7 +161,7 @@ class LogoDownloader: try: logger.info(f"Fetching team data for {league} from ESPN API...") - response = self.session.get(api_url, headers=self.headers, timeout=self.request_timeout) + response = self.session.get(api_url, params={'limit':1000},headers=self.headers, timeout=self.request_timeout) response.raise_for_status() data = response.json() diff --git a/src/ncaa_fb_managers.py b/src/ncaa_fb_managers.py index fd3ca14d..22bf9cd2 100644 --- a/src/ncaa_fb_managers.py +++ b/src/ncaa_fb_managers.py @@ -229,8 +229,8 @@ class BaseNCAAFBManager: # Renamed class self.logger.info(f"[NCAAFB] Fetching full {year} season schedule from ESPN API...") try: - url = f"https://site.api.espn.com/apis/site/v2/sports/football/college-football/scoreboard?dates={year}&seasontype=2" - response = self.session.get(url, headers=self.headers, timeout=15) + url = f"https://site.api.espn.com/apis/site/v2/sports/football/college-football/scoreboard" + response = self.session.get(url, params={"dates": year,"seasontype":2,"limit":1000},headers=self.headers, timeout=15) response.raise_for_status() data = response.json() events = data.get('events', []) diff --git a/src/nfl_managers.py b/src/nfl_managers.py index 16b65101..ed8deddd 100644 --- a/src/nfl_managers.py +++ b/src/nfl_managers.py @@ -154,8 +154,8 @@ class BaseNFLManager: # Renamed class self.logger.info(f"[NFL] Fetching full {current_year} season schedule from ESPN API (cache_enabled={use_cache})...") try: - url = f"https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard?dates={current_year}" - response = self.session.get(url, headers=self.headers, timeout=15) + url = f"https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard" + response = self.session.get(url, params={"dates": current_year, "limit":1000}, headers=self.headers, timeout=15) response.raise_for_status() data = response.json() events = data.get('events', []) diff --git a/src/of_the_day_manager.py b/src/of_the_day_manager.py index 197bd55a..ee5ad12a 100644 --- a/src/of_the_day_manager.py +++ b/src/of_the_day_manager.py @@ -1,11 +1,8 @@ import os import json import logging -from datetime import datetime, date -from PIL import Image, ImageDraw, ImageFont -import numpy as np -from rgbmatrix import graphics -import pytz +from datetime import date +from PIL import ImageDraw, ImageFont from src.config_manager import ConfigManager import time import freetype diff --git a/src/youtube_display.py b/src/youtube_display.py index 3299b499..d9feed1c 100644 --- a/src/youtube_display.py +++ b/src/youtube_display.py @@ -4,8 +4,6 @@ import time import logging from PIL import Image, ImageDraw, ImageFont import requests -from rgbmatrix import RGBMatrix, RGBMatrixOptions -import os from typing import Dict, Any # Import the API counter function from web interface