2222from .session_cache import SessionCache
2323from .utils import get_hostname , get_user_agent
2424from .packages import tzlocal
25+ from .packages import certifi
2526
2627
2728log = logging .getLogger ('WakaTime' )
@@ -101,16 +102,12 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False):
101102 should_try_ntlm = '\\ ' in args .proxy
102103 proxies ['https' ] = args .proxy
103104
104- ssl_verify = not args .nosslverify
105- if args .ssl_certs_file and ssl_verify :
106- ssl_verify = args .ssl_certs_file
107-
108105 # send request to api
109106 response , code = None , None
110107 try :
111108 response = session .post (api_url , data = request_body , headers = headers ,
112109 proxies = proxies , timeout = timeout ,
113- verify = ssl_verify )
110+ verify = _get_verify ( args ) )
114111 except RequestException :
115112 if should_try_ntlm :
116113 return send_heartbeats (heartbeats , args , configs , use_ntlm_proxy = True )
@@ -204,10 +201,6 @@ def get_time_today(args, use_ntlm_proxy=False):
204201 should_try_ntlm = '\\ ' in args .proxy
205202 proxies ['https' ] = args .proxy
206203
207- ssl_verify = not args .nosslverify
208- if args .ssl_certs_file and ssl_verify :
209- ssl_verify = args .ssl_certs_file
210-
211204 params = {
212205 'start' : 'today' ,
213206 'end' : 'today' ,
@@ -218,7 +211,7 @@ def get_time_today(args, use_ntlm_proxy=False):
218211 try :
219212 response = session .get (url , params = params , headers = headers ,
220213 proxies = proxies , timeout = timeout ,
221- verify = ssl_verify )
214+ verify = _get_verify ( args ) )
222215 except RequestException :
223216 if should_try_ntlm :
224217 return get_time_today (args , use_ntlm_proxy = True )
@@ -282,6 +275,16 @@ def get_time_today(args, use_ntlm_proxy=False):
282275 return None , API_ERROR
283276
284277
278+ def _get_verify (args ):
279+ verify = not args .nosslverify
280+ if verify :
281+ if args .ssl_certs_file :
282+ verify = args .ssl_certs_file
283+ else :
284+ verify = certifi .where ()
285+ return verify
286+
287+
285288def _process_server_results (heartbeats , code , content , results , args , configs ):
286289 log .debug ({
287290 'response_code' : code ,
0 commit comments