adding runkeeper, fixing sporttracks bugs
This commit is contained in:
@@ -7,6 +7,12 @@ from __future__ import unicode_literals, absolute_import
|
|||||||
from rowers.imports import *
|
from rowers.imports import *
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
import django_rq
|
||||||
|
queue = django_rq.get_queue('default')
|
||||||
|
queuelow = django_rq.get_queue('low')
|
||||||
|
queuehigh = django_rq.get_queue('low')
|
||||||
|
from rowers.utils import myqueue
|
||||||
|
|
||||||
from rowers.rower_rules import is_workout_user
|
from rowers.rower_rules import is_workout_user
|
||||||
|
|
||||||
from rowsandall_app.settings import (
|
from rowsandall_app.settings import (
|
||||||
@@ -276,7 +282,7 @@ def default(o):
|
|||||||
if isinstance(o, numpy.int64): return int(o)
|
if isinstance(o, numpy.int64): return int(o)
|
||||||
raise TypeError
|
raise TypeError
|
||||||
|
|
||||||
def workout_runkeeper_upload(user,w):
|
def workout_runkeeper_upload(user,w,asynchron=False):
|
||||||
message = "Uploading to Runkeeper"
|
message = "Uploading to Runkeeper"
|
||||||
rkid = 0
|
rkid = 0
|
||||||
|
|
||||||
@@ -301,6 +307,10 @@ def workout_runkeeper_upload(user,w):
|
|||||||
'Content-Length':'nnn'}
|
'Content-Length':'nnn'}
|
||||||
|
|
||||||
url = "https://api.runkeeper.com/fitnessActivities"
|
url = "https://api.runkeeper.com/fitnessActivities"
|
||||||
|
if asynchron:
|
||||||
|
job = myqueue(queue,handle_runkeeper_sync,
|
||||||
|
w.id,url,headers,json.dumps(data,default=default))
|
||||||
|
return "Asynchronous sync",0
|
||||||
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))
|
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))
|
||||||
|
|
||||||
# check for duplicate error first
|
# check for duplicate error first
|
||||||
|
|||||||
@@ -8,6 +8,12 @@ from __future__ import unicode_literals, absolute_import
|
|||||||
|
|
||||||
import numpy
|
import numpy
|
||||||
|
|
||||||
|
import django_rq
|
||||||
|
queue = django_rq.get_queue('default')
|
||||||
|
queuelow = django_rq.get_queue('low')
|
||||||
|
queuehigh = django_rq.get_queue('low')
|
||||||
|
from rowers.utils import myqueue
|
||||||
|
|
||||||
from rowers.imports import *
|
from rowers.imports import *
|
||||||
import re
|
import re
|
||||||
from rowsandall_app.settings import (
|
from rowsandall_app.settings import (
|
||||||
@@ -280,7 +286,8 @@ def workout_sporttracks_upload(user,w,asynchron=False):
|
|||||||
|
|
||||||
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
|
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
|
||||||
if asynchron:
|
if asynchron:
|
||||||
job = myqueue(w.id,url,headers,json.dumps(data,default=default))
|
job = myqueue(queue,handle_sporttracks_sync,
|
||||||
|
w.id,url,headers,json.dumps(data,default=default))
|
||||||
return "Asynchronous sync",0
|
return "Asynchronous sync",0
|
||||||
|
|
||||||
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))
|
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))
|
||||||
|
|||||||
@@ -151,6 +151,21 @@ def handle_sporttracks_sync(workoutid,url,headers,data,debug=False,**kwargs):
|
|||||||
|
|
||||||
res = update_workout_field_sql(workoutid,'uploadedtosporttracks',id,debug=debug)
|
res = update_workout_field_sql(workoutid,'uploadedtosporttracks',id,debug=debug)
|
||||||
|
|
||||||
|
app.task
|
||||||
|
def handle_runkeeper_sync(workoutid,url,headers,data,debug=False,**kwargs):
|
||||||
|
response = requests.post(url,headers=headers,data=data)
|
||||||
|
if response.status_code not in [200,201]:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
t = response.json()
|
||||||
|
uri = t['uris'][0]
|
||||||
|
regex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities/(\d+)\.json$'
|
||||||
|
m = re.compile(regex).match(uri).group(1)
|
||||||
|
|
||||||
|
id = int(m)
|
||||||
|
|
||||||
|
res = update_workout_field_sql(workoutid,'uploadedtorunkeeper',id,debug=debug)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.task
|
@app.task
|
||||||
|
|||||||
@@ -555,7 +555,7 @@ def do_sync(w,options, quick=False):
|
|||||||
if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user.user)):
|
if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user.user)):
|
||||||
try:
|
try:
|
||||||
message,id = runkeeperstuff.workout_runkeeper_upload(
|
message,id = runkeeperstuff.workout_runkeeper_upload(
|
||||||
w.user.user,w
|
w.user.user,w,asynchron=True,
|
||||||
)
|
)
|
||||||
except NoTokenError:
|
except NoTokenError:
|
||||||
message = "Please connect to Runkeeper first"
|
message = "Please connect to Runkeeper first"
|
||||||
|
|||||||
Reference in New Issue
Block a user