mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 14:25:08 +00:00
Four league fallback logos were each tracked at two paths differing only in case: assets/sports/mlb_logos/MLB.png + mlb.png assets/sports/nba_logos/NBA.png + nba.png assets/sports/nfl_logos/NFL.png + nfl.png assets/sports/nhl_logos/NHL.png + nhl.png On Windows and default macOS the filesystem is case-insensitive, so both index entries map to one physical file. Whichever git writes last wins and the other entry reports as permanently modified, so `git status` can never be clean and any `git pull` flips which one is dirty. For MLB/NBA/NFL the two entries pointed at the same blob, so the collision was only cosmetic. NHL was not: NHL.png is 1439x1621 (672455 B) and nhl.png is 768x768 (107184 B), so which resolution the league fallback logo loaded depended on checkout order rather than on the code. Keep the uppercase path in each pair. Every logo lookup uppercases the abbreviation before building a filename -- LogoDownloader .normalize_abbreviation and .get_logo_filename_variations (src/logo_downloader.py) and LogoHelper.normalize_abbreviation (src/common/logo_helper.py) all do -- and nothing in the tree requests a lowercase league logo, so the uppercase name is what the code actually asks for. For NHL that is also the higher-resolution asset. Removed with `git update-index --force-remove` so the literal index entry is dropped without the case-insensitive working tree deleting the survivor.
assets/
Static assets bundled with LEDMatrix. Do not delete these directories — several look unused from core code alone but are resolved at runtime by installed store plugins.
| Directory | Used by |
|---|---|
fonts/ |
Core (FontManager, DisplayManager) and most plugins |
sports/ |
Core logo tooling (src/logo_downloader.py) and the sports scoreboard plugins; team logos are downloaded here on demand |
stocks/ |
ledmatrix-stocks plugin (crypto_icons/, ticker_icons/) |
weather/ |
ledmatrix-weather plugin (weather icons) |
news_logos/ |
news plugin |
broadcast_logos/ |
news and odds-ticker plugins |
static_images/ |
Legacy examples referenced in the static-image plugin's docs; the plugin itself stores uploads under assets/plugins/<plugin-id>/uploads/ |
plugins/ |
Per-plugin uploaded files (assets/plugins/<plugin-id>/uploads/), served by the web interface |
Plugins resolve these paths relative to the LEDMatrix install directory, so the directories are part of the de-facto plugin API even where no file in this repo references them. New plugins should bundle their own assets or use the per-plugin upload directory instead of adding top-level directories here.