diff --git a/scripts/generator/__init__.py b/scripts/generator/__init__.py index 348d529ced0..3684ae3269d 100644 --- a/scripts/generator/__init__.py +++ b/scripts/generator/__init__.py @@ -23,6 +23,7 @@ def __init__(self, db_path): self.client_id = "" self.client_secret = "" self.refresh_token = "" + self.only_run = False def set_strava_config(self, client_id, client_secret, refresh_token): self.client_id = client_id @@ -42,7 +43,7 @@ def check_access(self): self.client.access_token = response["access_token"] print("Access ok") - def sync(self, force, only_run=False): + def sync(self, force): self.check_access() print("Start syncing") @@ -58,7 +59,7 @@ def sync(self, force, only_run=False): filters = {"before": datetime.datetime.utcnow()} for activity in self.client.get_activities(**filters): - if only_run and activity.type != "Run": + if self.only_run and activity.type != "Run": continue if IGNORE_BEFORE_SAVING: activity.summary_polyline = filter_out(activity.summary_polyline) @@ -113,25 +114,26 @@ def load(self): streak = 0 last_date = None for activity in activities: + if self.only_run and activity.type != "Run": + continue # Determine running streak. - if activity.type == "Run": - date = datetime.datetime.strptime( - activity.start_date_local, "%Y-%m-%d %H:%M:%S" - ).date() - if last_date is None: - streak = 1 - elif date == last_date: - pass - elif date == last_date + datetime.timedelta(days=1): - streak += 1 - else: - assert date > last_date - streak = 1 - activity.streak = streak - last_date = date - if not IGNORE_BEFORE_SAVING: - activity.summary_polyline = filter_out(activity.summary_polyline) - activity_list.append(activity.to_dict()) + date = datetime.datetime.strptime( + activity.start_date_local, "%Y-%m-%d %H:%M:%S" + ).date() + if last_date is None: + streak = 1 + elif date == last_date: + pass + elif date == last_date + datetime.timedelta(days=1): + streak += 1 + else: + assert date > last_date + streak = 1 + activity.streak = streak + last_date = date + if not IGNORE_BEFORE_SAVING: + activity.summary_polyline = filter_out(activity.summary_polyline) + activity_list.append(activity.to_dict()) return activity_list diff --git a/scripts/strava_sync.py b/scripts/strava_sync.py index ac1e328a5bf..7da96a73265 100755 --- a/scripts/strava_sync.py +++ b/scripts/strava_sync.py @@ -10,7 +10,8 @@ def run_strava_sync(client_id, client_secret, refresh_token, only_run=False): generator = Generator(SQL_FILE) generator.set_strava_config(client_id, client_secret, refresh_token) # if you want to refresh data change False to True - generator.sync(False, only_run=only_run) + generator.only_run = only_run + generator.sync(False) activities_list = generator.load() with open(JSON_FILE, "w") as f: