feat: FF CSV bundled in image + auto-import on startup
- forex_factory_cache.csv moved to backend/ (Docker build context) → available at /app/forex_factory_cache.csv inside container - main.py startup: auto-imports CSV in background thread if ff_calendar empty (idempotent — skips if rows already present) - CSV path candidates: /app/ (Docker) → /tmp/ (upload) → local dev paths - CalendarPage: remove Upload CSV + Import into DB buttons → replaced by auto-import status indicator + Sync Live only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -296,11 +296,12 @@ def upcoming_events() -> List[Dict[str, Any]]:
|
||||
_ff_import_status: Dict[str, Any] = {"running": False, "last_result": None}
|
||||
_ff_sync_status: Dict[str, Any] = {"running": False, "last_result": None}
|
||||
|
||||
# CSV may sit at project root (local dev) or in /tmp (uploaded via browser on server)
|
||||
# CSV search order: Docker image (/app), uploaded to /tmp, local dev paths
|
||||
_FF_CSV_CANDIDATES = [
|
||||
"/tmp/forex_factory_cache.csv",
|
||||
os.path.join(os.path.dirname(__file__), "..", "forex_factory_cache.csv"),
|
||||
os.path.join(os.path.dirname(__file__), "..", "..", "forex_factory_cache.csv"),
|
||||
"/app/forex_factory_cache.csv", # Docker (backend/ copied to /app)
|
||||
"/tmp/forex_factory_cache.csv", # browser upload
|
||||
os.path.join(os.path.dirname(__file__), "..", "forex_factory_cache.csv"), # local dev (backend/)
|
||||
os.path.join(os.path.dirname(__file__), "..", "..", "forex_factory_cache.csv"), # project root
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user