Private
Public Access
1
0

fixing c2 import

This commit is contained in:
Sander Roosendaal
2021-01-21 22:42:24 +01:00
parent 85d4aac34d
commit 8341548aaf
6 changed files with 68 additions and 8 deletions

1
c2blocked.json Normal file
View File

@@ -0,0 +1 @@
{"ids": []}

View File

@@ -183,10 +183,26 @@ def get_c2_workouts(rower,do_async=True):
t.uploadedtoc2 for t in TombStone.objects.filter(user=rower) t.uploadedtoc2 for t in TombStone.objects.filter(user=rower)
] ]
knownc2ids = uniqify(knownc2ids+tombstones) # get "blocked" c2ids
parkedids = []
try:
with open('c2blocked.json','r') as c2blocked:
jsondata = json.load(c2blocked)
parkedids = jsondata['ids']
except FileNotFoundError:
pass
knownc2ids = uniqify(knownc2ids+tombstones+parkedids)
newids = [c2id for c2id in c2ids if not c2id in knownc2ids] newids = [c2id for c2id in c2ids if not c2id in knownc2ids]
newparkedids = uniqify(newids+parkedids)
with open('c2blocked.json','wt') as c2blocked:
data = {'ids':newparkedids}
json.dump(data,c2blocked)
for c2id in newids: for c2id in newids:
if do_async: if do_async:
res = myqueue(queuehigh, res = myqueue(queuehigh,
@@ -372,6 +388,20 @@ def create_async_workout(alldata,user,c2id):
except KeyError: except KeyError:
workoutid = 1 workoutid = 1
newc2id = Workout.objects.get(id=workoutid).uploadedtoc2
parkedids = []
with open('c2blocked.json','r') as c2blocked:
jsondata = json.load(c2blocked)
parkedids = jsondata['ids']
newparkedids = [id for id in parkedids if id != newc2id]
with open('c2blocked.json','wt') as c2blocked:
data = {'ids':newparkedids}
c2blocked.seek(0)
json.dump(data,c2blocked)
return workoutid return workoutid

View File

@@ -203,9 +203,9 @@ class Command(BaseCommand):
# Concept2 # Concept2
rowers = Rower.objects.filter(c2_auto_import=True) rowers = Rower.objects.filter(c2_auto_import=True)
#for r in rowers: for r in rowers:
# if user_is_not_basic(r.user): if user_is_not_basic(r.user):
# c2stuff.get_c2_workouts(r) c2stuff.get_c2_workouts(r)
messages = Message.objects.filter(mailbox_id = workoutmailbox.id) messages = Message.objects.filter(mailbox_id = workoutmailbox.id)

View File

@@ -2871,6 +2871,32 @@ def handle_c2_async_workout(alldata,userid,c2token,c2id,debug=False,**kwargs):
workoutid = response.json()['id'] workoutid = response.json()['id']
if debug:
engine = create_engine(database_url_debug, echo=False)
else:
engine = create_engine(database_url, echo=False)
query = 'SELECT uploadedtoc2 from rowers_workout WHERE id ={workoutid}'.format(workoutid=workoutid)
newc2id = 0
with engine.connect() as conn, conn.begin():
result = conn.execute(query)
data = result.fetchall()
newc2id = data[0][0]
conn.close()
parkedids = []
with open('c2blocked.json','r') as c2blocked:
jsondata = json.load(c2blocked)
parkedids = jsondata['ids']
newparkedids = [id for id in parkedids if id != newc2id]
with open('c2blocked.json','wt') as c2blocked:
data = {'ids':newparkedids}
c2blocked.seek(0)
json.dump(data,c2blocked)
return workoutid return workoutid

View File

@@ -524,8 +524,6 @@ def make_private(w,options):
return 1 return 1
def do_sync(w,options, quick=False): def do_sync(w,options, quick=False):
if w.duplicate:
return 0
try: try:
upload_to_strava = options['upload_to_Strava'] upload_to_strava = options['upload_to_Strava']
@@ -553,8 +551,6 @@ def do_sync(w,options, quick=False):
except KeyError: except KeyError:
upload_to_c2 = False upload_to_c2 = False
try: try:
if options['c2id'] != 0 and options['c2id'] != '': if options['c2id'] != 0 and options['c2id'] != '':
w.uploadedtoc2 = options['c2id'] w.uploadedtoc2 = options['c2id']
@@ -563,6 +559,9 @@ def do_sync(w,options, quick=False):
except KeyError: except KeyError:
pass pass
if w.duplicate:
return 0
if ('upload_to_C2' in options and upload_to_c2) or (w.user.c2_auto_export): if ('upload_to_C2' in options and upload_to_c2) or (w.user.c2_auto_export):
try: try:
message,id = c2stuff.workout_c2_upload(w.user.user,w,asynchron=True) message,id = c2stuff.workout_c2_upload(w.user.user,w,asynchron=True)

View File

@@ -4774,6 +4774,7 @@ def workout_upload_api(request):
except KeyError: except KeyError:
c2id = '' c2id = ''
try: try:
garminid = post_data['garminid'] garminid = post_data['garminid']
except KeyError: except KeyError:
@@ -4865,14 +4866,17 @@ def workout_upload_api(request):
w = Workout.objects.get(id=id) w = Workout.objects.get(id=id)
if make_plot: if make_plot:
res, jobid = uploads.make_plot(r,w,f1,f2,plottype,t) res, jobid = uploads.make_plot(r,w,f1,f2,plottype,t)
elif r.staticchartonupload != 'None': elif r.staticchartonupload != 'None':
plottype = r.staticchartonupload plottype = r.staticchartonupload
res, jobid = uploads.make_plot(r,w,f1,f2,plottype,t) res, jobid = uploads.make_plot(r,w,f1,f2,plottype,t)
uploads.do_sync(w,post_data,quick=True) uploads.do_sync(w,post_data,quick=True)
else: # form invalid else: # form invalid
if fstr: if fstr:
os.remove(fstr) os.remove(fstr)