40 lines
1.1 KiB
Python
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")
|