getting started importing RP3 workout
This commit is contained in:
@@ -18,7 +18,8 @@ from rowsandall_app.settings import (
|
|||||||
STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
|
STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
|
||||||
RP3_CLIENT_ID, RP3_CLIENT_SECRET,
|
RP3_CLIENT_ID, RP3_CLIENT_SECRET,
|
||||||
RP3_REDIRECT_URI,RP3_CLIENT_KEY,
|
RP3_REDIRECT_URI,RP3_CLIENT_KEY,
|
||||||
RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET
|
RP3_CLIENT_ID, RP3_CLIENT_KEY, RP3_REDIRECT_URI, RP3_CLIENT_SECRET,
|
||||||
|
UPLOAD_SERVICE_URL, UPLOAD_SERVICE_SECRET
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -128,7 +129,7 @@ def get_rp3_workout_token(workout_id,auth_token,waittime=3,max_attempts=20):
|
|||||||
headers = {'Authorization': 'Bearer ' + auth_token }
|
headers = {'Authorization': 'Bearer ' + auth_token }
|
||||||
|
|
||||||
get_download_link = """{
|
get_download_link = """{
|
||||||
download(workout_id: """ + str(workout_id) + """, type:tcx){
|
download(workout_id: """ + str(workout_id) + """, type:csv){
|
||||||
id
|
id
|
||||||
status
|
status
|
||||||
link
|
link
|
||||||
@@ -169,3 +170,37 @@ def get_rp3_workout_link(user,workout_id,waittime=3,max_attempts=20):
|
|||||||
auth_token = rp3_open(user)
|
auth_token = rp3_open(user)
|
||||||
|
|
||||||
return get_rp3_workout_token(workout_id,auth_token,waittime=waittime,max_attempts=max_attempts)
|
return get_rp3_workout_token(workout_id,auth_token,waittime=waittime,max_attempts=max_attempts)
|
||||||
|
|
||||||
|
def get_rp3_workout(user,workout_id,startdatetime=None):
|
||||||
|
url = get_rp3_workout_link(user,workout_id)
|
||||||
|
filename = 'media/RP3Import_'+str(workout_id)+'.csv'
|
||||||
|
|
||||||
|
r = Rower.objects.get(user=user)
|
||||||
|
auth_token = rp3_open(user)
|
||||||
|
|
||||||
|
status_code = download_rp3_file(url, auth_token, filename)
|
||||||
|
|
||||||
|
if status_code != 200:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
userid = user.id
|
||||||
|
|
||||||
|
uploadoptions = {
|
||||||
|
'secret': UPLOAD_SERVICE_SECRET,
|
||||||
|
'user': userid,
|
||||||
|
'file': filename,
|
||||||
|
'workouttype':'dynamic',
|
||||||
|
'boattype':'1x',
|
||||||
|
'rp3id':workout_id,
|
||||||
|
}
|
||||||
|
|
||||||
|
session = requests.session()
|
||||||
|
newHeaders = {'Content-type': 'application/json', 'Accept': 'text/plain'}
|
||||||
|
session.headers.update(newHeaders)
|
||||||
|
|
||||||
|
response = session.post(UPLOAD_SERVICE_URL,json=uploadoptions)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
return response.json()['id']
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
{% for workout in workouts %}
|
{% for workout in workouts %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<a href="/rowers/workout/rp3import/{{ workout|lookup:'id' }}/">Import</a></td>
|
<a href="/rowers/workout/rp3import/{{ workout|lookup:'id' }}/{{ workout|lookup:'starttime'}}/">Import</a></td>
|
||||||
<td>{{ workout|lookup:'starttime' }}</td>
|
<td>{{ workout|lookup:'starttime' }}</td>
|
||||||
<td>{{ workout|lookup:'new' }}</td>
|
<td>{{ workout|lookup:'new' }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -543,6 +543,8 @@ urlpatterns = [
|
|||||||
re_path(r'^workout/stravaimport/user/(?P<userid>\d+)/$',views.workout_stravaimport_view,name='workout_stravaimport_view'),
|
re_path(r'^workout/stravaimport/user/(?P<userid>\d+)/$',views.workout_stravaimport_view,name='workout_stravaimport_view'),
|
||||||
re_path(r'^workout/c2import/all/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
|
re_path(r'^workout/c2import/all/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
|
||||||
re_path(r'^workout/c2import/all/(?P<page>\d+)/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
|
re_path(r'^workout/c2import/all/(?P<page>\d+)/$',views.workout_getc2workout_all,name='workout_getc2workout_all'),
|
||||||
|
re_path(r'^workout/rp3import/(?P<externalid>\d+)/(?P<startdatetime>\w+)/$',views.workout_getrp3importview,
|
||||||
|
name='workout_getrp3importview'),
|
||||||
re_path(r'^workout/(?P<source>\w+.*)import/(?P<externalid>\d+)/$',views.workout_getimportview,name='workout_getimportview'),
|
re_path(r'^workout/(?P<source>\w+.*)import/(?P<externalid>\d+)/$',views.workout_getimportview,name='workout_getimportview'),
|
||||||
re_path(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all,name='workout_getstravaworkout_all'),
|
re_path(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all,name='workout_getstravaworkout_all'),
|
||||||
re_path(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next,name='workout_getstravaworkout_next'),
|
re_path(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next,name='workout_getstravaworkout_next'),
|
||||||
|
|||||||
@@ -1693,7 +1693,6 @@ def workout_getc2workout_all(request,page=1,message=""):
|
|||||||
url = reverse('workouts_view')
|
url = reverse('workouts_view')
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|
||||||
# List of workouts available on Concept2 logbook - for import
|
# List of workouts available on Concept2 logbook - for import
|
||||||
@login_required()
|
@login_required()
|
||||||
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
|
@permission_required('rower.is_coach',fn=get_user_by_userid,raise_exception=True)
|
||||||
@@ -1776,6 +1775,10 @@ importsources = {
|
|||||||
'underarmour':underarmourstuff
|
'underarmour':underarmourstuff
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@login_required()
|
||||||
|
def workout_getrp3importview(request,externalid,startdatetime):
|
||||||
|
return 1
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def workout_getimportview(request,externalid,source = 'c2'):
|
def workout_getimportview(request,externalid,source = 'c2'):
|
||||||
data,strokedata = importsources[source].get_workout(request.user,externalid)
|
data,strokedata = importsources[source].get_workout(request.user,externalid)
|
||||||
|
|||||||
@@ -4775,6 +4775,11 @@ def workout_upload_api(request):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
c2id = ''
|
c2id = ''
|
||||||
|
|
||||||
|
try:
|
||||||
|
rp3id = post_data['rp3id']
|
||||||
|
except KeyError:
|
||||||
|
rp3id = ''
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
garminid = post_data['garminid']
|
garminid = post_data['garminid']
|
||||||
|
|||||||
Reference in New Issue
Block a user