def pull_data(self, members, challenges): client = Client() for m in members: logger.debug("processing member: {}".format(m)) # Check if the access token needs renewing. Should last 6hrs, so only needs doing once regardless of how many calls we make. if time.time() > m.access_token_expiry: logger.info("Renewing token") refresh_response = client.refresh_access_token( client_id=config.strava_client_id, client_secret=config.strava_client_secret, refresh_token=m.refresh_token) m.access_token = refresh_response['access_token'] m.refresh_token = refresh_response['refresh_token'] m.access_token_expiry = refresh_response['expires_at'] m.save() client.access_token = m.access_token client.refresh_token = m.refresh_token client.token_expires_at = m.access_token_expiry for c in challenges: logger.debug("Processing challenge: {}".format(c)) efforts = client.get_segment_efforts( c.segment_id, start_date_local=c.date_from, end_date_local=c.date_to) for e in efforts: logger.debug("Processing effort: {}".format(e)) Attempt.add(e, m, c)
import numpy as np client_id = '28201' my_token = '06e91657960068f2c92e2e02419934f6493fe5b6' client = Client(access_token=my_token) mt_coottha = 615163 # segment = client.get_segment(mt_coottha) # print(segment.distance) # print(segment.average_grade) # print(segment.effort_count) my_efforts = client.get_segment_efforts(mt_coottha, athlete_id=1057216, start_date_local='2018-06-01', end_date_local='2019-01-01') with open("mtcoottha_back.csv", "w", newline="") as file: csv_writer = csv.writer(file) back = [] for effort in my_efforts: date = str(effort.start_date_local)[:10] #just get the yy-mm-dd part # time = timedelta(seconds=timedelta.total_seconds(effort.elapsed_time)) time = effort.elapsed_time back.append((date, time)) back.sort(key=lambda date: date[0]) for attempt in back: csv_writer.writerow(attempt)