adding async option to NK import
This commit is contained in:
@@ -902,7 +902,7 @@ def make_authorization_url(request):
|
|||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
# Get workout from C2 ID
|
# Get workout from C2 ID
|
||||||
def get_workout(user,c2id):
|
def get_workout(user,c2id,do_async=False):
|
||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if (r.c2token == '') or (r.c2token is None):
|
if (r.c2token == '') or (r.c2token is None):
|
||||||
s = "Token doesn't exist. Need to authorize"
|
s = "Token doesn't exist. Need to authorize"
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ def get_nk_workout_list(user,fake=False,after=0,before=0):
|
|||||||
|
|
||||||
#
|
#
|
||||||
|
|
||||||
def get_workout(user,nkid):
|
def get_workout(user,nkid,do_async=False):
|
||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if (r.nktoken == '') or (r.nktoken is None):
|
if (r.nktoken == '') or (r.nktoken is None):
|
||||||
s = "Token doesn't exist. Need to authorize"
|
s = "Token doesn't exist. Need to authorize"
|
||||||
@@ -260,6 +260,27 @@ def get_workout(user,nkid):
|
|||||||
'sessionIds': nkid,
|
'sessionIds': nkid,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if do_async:
|
||||||
|
res = get_nk_workout_list(r.user)
|
||||||
|
if res.status_code != 200:
|
||||||
|
return 0
|
||||||
|
alldata = {}
|
||||||
|
for item in res.json():
|
||||||
|
alldata[item['id']] = item
|
||||||
|
|
||||||
|
res = myqueue(
|
||||||
|
queuehigh,
|
||||||
|
handle_nk_async_workout,
|
||||||
|
alldata,
|
||||||
|
r.user.id,
|
||||||
|
r.nktoken,
|
||||||
|
nkid,
|
||||||
|
0,
|
||||||
|
r.defaulttimezone,
|
||||||
|
)
|
||||||
|
|
||||||
|
return {},pd.DataFrame()
|
||||||
|
|
||||||
|
|
||||||
authorizationstring = str('Bearer ' + r.nktoken)
|
authorizationstring = str('Bearer ' + r.nktoken)
|
||||||
headers = {'Authorization': authorizationstring,
|
headers = {'Authorization': authorizationstring,
|
||||||
@@ -292,7 +313,6 @@ def get_workout(user,nkid):
|
|||||||
before = before+timedelta(days=1)
|
before = before+timedelta(days=1)
|
||||||
before = str(int(before.timestamp())*1000)
|
before = str(int(before.timestamp())*1000)
|
||||||
after = str(int(after.timestamp())*1000)
|
after = str(int(after.timestamp())*1000)
|
||||||
print(after)
|
|
||||||
|
|
||||||
|
|
||||||
url = NK_API_LOCATION+"api/v1/sessions/"
|
url = NK_API_LOCATION+"api/v1/sessions/"
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ def get_runkeeper_workout_list(user):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
# Get workout summary data by Runkeeper ID
|
# Get workout summary data by Runkeeper ID
|
||||||
def get_workout(user,runkeeperid):
|
def get_workout(user,runkeeperid,do_async=False):
|
||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
|
if (r.runkeepertoken == '') or (r.runkeepertoken is None):
|
||||||
return custom_exception_handler(401,s)
|
return custom_exception_handler(401,s)
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ def get_sporttracks_workout_list(user):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
# Get workout summary data by SportTracks ID
|
# Get workout summary data by SportTracks ID
|
||||||
def get_workout(user,sporttracksid):
|
def get_workout(user,sporttracksid,do_async=False):
|
||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
|
if (r.sporttrackstoken == '') or (r.sporttrackstoken is None):
|
||||||
return custom_exception_handler(401,s)
|
return custom_exception_handler(401,s)
|
||||||
|
|||||||
@@ -382,7 +382,7 @@ def async_get_workout(user,stravaid):
|
|||||||
return job
|
return job
|
||||||
|
|
||||||
# Get a Strava workout summary data and stroke data by ID
|
# Get a Strava workout summary data and stroke data by ID
|
||||||
def get_workout(user,stravaid):
|
def get_workout(user,stravaid,do_async=False):
|
||||||
try:
|
try:
|
||||||
thetoken = strava_open(user)
|
thetoken = strava_open(user)
|
||||||
except NoTokenError:
|
except NoTokenError:
|
||||||
|
|||||||
@@ -2894,7 +2894,10 @@ def handle_rp3_async_workout(userid,rp3token,rp3id,startdatetime,max_attempts,de
|
|||||||
def handle_nk_async_workout(alldata,userid,nktoken,nkid,delaysec,defaulttimezone,debug=False,**kwargs):
|
def handle_nk_async_workout(alldata,userid,nktoken,nkid,delaysec,defaulttimezone,debug=False,**kwargs):
|
||||||
time.sleep(delaysec)
|
time.sleep(delaysec)
|
||||||
|
|
||||||
data = alldata[nkid]
|
try:
|
||||||
|
data = alldata[nkid]
|
||||||
|
except KeyError:
|
||||||
|
data = alldata[int(nkid)]
|
||||||
|
|
||||||
params = {
|
params = {
|
||||||
'sessionIds': nkid,
|
'sessionIds': nkid,
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ def get_underarmour_workout_list(user):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
# Get workout summary data by Underarmour ID
|
# Get workout summary data by Underarmour ID
|
||||||
def get_workout(user,underarmourid):
|
def get_workout(user,underarmourid,do_async=False):
|
||||||
r = Rower.objects.get(user=user)
|
r = Rower.objects.get(user=user)
|
||||||
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
|
if (r.underarmourtoken == '') or (r.underarmourtoken is None):
|
||||||
return custom_exception_handler(401,s)
|
return custom_exception_handler(401,s)
|
||||||
|
|||||||
@@ -496,6 +496,7 @@ urlpatterns = [
|
|||||||
name='workout_getrp3importview'),
|
name='workout_getrp3importview'),
|
||||||
re_path(r'^workout/rp3import/all/$',views.workout_getrp3workout_all,name='workout_getrp3workout_all'),
|
re_path(r'^workout/rp3import/all/$',views.workout_getrp3workout_all,name='workout_getrp3workout_all'),
|
||||||
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/(?P<source>\w+.*)import/(?P<externalid>\d+)/async/$',views.workout_getimportview,{'do_async':True},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'),
|
||||||
re_path(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view,name='workout_sporttracksimport_view'),
|
re_path(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view,name='workout_sporttracksimport_view'),
|
||||||
|
|||||||
@@ -2001,8 +2001,14 @@ def workout_getrp3importview(request,externalid):
|
|||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def workout_getimportview(request,externalid,source = 'c2'):
|
def workout_getimportview(request,externalid,source = 'c2',do_async=False):
|
||||||
data,strokedata = importsources[source].get_workout(request.user,externalid)
|
data,strokedata = importsources[source].get_workout(request.user,externalid,
|
||||||
|
do_async=do_async)
|
||||||
|
|
||||||
|
if do_async:
|
||||||
|
messages.info(request,"Your workout will be imported in the background")
|
||||||
|
url = reverse('workouts_view')
|
||||||
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
if not data:
|
if not data:
|
||||||
messages.error(request,"No strokedata received")
|
messages.error(request,"No strokedata received")
|
||||||
|
|||||||
Reference in New Issue
Block a user