Ejemplo n.º 1
0
    async def download_new_activities():
        client = Garmin(email, password, auth_domain)
        await client.login()

        # because I don't find a para for after time, so I use garmin-id as filename
        # to find new run to generage
        downloaded_ids = [
            i.split(".")[0] for i in os.listdir(GPX_FOLDER) if not i.startswith(".")
        ]
        activity_ids = await get_activity_id_list(client)
        to_generate_garmin_ids = list(set(activity_ids) - set(downloaded_ids))
        print(f"{len(to_generate_garmin_ids)} new activities to be downloaded")

        start_time = time.time()
        await gather_with_concurrency(
            10, [download_garmin_gpx(client, id) for id in to_generate_garmin_ids]
        )
        print(f"Download finished. Elapsed {time.time()-start_time} seconds")
        make_activities_file(SQL_FILE, GPX_FOLDER, JSON_FILE)
Ejemplo n.º 2
0
    old_garmin_ids = [i.split(".")[0] for i in old_garmin_ids]
    api_garmin_ids = []
    while True:
        activities = client.get_activities(start, limit)
        for a in activities:
            if a.get("activityId") is None:
                print("Skipping activity without id")
                continue
            api_garmin_ids.append(str(a.get("activityId")))
        activities_count = len(activities)
        count += activities_count
        print(f"parsing from {start} to {count}")
        start += 100
        # tricky break
        if activities_count != limit:
            break

    to_generate_garmin_ids = list(set(api_garmin_ids) - set(old_garmin_ids))
    print(f"{len(to_generate_garmin_ids)} new runs to generate")
    start_time = time.time()
    threads = []
    for i in to_generate_garmin_ids:
        t = Thread(target=download_garmin_gpx, args=(client, i))
        threads.append(t)
        t.start()
    for thread in threads:
        thread.join()
    print(f"cost {time.time()-start_time} s for gpx")
    time.sleep(60)  # waiting
    make_activities_file(SQL_FILE, GPX_FOLDER, JSON_FILE)