-
Notifications
You must be signed in to change notification settings - Fork 0
/
sync_activities.py
32 lines (26 loc) · 1.17 KB
/
sync_activities.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from strava import Strava
from kikourou import Kikourou
from math import fabs
import json
with open("config.json", 'r') as hc:
config = json.load(hc)
kikourou = Kikourou(config["kikourou"])
kikourou.connect()
kik_activities = kikourou.get_activities()
strava = Strava(config["strava"])
if not strava.connect(interract=False):
raise ("Strava connection error. Need human to help. Run strava.py to authorize the app into strava")
strava_activities = strava.get_activities()
for sa in strava_activities:
for ka in kik_activities:
if ka['comment_private'] == sa['url'] or (ka['date'].date() == sa['date'].date() and
fabs(ka['distance'] - sa['distance']) < 1 and
ka['duration'] == sa['duration']):
if 'strava_id' in ka:
raise Exception("Error: a kikourou activity has 2 strava activities")
ka['strava_id'] = sa['id']
sa['kikourou_id'] = ka['url']
break
else:
print(">> Find a new activity", sa['name'], sa['date'].date(), sa['distance'], sa['duration'], sa['type'])
kikourou.add_activity(sa)