diff --git a/rowers/garmin_stuff.py b/rowers/garmin_stuff.py index 486a3630..6e8d851f 100644 --- a/rowers/garmin_stuff.py +++ b/rowers/garmin_stuff.py @@ -110,14 +110,18 @@ def garmin_open(user): return token -def get_garmin_file(r,callbackURL,starttime): - garmin = OAuth1Session(oauth_data['client_id'], - client_secret=oauth_data['client_secret'], - resource_owner_key=r.garmintoken, - resource_owner_secret=r.garminrefreshtoken, - ) - response = garmin.get(callbackURL) - return 1 +def get_garmin_file(r,callbackURL,starttime,fileType): + job = queuehigh.enqueue( + get_garmin_file, + oauth_data['client_id'], + oauth_data['client_secret'], + garmintoken, + garminrefreshtoken, + r.user.id, + callbackURL,filetype + ) + + return job.id def get_garmin_workout_list(user): r = Rower.objects.get(user=user) diff --git a/rowers/tasks.py b/rowers/tasks.py index e83d08c3..1a63dbd8 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -48,6 +48,8 @@ from rowsandall_app.settings_dev import SITE_URL as SITE_URL_DEV from rowsandall_app.settings import PROGRESS_CACHE_SECRET from rowsandall_app.settings import SETTINGS_NAME from rowsandall_app.settings import workoutemailbox +from rowsandall_app.settings import UPLOAD_SERVICE_SECRET, UPLOAD_SERVICE_URL + import pandas as pd @@ -678,6 +680,36 @@ def handle_getagegrouprecords(self, return 1 +@app.task(bind=True) +def get_garmin_file(client_id,client_secret,garmintoken,garminrefreshtoken,userid,url,filetype): + garmin = OAuth1Session(client_id, + client_secret=client_secret, + resource_owner_key=garmintoken, + resource_owner_secret=garminrefreshtoken, + ) + + filename = 'media/{code}_{id}.'.format( + code = uuid4().hex[:16], + id = userid + )+filetype + + response = garmin.get(url, stream=True) + if response.status_code == 200: + with open(filename, 'wb') as out_file: + shutil.copyfileobj(response.raw, out_file) + + uploadoptions = { + 'secret':UPLOAD_SERVICE_SECRET, + 'user':userid, + 'file': filename, + 'title': 'Import from Garmin File' + } + + response = requests.post(UPLOAD_SERVICE_URL,data=uploadoptions) + + del response + + return 1 @app.task(bind=True) def long_test_task(self,aantal,debug=False,job=None,session_key=None): diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html index 69a6bc40..14c5286b 100644 --- a/rowers/templates/rower_exportsettings.html +++ b/rowers/templates/rower_exportsettings.html @@ -34,12 +34,10 @@ alt="connect with Polar" width="130">

connect with Polar

- - {% endblock %}