diff --git a/rowers/#ownapistuff.py# b/rowers/#ownapistuff.py# deleted file mode 100644 index 528013b3..00000000 --- a/rowers/#ownapistuff.py# +++ /dev/null @@ -1,279 +0,0 @@ -# Python -import oauth2 as oauth -import cgi -import requests -import requests.auth -import json -from django.utils import timezone -from datetime import datetime -import numpy as np -from dateutil import parser -import time -import math -from math import sin,cos,atan2,sqrt - -import urllib -import c2stuff - -# Django -from django.shortcuts import render_to_response -from django.http import HttpResponseRedirect, HttpResponse,JsonResponse -from django.conf import settings -from django.contrib.auth import authenticate, login, logout -from django.contrib.auth.models import User -from django.contrib.auth.decorators import login_required - -# Project -# from .models import Profile -from rowingdata import rowingdata -import pandas as pd -from rowers.models import Rower,Workout - -from rowsandall_app.settings import C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET, STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET, SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI - -TEST_CLIENT_ID = "LTqH0nUe8BySMEJgohJBoo1q4PV16xQJ8uF0XQPU" -TEST_CLIENT_SECRET = "HI4bM21rh7pTEXOwCAHLNe3SlLMgbksuzCOARSBbolbQyquZ5quNF8i9PiIaGumbBG4OHCJiQqZJh7Nez6aRiZFgO8POBRVkwCg1fLNk1oY5EJHtLiNrgWY0nbWWDedt" - -TEST_REDIRECT_URI = "http://localhost:8000/rowers/test_callback" - -def custom_exception_handler(exc,message): - - response = { - "errors": [ - { - "code": str(exc), - "detail": message, - } - ] - } - - res = HttpResponse(message) - res.status_code = 401 - res.json = json.dumps(response) - - return res - -def do_refresh_token(refreshtoken): - client_auth = requests.auth.HTTPBasicAuth(TEST_CLIENT_ID, TEST_CLIENT_SECRET) - post_data = {"grant_type": "refresh_token", - "client_secret": TEST_CLIENT_SECRET, - "client_id":TEST_CLIENT_ID, - "refresh_token": refreshtoken, - } - headers = {'user-agent': 'sanderroosendaal', - 'Accept': 'application/json', - 'Content-Type': 'application/json'} - - url = "http://localhost:8000/rowers/o/token" - - response = requests.post(url, - data=json.dumps(post_data), - headers=headers) - - token_json = response.json() - thetoken = token_json['access_token'] - expires_in = token_json['expires_in'] - try: - refresh_token = token_json['refresh_token'] - except KeyError: - refresh_token = refreshtoken - - return [thetoken,expires_in,refresh_token] - - -def get_token(code): - client_auth = requests.auth.HTTPBasicAuth(TEST_CLIENT_ID, TEST_CLIENT_SECRET) - post_data = {"grant_type": "authorization_code", - "code": code, - "redirect_uri": TEST_REDIRECT_URI, - "client_secret": TEST_CLIENT_SECRET, - "client_id":TEST_CLIENT_ID, - } - headers = {'Accept': 'application/json', - 'Content-Type': 'application/json'} - - url = "http://localhost:8000/rowers/o/token/" - - - response = requests.post(url, - data=json.dumps(post_data), - headers=headers) - print response - token_json = response.json() - thetoken = token_json['access_token'] - expires_in = token_json['expires_in'] - refresh_token = token_json['refresh_token'] - - return [thetoken,expires_in,refresh_token] - -def make_authorization_url(request): - # Generate a random string for the state parameter - # Save it for use later to prevent xsrf attacks - from uuid import uuid4 - state = str(uuid4()) - - params = {"client_id": TEST_CLIENT_ID, - "response_type": "code", - "redirect_uri": TEST_REDIRECT_URI, - "scope":"write", - "state":state} - - - import urllib - url = "http://localhost:8000/rowers/o/authorize" +urllib.urlencode(params) - - return HttpResponseRedirect(url) - - -def rower_ownapi_token_refresh(user): - r = Rower.objects.get(user=user) - res = do_refresh_token(r.ownapirefreshtoken) - access_token = res[0] - expires_in = res[1] - refresh_token = res[2] - expirydatetime = timezone.now()+timedelta(seconds=expires_in) - - r = Rower.objects.get(user=user) - r.ownapitoken = access_token - r.tokenexpirydate = expirydatetime - r.ownapirefreshtoken = refresh_token - - r.save() - return r.ownapitoken - -def get_ownapi_workout_list(user): - r = Rower.objects.get(user=user) - if (r.ownapitoken == '') or (r.ownapitoken is None): - s = "Token doesn't exist. Need to authorize" - return custom_exception_handler(401,s) - elif (timezone.now()>r.ownapitokenexpirydate): - s = "Token expired. Needs to refresh." - return custom_exception_handler(401,s) - else: - # ready to fetch. Hurray - authorizationstring = str('Bearer ' + r.ownapitoken) - headers = {'Authorization': authorizationstring, - 'user-agent': 'sanderroosendaal', - 'Content-Type': 'application/json'} - url = "https://api.ownapi.mobi/api/v2/fitnessActivities" - s = requests.get(url,headers=headers) - - return s - - -def get_ownapi_workout(user,ownapiid): - r = Rower.objects.get(user=user) - if (r.ownapitoken == '') or (r.ownapitoken is None): - return custom_exception_handler(401,s) - s = "Token doesn't exist. Need to authorize" - elif (timezone.now()>r.ownapitokenexpirydate): - s = "Token expired. Needs to refresh." - return custom_exception_handler(401,s) - else: - # ready to fetch. Hurray - authorizationstring = str('Bearer ' + r.ownapitoken) - headers = {'Authorization': authorizationstring, - 'user-agent': 'sanderroosendaal', - 'Content-Type': 'application/json'} - url = "https://api.ownapi.mobi/api/v2/fitnessActivities/"+str(ownapiid) - s = requests.get(url,headers=headers) - - return s - -def createownapiworkoutdata(w): - filename = w.csvfilename - row = rowingdata(filename) - averagehr = int(row.df[' HRCur (bpm)'].mean()) - maxhr = int(row.df[' HRCur (bpm)'].max()) - - # adding diff, trying to see if this is valid - t = row.df.ix[:,'TimeStamp (sec)'].values-10*row.df.ix[0,'TimeStamp (sec)'] - t[0] = t[1] - d = row.df.ix[:,'cum_dist'].values - d[0] = d[1] - t = t.astype(int) - d = d.astype(int) - spm = row.df[' Cadence (stokes/min)'].astype(int) - spm[0] = spm[1] - hr = row.df[' HRCur (bpm)'].astype(int) - - haslatlon=1 - - try: - lat = row.df[' latitude'].values - lon = row.df[' longitude'].values - except KeyError: - haslatlon = 0 - - haspower = 1 - try: - power = row.df[' Power (watts)'].values - except KeyError: - haspower = 0 - - locdata = [] - hrdata = [] - spmdata = [] - distancedata = [] - powerdata = [] - - for i in range(len(t)): - hrdata.append(t[i]) - hrdata.append(hr[i]) - distancedata.append(t[i]) - distancedata.append(d[i]) - spmdata.append(t[i]) - spmdata.append(spm[i]) - if haslatlon: - locdata.append(t[i]) - locdata.append([lat[i],lon[i]]) - if haspower: - powerdata.append(t[i]) - powerdata.append(power[i]) - - - if haslatlon: - data = { - "type": "Rowing", - "name": w.name, -# "start_time": str(w.date)+"T"+str(w.starttime)+"Z", - "start_time": w.startdatetime.isoformat(), - "total_distance": int(w.distance), - "duration": int(max(t)), - "notes": w.notes, - "avg_heartrate": averagehr, - "max_heartrate": maxhr, - "location": locdata, - "distance": distancedata, - "cadence": spmdata, - "heartrate": hrdata, - } - else: - data = { - "type": "Rowing", - "name": w.name, -# "start_time": str(w.date)+"T"+str(w.starttime)+"Z", - "start_time": w.startdatetime.isoformat(), - "total_distance": int(w.distance), - "duration": int(max(t)), - "notes": w.notes, - "avg_heartrate": averagehr, - "max_heartrate": maxhr, - "distance": distancedata, - "cadence": spmdata, - "heartrate": hrdata, - } - - if haspower: - data['power'] = powerdata - - return data - -def getidfromresponse(response): - t = json.loads(response.text) - uri = t['uris'][0] - id = uri[len(uri)-13:len(uri)-5] - - return int(id) - - diff --git a/rowers/.#ownapistuff.py b/rowers/.#ownapistuff.py deleted file mode 100644 index d6b83c16..00000000 --- a/rowers/.#ownapistuff.py +++ /dev/null @@ -1 +0,0 @@ -E408191@CZ27LT9RCGN72.5176:1479844733 \ No newline at end of file