Spaces:
Running
Running
| """Seed data/exercises.json into the SQLite database.""" | |
| import json | |
| import os | |
| import sys | |
| from pathlib import Path | |
| # Allow importing server.py from the project root | |
| ROOT = Path(__file__).parent.parent | |
| sys.path.insert(0, str(ROOT)) | |
| from dotenv import load_dotenv | |
| load_dotenv(ROOT / ".env") | |
| from server import init_db, open_db # noqa: E402 | |
| DATA_PATH = Path(os.getenv("EXERCISES_JSON_PATH", str(ROOT / "data" / "exercises.json"))) | |
| if not DATA_PATH.exists(): | |
| print(f"ERROR: exercises.json not found at {DATA_PATH}") | |
| print("Set EXERCISES_JSON_PATH in .env to override.") | |
| sys.exit(1) | |
| print(f"Loading {DATA_PATH} …") | |
| exercises: list[dict] = json.loads(DATA_PATH.read_text(encoding="utf-8")) | |
| init_db() | |
| conn = open_db() | |
| sql = """ | |
| INSERT OR REPLACE INTO exercises | |
| (id, name, category, body_part, equipment, | |
| instructions_en, instructions_es, instructions_it, instructions_tr, | |
| muscle_group, secondary_muscles, target, image, gif_url, created_at) | |
| VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) | |
| """ | |
| rows = [] | |
| for ex in exercises: | |
| instr = ex.get("instructions") or {} | |
| rows.append(( | |
| ex["id"], | |
| ex["name"], | |
| ex.get("category") or ex.get("body_part"), | |
| ex.get("body_part"), | |
| ex.get("equipment"), | |
| instr.get("en"), | |
| instr.get("es"), | |
| instr.get("it"), | |
| instr.get("tr"), | |
| ex.get("muscle_group"), | |
| json.dumps(ex.get("secondary_muscles") or []), | |
| ex.get("target"), | |
| ex.get("image"), | |
| ex.get("gif_url"), | |
| ex.get("created_at"), | |
| )) | |
| conn.executemany(sql, rows) | |
| conn.commit() | |
| conn.close() | |
| print(f"Done — {len(rows)} exercises seeded into {os.getenv('DB_PATH', 'exercises.db')}") | |