Package gfit: Add a list of activities.
[kraftakt.git] / gfit / activities.go
1 package gfit
2
3 var Activities = map[string]int64{
4         "Aerobics":                       9,
5         "Archery":                        119,
6         "Awake (during sleep cycle)":     112,
7         "Back-country skiing":            66,
8         "Badminton":                      10,
9         "Baseball":                       11,
10         "Basketball":                     12,
11         "Biathlon":                       13,
12         "Biking":                         1,
13         "Boxing":                         20,
14         "Calisthenics":                   21,
15         "Circuit training":               22,
16         "Cricket":                        23,
17         "Cross-country skiing":           67,
18         "Crossfit":                       113,
19         "Cross skating":                  63,
20         "Curling":                        106,
21         "Dancing":                        24,
22         "Deep sleep":                     110,
23         "Diving":                         102,
24         "Downhill skiing":                68,
25         "Elevator":                       117,
26         "Elliptical":                     25,
27         "Ergometer":                      103,
28         "Escalator":                      118,
29         "Fencing":                        26,
30         "Football (American)":            27,
31         "Football (Australian)":          28,
32         "Football (Soccer)":              29,
33         "Frisbee":                        30,
34         "Gardening":                      31,
35         "Golf":                           32,
36         "Gymnastics":                     33,
37         "Handball":                       34,
38         "Handbiking":                     14,
39         "HIIT":                           114,
40         "Hiking":                         35,
41         "Hockey":                         36,
42         "Horseback riding":               37,
43         "Housework":                      38,
44         "Ice skating":                    104,
45         "Indoor skating":                 105,
46         "Inline skating (rollerblading)": 64,
47         "Interval Training":              115,
48         "In vehicle":                     0,
49         "Jogging":                        56,
50         "Jumping rope":                   39,
51         "Kayaking":                       40,
52         "Kettlebell training":            41,
53         "Kickboxing":                     42,
54         "Kite skiing":                    69,
55         "Kitesurfing":                    43,
56         "Light sleep":                    109,
57         "Martial arts":                   44,
58         "Meditation":                     45,
59         "Mixed martial arts":             46,
60         "Mountain biking":                15,
61         "Nording walking":                94,
62         "On foot":                        2,
63         "Other (unclassified fitness activity)": 108,
64         "P90X exercises":                        47,
65         "Paragliding":                           48,
66         "Pilates":                               49,
67         "Polo":                                  50,
68         "Racquetball":                           51,
69         "REM sleep":                             111,
70         "Road biking":                           16,
71         "Rock climbing":                         52,
72         "Roller skiing":                         70,
73         "Rowing":                                53,
74         "Rowing machine":                        54,
75         "Rugby":                                 55,
76         "Running":                               8,
77         "Running on sand":                       57,
78         "Running (treadmill)":                   58,
79         "Sailing":                               59,
80         "Scuba diving":                          60,
81         "Skateboarding":                         61,
82         "Skating":                               62,
83         "Skiing":                                65,
84         "Sledding":                              71,
85         "Sleeping":                              72,
86         "Snowboarding":                          73,
87         "Snowmobile":                            74,
88         "Snowshoeing":                           75,
89         "Softball":                              120,
90         "Spinning":                              17,
91         "Squash":                                76,
92         "Stair climbing":                        77,
93         "Stair-climbing machine":                78,
94         "Stand-up paddleboarding":               79,
95         "Stationary biking":                     18,
96         "Still (not moving)":                    3,
97         "Strength training":                     80,
98         "Surfing":                               81,
99         "Swimming":                              82,
100         "Swimming (open water)":                 84,
101         "Swimming (swimming pool)":              83,
102         "Table tennis (ping pong)":              85,
103         "Team sports":                           86,
104         "Tennis":                                87,
105         "Tilting (sudden device gravity change)": 5,
106         "Treadmill (walking or running)":         88,
107         "Unknown (unable to detect activity)":    4,
108         "Utility biking":                         19,
109         "Volleyball":                             89,
110         "Volleyball (beach)":                     90,
111         "Volleyball (indoor)":                    91,
112         "Wakeboarding":                           92,
113         "Walking":                                7,
114         "Walking (fitness)":                      93,
115         "Walking (stroller)":                     116,
116         "Walking (treadmill)":                    95,
117         "Waterpolo":                              96,
118         "Weightlifting":                          97,
119         "Wheelchair":                             98,
120         "Windsurfing":                            99,
121         "Yoga":                                   100,
122         "Zumba":                                  101,
123 }
124
125 var fitbitMapping = map[string]string{
126         "Bike":                 "Biking",
127         "Cross Country Skiing": "Cross-country skiing",
128         "Football":             "Football (Soccer)",
129         "Hike":                 "Hiking",
130         "Mountain Bike":        "Mountain biking",
131         "Run":                  "Running",
132         "Sport":                "Other (unclassified fitness activity)",
133         "Swim":                 "Swimming",
134         "Treadmill":            "Treadmill (walking or running)",
135         "Ultimate frisbee":     "Frisbee",
136         "Walk":                 "Walking",
137         "Weights":              "Weightlifting",
138         "Workout":              "Other (unclassified fitness activity)",
139 }
140
141 func ParseFitbitActivity(s string) int64 {
142         if a, ok := Activities[s]; ok {
143                 return a
144         }
145         if name, ok := fitbitMapping[s]; ok {
146                 return Activities[name]
147         }
148
149         return Activities["Unknown (unable to detect activity)"]
150 }