diff --git a/rowers/polarstuff.py b/rowers/polarstuff.py index 1b703b84..2e2609bf 100644 --- a/rowers/polarstuff.py +++ b/rowers/polarstuff.py @@ -139,8 +139,11 @@ def get_polar_notifications(): available_data = [] - if response.status_code == 200: - available_data = response.json()['available-user-data'] + try: + if response.status_code == 200: + available_data = response.json()['available-user-data'] + except AttributeError: + pass return available_data diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index 7dde007b..5db8dd31 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -45,6 +45,7 @@ except ImportError: # pragma: no cover JSONDecodeError = ValueError from rowers.imports import * +from rowers.utils import dologging webhookverification = "kudos_to_rowing" webhooklink = SITE_URL+'/rowers/strava/webhooks/' @@ -501,6 +502,7 @@ def workout_strava_upload(user,w, quick=False,asynchron=True): tcxfile,w.name,activity_type, w.notes ) + dologging('strava_export_log.log','Exporting as {t}'.format(t=activity_type)) return "Asynchronous sync",-1 try: tcxfile,tcxmesg = createstravaworkoutdata(w) diff --git a/rowers/tasks.py b/rowers/tasks.py index c8d53492..90634228 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -341,6 +341,7 @@ def handle_strava_sync(stravatoken,workoutid,filename,name,activity_type,descrip dologging('strava_fail.log','Strava upload failed for Workout {id}'.format(id=workoutid)) failed = True except FileNotFoundError: # pragma: no cover + dologging('strava_fail.log','Strava upload failed for Workout {id}'.format(id=workoutid)) failed = True if not failed: @@ -348,21 +349,21 @@ def handle_strava_sync(stravatoken,workoutid,filename,name,activity_type,descrip try: act = client.update_activity(res.id,activity_type=activity_type, description=description,device_name='Rowsandall.com') - dologging('stravalog.log','Updating activity {id} to {type}'.format( + dologging('strava_export_log.log','Updating activity {id} to {type}'.format( id=workoutid, type=activity_type )) except TypeError: # pragma: no cover act = client.update_activity(res.id,activity_type=activity_type, description=description) - dologging('stravalog.log','Updating activity {id} to {type}'.format( + dologging('strava_export_log.log','Updating activity {id} to {type}'.format( id=workoutid, type=activity_type )) except: # pragma: no cover e = sys.exc_info()[0] - dologging('stravalog.log','Update activity failed with error {e} for {id} to {type}'.format( + dologging('strava_export_log.log','Update activity failed with error {e} for {id} to {type}'.format( id=workoutid, type=activity_type, e=e @@ -3168,7 +3169,7 @@ def df_from_summary(data): distances = [0] try: spms = [splits[0]['stroke_rate']] - except (KeyError, TypeError): # pragma: no cover + except (KeyError, TypeError, IndexError): # pragma: no cover spms = [0] try: hrs = [splits[0]['heart_rate']['average']] @@ -3298,9 +3299,13 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,delaysec,defaulttimezone strokedata = pd.DataFrame.from_dict(s.json()['data']) - res = make_cumvalues(0.1*strokedata['t']) - cum_time = res[0] - lapidx = res[1] + try: + res = make_cumvalues(0.1*strokedata['t']) + cum_time = res[0] + lapidx = res[1] + except KeyError: + dologging('debuglog.log','No time values in stroke data') + return 0 unixtime = cum_time+starttimeunix diff --git a/rowers/uploads.py b/rowers/uploads.py index de373685..a1847e20 100644 --- a/rowers/uploads.py +++ b/rowers/uploads.py @@ -15,6 +15,7 @@ from rowers.tasks import ( from rowers.models import GraphImage from rowers.rower_rules import ispromember +from rowers.utils import dologging from PIL import Image @@ -600,6 +601,13 @@ def do_sync(w,options, quick=False): message,id = stravastuff.workout_strava_upload( w.user.user,w,quick=quick,asynchron=True, ) + dologging( + 'strava_export_log.log', + 'exporting workout {id} as {type}'.format( + id=w.id, + type = w.workouttype, + ) + ) except NoTokenError: # pragma: no cover id = 0 message = "Please connect to Strava first" diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 5b1baca3..3021d9b9 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -1537,7 +1537,7 @@ def workout_c2import_view(request,page=1,userid=0,message=""): with open('c2blocked.json','r') as c2blocked: jsondata = json.load(c2blocked) parkedids = jsondata['ids'] - except (FileNotFoundError,JSONDecodeError): # pragma: no cover + except: # pragma: no cover pass knownc2ids = uniqify(knownc2ids+tombstones+parkedids)