feat: add vo2max, hr zones, cadence, elevation to garmin sync
This commit is contained in:
@@ -25,11 +25,6 @@ data:
|
|||||||
start.isoformat(), today.isoformat()
|
start.isoformat(), today.isoformat()
|
||||||
)
|
)
|
||||||
|
|
||||||
if activities:
|
|
||||||
import json
|
|
||||||
print(json.dumps(activities[0], indent=2, default=str))
|
|
||||||
exit(0)
|
|
||||||
|
|
||||||
conn = psycopg2.connect(db_url)
|
conn = psycopg2.connect(db_url)
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
|
|
||||||
@@ -42,20 +37,59 @@ data:
|
|||||||
duration_seconds FLOAT,
|
duration_seconds FLOAT,
|
||||||
distance_meters FLOAT,
|
distance_meters FLOAT,
|
||||||
avg_hr INTEGER,
|
avg_hr INTEGER,
|
||||||
avg_pace FLOAT
|
max_hr INTEGER,
|
||||||
|
avg_pace FLOAT,
|
||||||
|
vo2max FLOAT,
|
||||||
|
calories FLOAT,
|
||||||
|
elevation_gain FLOAT,
|
||||||
|
steps INTEGER,
|
||||||
|
cadence FLOAT,
|
||||||
|
hr_zone_1 FLOAT,
|
||||||
|
hr_zone_2 FLOAT,
|
||||||
|
hr_zone_3 FLOAT,
|
||||||
|
hr_zone_4 FLOAT,
|
||||||
|
hr_zone_5 FLOAT
|
||||||
)
|
)
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
cur.execute("""
|
||||||
|
ALTER TABLE activities
|
||||||
|
ADD COLUMN IF NOT EXISTS max_hr INTEGER,
|
||||||
|
ADD COLUMN IF NOT EXISTS vo2max FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS calories FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS elevation_gain FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS steps INTEGER,
|
||||||
|
ADD COLUMN IF NOT EXISTS cadence FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS hr_zone_1 FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS hr_zone_2 FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS hr_zone_3 FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS hr_zone_4 FLOAT,
|
||||||
|
ADD COLUMN IF NOT EXISTS hr_zone_5 FLOAT
|
||||||
|
""")
|
||||||
|
|
||||||
for a in activities:
|
for a in activities:
|
||||||
cur.execute("""
|
cur.execute("""
|
||||||
INSERT INTO activities
|
INSERT INTO activities
|
||||||
(id, name, type, start_time, duration_seconds, distance_meters, avg_hr, avg_pace)
|
(id, name, type, start_time, duration_seconds, distance_meters,
|
||||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
|
avg_hr, max_hr, avg_pace, vo2max, calories, elevation_gain,
|
||||||
|
steps, cadence, hr_zone_1, hr_zone_2, hr_zone_3, hr_zone_4, hr_zone_5)
|
||||||
|
VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
|
||||||
ON CONFLICT (id) DO UPDATE SET
|
ON CONFLICT (id) DO UPDATE SET
|
||||||
duration_seconds = EXCLUDED.duration_seconds,
|
duration_seconds = EXCLUDED.duration_seconds,
|
||||||
distance_meters = EXCLUDED.distance_meters,
|
distance_meters = EXCLUDED.distance_meters,
|
||||||
avg_hr = EXCLUDED.avg_hr,
|
avg_hr = EXCLUDED.avg_hr,
|
||||||
avg_pace = EXCLUDED.avg_pace
|
max_hr = EXCLUDED.max_hr,
|
||||||
|
avg_pace = EXCLUDED.avg_pace,
|
||||||
|
vo2max = EXCLUDED.vo2max,
|
||||||
|
calories = EXCLUDED.calories,
|
||||||
|
elevation_gain = EXCLUDED.elevation_gain,
|
||||||
|
steps = EXCLUDED.steps,
|
||||||
|
cadence = EXCLUDED.cadence,
|
||||||
|
hr_zone_1 = EXCLUDED.hr_zone_1,
|
||||||
|
hr_zone_2 = EXCLUDED.hr_zone_2,
|
||||||
|
hr_zone_3 = EXCLUDED.hr_zone_3,
|
||||||
|
hr_zone_4 = EXCLUDED.hr_zone_4,
|
||||||
|
hr_zone_5 = EXCLUDED.hr_zone_5
|
||||||
""", (
|
""", (
|
||||||
a.get("activityId"),
|
a.get("activityId"),
|
||||||
a.get("activityName"),
|
a.get("activityName"),
|
||||||
@@ -64,7 +98,18 @@ data:
|
|||||||
a.get("duration"),
|
a.get("duration"),
|
||||||
a.get("distance"),
|
a.get("distance"),
|
||||||
a.get("averageHR"),
|
a.get("averageHR"),
|
||||||
|
a.get("maxHR"),
|
||||||
a.get("averageSpeed"),
|
a.get("averageSpeed"),
|
||||||
|
a.get("vO2MaxValue"),
|
||||||
|
a.get("calories"),
|
||||||
|
a.get("elevationGain"),
|
||||||
|
a.get("steps"),
|
||||||
|
a.get("averageRunningCadenceInStepsPerMinute"),
|
||||||
|
a.get("hrTimeInZone_1"),
|
||||||
|
a.get("hrTimeInZone_2"),
|
||||||
|
a.get("hrTimeInZone_3"),
|
||||||
|
a.get("hrTimeInZone_4"),
|
||||||
|
a.get("hrTimeInZone_5"),
|
||||||
))
|
))
|
||||||
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|||||||
Reference in New Issue
Block a user