05/23 Phase 12

This commit is contained in:
2026-05-23 12:37:01 -04:00
parent 78e88ae8ab
commit ae0c64f731
7 changed files with 172 additions and 1 deletions
+25
View File
@@ -11,11 +11,31 @@ Sections:
import tkinter as tk
from tkinter import ttk
from datetime import date, timedelta
from db.database import get_db_stats
from db.models import get_all_games, get_last_draw, get_draw_count, get_predictions
from core.analyzer import frequency_analysis
# Weekday indices: Monday=0 … Sunday=6
_DRAW_DAYS: dict[str, list[int]] = {
"Powerball": [0, 2, 5], # Mon, Wed, Sat
"Mega Millions": [1, 4], # Tue, Fri
}
def _next_draw_date(game_name: str, from_date: date | None = None) -> str:
"""Return the next scheduled draw date as 'Day, Mon DD' (e.g. 'Sat, May 24')."""
draw_days = _DRAW_DAYS.get(game_name)
if not draw_days:
return ""
today = from_date or date.today()
for delta in range(1, 8):
candidate = today + timedelta(days=delta)
if candidate.weekday() in draw_days:
return f"{candidate.strftime('%a, %b')} {candidate.day}"
return ""
_HEADER_FONT = ("TkDefaultFont", 10, "bold")
_CARD_FONT = ("TkDefaultFont", 9)
_NUMBER_FONT = ("TkDefaultFont", 12, "bold")
@@ -122,6 +142,11 @@ class DashboardScreen(ttk.Frame):
ttk.Label(card, text=f"Multiplier: {draw['multiplier']}",
foreground="#777777", font=_CARD_FONT).pack(anchor="w")
next_draw = _next_draw_date(game["name"])
if next_draw:
ttk.Label(card, text=f"Next draw: {next_draw}",
foreground="#117a65", font=_CARD_FONT).pack(anchor="w", pady=(6, 0))
def _refresh_db_summary(self):
for w in self._db_body.winfo_children():
w.destroy()