All checks were successful
Deploy / deploy (push) Successful in 57s
Status now reads "Sent" when the confirmation click lands, since that only means MassPrice accepted the run request, not that it finished — their own processing is async and takes anywhere from ~1 to ~22 minutes in observed practice. A new "Complete" column tracks that separately: run_rule() captures a watermark (the target rule's current top data-activitylogid on /Activity/List, not the displayed timestamp string, to sidestep fragile date/timezone parsing) before submitting, and scheduler.py schedules a one-off verify_run() job VERIFY_DELAY_MINUTES later to check whether a new "Complete" entry appeared past that watermark. rebuild_jobs() now only clears recurring "rule-*" jobs, not the one-off "verify-*" jobs, so editing a schedule can't cancel a verification that's already in flight for an earlier run. Also scopes the Activity page to the last 24 hours per request. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H6TgffxTvYhqxykAbVQg2v
39 lines
2.3 KiB
Text
39 lines
2.3 KiB
Text
# ══════════════════════════════════════════════════════════════════
|
|
# MassPrice Scheduler — Environment Variables
|
|
# Copy this file to .env and fill in your values.
|
|
# ══════════════════════════════════════════════════════════════════
|
|
|
|
# ── Login (this tool's own login page, not your MassPrice account) ─
|
|
LOGIN_PASSWORD=changeme
|
|
|
|
# Secret key for Flask session signing — generate a random string:
|
|
# python3 -c "import secrets; print(secrets.token_hex(32))"
|
|
SECRET_KEY=change_this_to_a_random_secret_key
|
|
|
|
# ── Host port (what port Unraid exposes) ────────────────────────────
|
|
# Default is 5057 (arr-summary already uses 5056) — change if in use
|
|
HOST_PORT=5057
|
|
|
|
# ── Timezone ─────────────────────────────────────────────────────────
|
|
# Controls what "6:00 AM" means for your schedules
|
|
TZ=America/Phoenix
|
|
|
|
# ── Run verification delay ──────────────────────────────────────────
|
|
# Minutes to wait after a run is confirmed sent before checking
|
|
# MassPrice's own Activity Log to see whether it actually completed.
|
|
# MassPrice's processing time varies a lot in practice (observed
|
|
# anywhere from ~1 to ~22 minutes) — this is a reasonable middle
|
|
# ground, not a guarantee.
|
|
VERIFY_DELAY_MINUTES=10
|
|
|
|
# ── 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=
|