fix activities' types

This commit is contained in:
Davide Scaini
2026-03-29 10:37:08 +02:00
parent 3441079913
commit 643d092acd
5 changed files with 60 additions and 19 deletions
+12 -2
View File
@@ -16,7 +16,7 @@ class FitParser:
points: list[DataPoint] = []
laps: list[LapData] = []
sport: str = "cycling"
sport: str = "other"
sub_sport: str | None = None
device: str | None = None
@@ -26,9 +26,19 @@ class FitParser:
continue
if frame.name == "sport":
sport = normalise_sport(_get(frame, "sport", "cycling"))
sport = normalise_sport(_get(frame, "sport"))
sub_sport = _normalise_sub_sport(_get(frame, "sub_sport"))
elif frame.name == "session":
# Karoo and Strava-generated FIT files store sport here
# instead of (or in addition to) a separate 'sport' message.
# Only use session sport if no 'sport' frame was seen yet.
if sport == "other":
raw_sport = _get(frame, "sport")
if raw_sport is not None:
sport = normalise_sport(raw_sport)
sub_sport = _normalise_sub_sport(_get(frame, "sub_sport"))
elif frame.name == "device_info":
mfr = _get(frame, "manufacturer")
prod = _get(frame, "product_name") or _get(frame, "garmin_product")