fixed strava better
This commit is contained in:
@@ -308,63 +308,47 @@ def get_workout(user,stravaid):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
startdatetime = timezone.now()
|
startdatetime = timezone.now()
|
||||||
|
|
||||||
spmjson = get_strava_stream(r,'cadence',stravaid)
|
spm = get_strava_stream(r,'cadence',stravaid)
|
||||||
hrjson = get_strava_stream(r,'heartrate',stravaid)
|
hr = get_strava_stream(r,'heartrate',stravaid)
|
||||||
timejson = get_strava_stream(r,'time',stravaid)
|
t = get_strava_stream(r,'time',stravaid)
|
||||||
velojson = get_strava_stream(r,'velocity_smooth',stravaid)
|
velo = get_strava_stream(r,'velocity_smooth',stravaid)
|
||||||
distancejson = get_strava_stream(r,'distance',stravaid)
|
d = get_strava_stream(r,'distance',stravaid)
|
||||||
latlongjson = get_strava_stream(r,'latlng',stravaid)
|
coords = get_strava_stream(r,'latlng',stravaid)
|
||||||
powerjson = get_strava_stream(r,'power',stravaid)
|
power = get_strava_stream(r,'power',stravaid)
|
||||||
|
|
||||||
try:
|
nr_rows = len(t)
|
||||||
t = np.array(timejson.json()[0]['data'])
|
|
||||||
nr_rows = len(t)
|
|
||||||
d = np.array(distancejson.json()[0]['data'])
|
|
||||||
if nr_rows == 0:
|
|
||||||
return (0,"Error: Time data had zero length")
|
|
||||||
|
|
||||||
except IndexError:
|
if nr_rows == 0:
|
||||||
|
return (0,"Error: Time data had zero length")
|
||||||
|
|
||||||
|
if d is None:
|
||||||
d = 0*t
|
d = 0*t
|
||||||
# return (0,"Error: No Distance information in the Strava data")
|
|
||||||
except KeyError:
|
|
||||||
return (0,"something went wrong with the Strava import")
|
|
||||||
|
|
||||||
try:
|
if spm is None:
|
||||||
spm = np.array(spmjson.json()[0]['data'])
|
|
||||||
except:
|
|
||||||
spm = np.zeros(nr_rows)
|
spm = np.zeros(nr_rows)
|
||||||
|
|
||||||
try:
|
if power is None:
|
||||||
power = np.array(powerjson.json()[0]['data'])
|
|
||||||
except IndexError:
|
|
||||||
power = np.zeros(nr_rows)
|
power = np.zeros(nr_rows)
|
||||||
|
|
||||||
try:
|
if hr is None:
|
||||||
hr = np.array(hrjson.json()[0]['data'])
|
|
||||||
except IndexError:
|
|
||||||
hr = np.zeros(nr_rows)
|
|
||||||
except KeyError:
|
|
||||||
hr = np.zeros(nr_rows)
|
hr = np.zeros(nr_rows)
|
||||||
|
|
||||||
try:
|
if velo is None:
|
||||||
velo = np.array(velojson.json()[0]['data'])
|
|
||||||
except IndexError:
|
|
||||||
velo = np.zeros(nr_rows)
|
|
||||||
except KeyError:
|
|
||||||
velo = np.zeros(nr_rows)
|
velo = np.zeros(nr_rows)
|
||||||
|
|
||||||
dt = np.diff(t).mean()
|
dt = np.diff(t).mean()
|
||||||
wsize = round(5./dt)
|
wsize = round(5./dt)
|
||||||
|
|
||||||
velo2 = ewmovingaverage(velo,wsize)
|
velo2 = ewmovingaverage(velo,wsize)
|
||||||
coords = np.array(latlongjson.json()[0]['data'])
|
|
||||||
try:
|
if coords is not None:
|
||||||
lat = coords[:,0]
|
try:
|
||||||
lon = coords[:,1]
|
lat = coords[:,0]
|
||||||
except IndexError:
|
lon = coords[:,1]
|
||||||
lat = np.zeros(len(t))
|
except IndexError:
|
||||||
lon = np.zeros(len(t))
|
lat = np.zeros(len(t))
|
||||||
except KeyError:
|
lon = np.zeros(len(t))
|
||||||
|
else:
|
||||||
lat = np.zeros(len(t))
|
lat = np.zeros(len(t))
|
||||||
lon = np.zeros(len(t))
|
lon = np.zeros(len(t))
|
||||||
|
|
||||||
|
|||||||
@@ -239,10 +239,12 @@ class WorkoutViewTest(TestCase):
|
|||||||
|
|
||||||
response = self.c.get(url,follow=True)
|
response = self.c.get(url,follow=True)
|
||||||
self.assertEqual(response.status_code,200)
|
self.assertEqual(response.status_code,200)
|
||||||
|
|
||||||
@patch('rowers.dataprep.create_engine')
|
@patch('rowers.dataprep.create_engine')
|
||||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||||
def test_waterworkout_view(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
# @patch('rowers.weather.requests.get', side_effect=mocked_requests)
|
||||||
|
def test_waterworkout_view(self,
|
||||||
|
mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||||
login = self.c.login(username=self.u.username, password=self.password)
|
login = self.c.login(username=self.u.username, password=self.password)
|
||||||
self.assertTrue(login)
|
self.assertTrue(login)
|
||||||
|
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
BIN
rowers/tests/testdata/testdata.csv.gz
vendored
Binary file not shown.
@@ -490,8 +490,13 @@ def get_strava_stream(r,metric,stravaid,series_type='time',fetchresolution='high
|
|||||||
|
|
||||||
|
|
||||||
s = requests.get(url,headers=headers)
|
s = requests.get(url,headers=headers)
|
||||||
|
|
||||||
|
for data in s.json():
|
||||||
|
y = None
|
||||||
|
if data['type'] == metric:
|
||||||
|
return np.array(data['data'])
|
||||||
|
|
||||||
return s
|
return None
|
||||||
|
|
||||||
def allmonths(startdate,enddate):
|
def allmonths(startdate,enddate):
|
||||||
d = startdate
|
d = startdate
|
||||||
|
|||||||
Reference in New Issue
Block a user