mirror of
https://github.com/sstent/garminsync-go.git
synced 2025-12-06 08:01:52 +00:00
checkpoint 3
This commit is contained in:
15
cleanup.sh
Executable file
15
cleanup.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# Move activity.go back to parser directory
|
||||
mv internal/parser/activity.go internal/parser/activity.go
|
||||
|
||||
# Remove extra directories
|
||||
rm -rf internal/parser/activity
|
||||
|
||||
# Revert import paths
|
||||
find . -name '*.go' -exec sed -i \
|
||||
-e 's|parser/activity/activity|parser|g' \
|
||||
-e 's|github.com/sstent/garminsync-go/internal/parser/activity/activity|github.com/sstent/garminsync-go/internal/parser|g' \
|
||||
{} +
|
||||
|
||||
# Remove unused fix_imports script
|
||||
rm -f fix_imports.sh
|
||||
35
internal/parser/activity.go
Normal file
35
internal/parser/activity.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package parser
|
||||
|
||||
import "time"
|
||||
|
||||
// ActivityMetrics contains all metrics extracted from activity files
|
||||
type ActivityMetrics struct {
|
||||
ActivityType string
|
||||
StartTime time.Time
|
||||
Duration time.Duration
|
||||
Distance float64 // in meters
|
||||
MaxHeartRate int
|
||||
AvgHeartRate int
|
||||
AvgPower int
|
||||
Calories int
|
||||
Steps int
|
||||
ElevationGain float64 // in meters
|
||||
ElevationLoss float64 // in meters
|
||||
MinTemperature float64 // in °C
|
||||
MaxTemperature float64 // in °C
|
||||
AvgTemperature float64 // in °C
|
||||
}
|
||||
|
||||
// Parser defines the interface for activity file parsers
|
||||
type Parser interface {
|
||||
ParseFile(filename string) (*ActivityMetrics, error)
|
||||
}
|
||||
|
||||
// FileType represents supported file formats
|
||||
type FileType string
|
||||
|
||||
const (
|
||||
FIT FileType = "fit"
|
||||
TCX FileType = "tcx"
|
||||
GPX FileType = "gpx"
|
||||
)
|
||||
Reference in New Issue
Block a user