Default to America/Phoenix and email-alert once when the session expires
All checks were successful
Deploy / deploy (push) Successful in 25s

Phoenix doesn't observe DST, so schedule times stay meaningful
year-round without needing a seasonal adjustment.

notify.py reuses lunch-notifier's existing Gmail-SMTP-with-app-password
pattern rather than adding a new notification channel. The alert fires
exactly once per expiry (not on every failed scheduled run while it's
down) via a dedupe flag in notify_state.json, reset the moment a fresh
session is successfully imported.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H6TgffxTvYhqxykAbVQg2v
This commit is contained in:
Barely Removable 2026-08-31 20:20:06 -07:00
parent 48d8bac332
commit 3b08af7938
7 changed files with 111 additions and 10 deletions

View file

@ -16,4 +16,16 @@ HOST_PORT=5057
# ── Timezone ─────────────────────────────────────────────────────────
# Controls what "6:00 AM" means for your schedules
TZ=America/New_York
TZ=America/Phoenix
# ── Session-expiry email alert (optional) ───────────────────────────
# Sent once when the saved MassPrice session expires/is missing — not
# on every failed run, just the first one after it goes bad. Same
# Gmail-app-password pattern as lunch-notifier: GMAIL_APP_PASSWORD is a
# Gmail *app password* (Google Account → Security → App Passwords), not
# your real Gmail password — required since Gmail blocks plain SMTP auth
# with the account password. Leave blank to disable the alert entirely.
GMAIL_USER=
GMAIL_APP_PASSWORD=
# Defaults to GMAIL_USER if left blank
ALERT_EMAIL=