Example #1
0
    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)
Example #2
0
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)