@@ -32,10 +32,12 @@ def __init__(self, email, password):
32
32
self .password = password
33
33
self .req = requests .session ()
34
34
self .logger = logging .getLogger (__name__ )
35
+ self .display_name = ""
36
+ self .full_name = ""
37
+ self .unit_system = ""
35
38
36
- self .login (self .email , self .password )
37
39
38
- def login (self , email , password ):
40
+ def login (self ):
39
41
"""
40
42
Login to portal
41
43
"""
@@ -63,8 +65,8 @@ def login(self, email, password):
63
65
}
64
66
65
67
data = {
66
- 'username' : email ,
67
- 'password' : password ,
68
+ 'username' : self . email ,
69
+ 'password' : self . password ,
68
70
'embed' : 'true' ,
69
71
'lt' : 'e1s1' ,
70
72
'_eventId' : 'submit' ,
@@ -112,6 +114,7 @@ def login(self, email, password):
112
114
self .logger .debug ("Fullname is %s" , self .full_name )
113
115
response .raise_for_status ()
114
116
117
+
115
118
def parse_json (self , html , key ):
116
119
"""
117
120
Find and return json data
@@ -121,18 +124,21 @@ def parse_json(self, html, key):
121
124
text = found .group (1 ).replace ('\\ "' , '"' )
122
125
return json .loads (text )
123
126
127
+
124
128
def get_full_name (self ):
125
129
"""
126
130
Return full name
127
131
"""
128
132
return self .full_name
129
133
134
+
130
135
def get_unit_system (self ):
131
136
"""
132
137
Return unit system
133
138
"""
134
139
return self .unit_system
135
140
141
+
136
142
def get_stats (self , cdate ): # cDate = 'YYY-mm-dd'
137
143
"""
138
144
Fetch available activity data
@@ -151,7 +157,7 @@ def get_stats(self, cdate): # cDate = 'YYY-mm-dd'
151
157
152
158
if response .json ()['privacyProtected' ] is True :
153
159
self .logger .debug ("Session expired - trying relogin" )
154
- self .login (self . email , self . password )
160
+ self .login ()
155
161
try :
156
162
response = self .req .get (acturl , headers = self .headers )
157
163
self .logger .debug ("Activities response code %s, and json %s" , response .status_code , response .json ())
@@ -162,6 +168,7 @@ def get_stats(self, cdate): # cDate = 'YYY-mm-dd'
162
168
163
169
return response .json ()
164
170
171
+
165
172
def get_heart_rates (self , cdate ): # cDate = 'YYYY-mm-dd'
166
173
"""
167
174
Fetch available heart rates data
@@ -174,7 +181,7 @@ def get_heart_rates(self, cdate): # cDate = 'YYYY-mm-dd'
174
181
response .raise_for_status ()
175
182
except requests .exceptions .HTTPError as err :
176
183
self .logger .debug ("Exception occured during heart rate retrieval - perhaps session expired - trying relogin: %s" % err )
177
- self .login (self . email , self . password )
184
+ self .login ()
178
185
try :
179
186
response = self .req .get (hearturl , headers = self .headers )
180
187
self .logger .debug ("Heart Rates response code %s, and json %s" , response .status_code , response .json ())
@@ -197,6 +204,7 @@ def __init__(self, status):
197
204
super (GarminConnectConnectionError , self ).__init__ (status )
198
205
self .status = status
199
206
207
+
200
208
class GarminConnectTooManyRequestsError (Exception ):
201
209
"""Raised when rate limit is exceeded."""
202
210
@@ -205,6 +213,7 @@ def __init__(self, status):
205
213
super (GarminConnectTooManyRequestsError , self ).__init__ (status )
206
214
self .status = status
207
215
216
+
208
217
class GarminConnectAuthenticationError (Exception ):
209
218
"""Raised when login returns wrong result."""
210
219
0 commit comments