Files
FitTrack2/FitnessSync/scratch/inspect_fit_fields.py
2026-01-09 12:10:58 -08:00

40 lines
1.1 KiB
Python

import sys
import os
import io
import fitdecode
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# Add backend to path
sys.path.append(os.path.join(os.getcwd(), 'backend'))
from src.models.activity import Activity
from src.utils.config import config
# Setup DB
engine = create_engine(config.DATABASE_URL)
Session = sessionmaker(bind=engine)
db = Session()
def inspect_activity(garmin_activity_id):
activity = db.query(Activity).filter(Activity.garmin_activity_id == garmin_activity_id).first()
if not activity:
print("Activity not found")
return
content = activity.file_content
print(f"File Size: {len(content)} bytes")
with io.BytesIO(content) as f:
with fitdecode.FitReader(f) as fit:
for frame in fit:
if frame.frame_type == fitdecode.FIT_FRAME_DATA and frame.name == 'record':
print("First Record Fields:")
for field in frame.fields:
print(f" - {field.name}: {field.value} (units: {field.units})")
break
if __name__ == "__main__":
inspect_activity("21249259141")