Skip to content
Merged
4 changes: 2 additions & 2 deletions plugins.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.0.0",
"last_updated": "2026-04-09",
"last_updated": "2026-04-10",
"plugins": [
{
"id": "hello-world",
Expand Down Expand Up @@ -702,7 +702,7 @@
"last_updated": "2026-04-09",
"verified": true,
"screenshot": "",
"latest_version": "2.2.7"
"latest_version": "2.3.0"
},
{
"id": "web-ui-info",
Expand Down
29 changes: 19 additions & 10 deletions plugins/masters-tournament/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def __init__(self, plugin_id, config, display_manager, cache_manager, plugin_man
self._last_hole_advance = {} # per-mode hole timers
self._hole_switch_interval = config.get("hole_display_duration", 15)
self._last_fact_advance = 0
self._fact_advance_interval = 2 # seconds between scroll steps
self._fact_advance_interval = 3 # seconds between scroll steps
self._last_page_advance = {} # per-mode page timers
self._page_interval = config.get("page_display_duration", 15)

Expand Down Expand Up @@ -508,8 +508,12 @@ def _display_fun_facts(self, force_clear: bool) -> bool:
if now - self._last_fact_advance >= self._fact_advance_interval:
self._fact_scroll += 1
self._last_fact_advance = now
# Move to next fact after scrolling through
if self._fact_scroll > 5:
# Derive scroll steps from actual wrapped line count for this fact.
total_lines, visible = self.renderer.get_fun_fact_line_count(
self._fact_index,
)
max_scroll = max(1, total_lines - visible + 1)
if self._fact_scroll >= max_scroll:
self._fact_index += 1
self._fact_scroll = 0
return result
Expand Down Expand Up @@ -570,13 +574,18 @@ def get_vegas_content(self) -> Optional[List[Image.Image]]:
if card:
cards.append(card)

# Fun facts
for i in range(5):
card = self.renderer.render_fun_fact(
i, card_width=cw, card_height=ch,
)
if card:
cards.append(card)
# Fun facts — respect user's enabled setting.
# Use single-line wide cards so horizontal scroll reveals the full text.
fun_facts_enabled = self.config.get("display_modes", {}).get(
"fun_facts", {}
).get("enabled", True)
if fun_facts_enabled:
for i in range(5):
card = self.renderer.render_fun_fact_vegas(
i, card_height=ch,
)
if card:
cards.append(card)

return cards if cards else None

Expand Down
6 changes: 3 additions & 3 deletions plugins/masters-tournament/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "masters-tournament",
"name": "Masters Tournament",
"version": "2.2.7",
"version": "2.3.0",
"description": "Broadcast-quality Masters Tournament display with real ESPN player headshots, accurate Augusta National hole layouts, fun facts, past champions, live leaderboards, and pixel-perfect LED matrix rendering",
"author": "ChuckBuilds",
"class_name": "MastersTournamentPlugin",
Expand Down Expand Up @@ -44,8 +44,8 @@
},
"versions": [
{
"version": "2.2.7",
"released": "2026-04-09",
"version": "2.3.0",
"released": "2026-04-10",
"ledmatrix_min_version": "2.0.0"
},
{
Expand Down
Loading