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)
    segment = client.get_segment(segment_id)

    print(segment)

    Challenge.add(segment, year, month)


if __name__ == '__main__':
    m = Member.objects.filter(refresh_token__gte="").limit(1)

    print(list(m))
    m = list(m)[0]

    client.access_token = m.access_token
    client.refresh_token = m.refresh_token
    client.token_expires_at = m.access_token_expiry

    # 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()

    add_challenge(4896037, 2019, 2)
    add_challenge(13028666, 2019, 3)