@@ -32,10 +32,12 @@ def __init__(self, email, password):
3232 self .password = password
3333 self .req = requests .session ()
3434 self .logger = logging .getLogger (__name__ )
35+ self .display_name = ""
36+ self .full_name = ""
37+ self .unit_system = ""
3538
36- self .login (self .email , self .password )
3739
38- def login (self , email , password ):
40+ def login (self ):
3941 """
4042 Login to portal
4143 """
@@ -63,8 +65,8 @@ def login(self, email, password):
6365 }
6466
6567 data = {
66- 'username' : email ,
67- 'password' : password ,
68+ 'username' : self . email ,
69+ 'password' : self . password ,
6870 'embed' : 'true' ,
6971 'lt' : 'e1s1' ,
7072 '_eventId' : 'submit' ,
@@ -112,6 +114,7 @@ def login(self, email, password):
112114 self .logger .debug ("Fullname is %s" , self .full_name )
113115 response .raise_for_status ()
114116
117+
115118 def parse_json (self , html , key ):
116119 """
117120 Find and return json data
@@ -121,18 +124,21 @@ def parse_json(self, html, key):
121124 text = found .group (1 ).replace ('\\ "' , '"' )
122125 return json .loads (text )
123126
127+
124128 def get_full_name (self ):
125129 """
126130 Return full name
127131 """
128132 return self .full_name
129133
134+
130135 def get_unit_system (self ):
131136 """
132137 Return unit system
133138 """
134139 return self .unit_system
135140
141+
136142 def get_stats (self , cdate ): # cDate = 'YYY-mm-dd'
137143 """
138144 Fetch available activity data
@@ -151,7 +157,7 @@ def get_stats(self, cdate): # cDate = 'YYY-mm-dd'
151157
152158 if response .json ()['privacyProtected' ] is True :
153159 self .logger .debug ("Session expired - trying relogin" )
154- self .login (self . email , self . password )
160+ self .login ()
155161 try :
156162 response = self .req .get (acturl , headers = self .headers )
157163 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'
162168
163169 return response .json ()
164170
171+
165172 def get_heart_rates (self , cdate ): # cDate = 'YYYY-mm-dd'
166173 """
167174 Fetch available heart rates data
@@ -174,7 +181,7 @@ def get_heart_rates(self, cdate): # cDate = 'YYYY-mm-dd'
174181 response .raise_for_status ()
175182 except requests .exceptions .HTTPError as err :
176183 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 ()
178185 try :
179186 response = self .req .get (hearturl , headers = self .headers )
180187 self .logger .debug ("Heart Rates response code %s, and json %s" , response .status_code , response .json ())
@@ -197,6 +204,7 @@ def __init__(self, status):
197204 super (GarminConnectConnectionError , self ).__init__ (status )
198205 self .status = status
199206
207+
200208class GarminConnectTooManyRequestsError (Exception ):
201209 """Raised when rate limit is exceeded."""
202210
@@ -205,6 +213,7 @@ def __init__(self, status):
205213 super (GarminConnectTooManyRequestsError , self ).__init__ (status )
206214 self .status = status
207215
216+
208217class GarminConnectAuthenticationError (Exception ):
209218 """Raised when login returns wrong result."""
210219
0 commit comments