diff --git a/demo.py b/demo.py index b77bf5e..f530fa6 100755 --- a/demo.py +++ b/demo.py @@ -88,7 +88,7 @@ def __init__(self): # API call settings self.default_limit = 100 self.start = 0 - self.start_badge = 1 # Badge related calls start counting at 1 + self.start_badge = 1 # Badge related calls in demo default to 1 (backend page index) # Activity settings self.activitytype = "" # Possible values: cycling, running, swimming, multi_sport, fitness_equipment, hiking, walking, other @@ -2221,7 +2221,9 @@ def clean_step_ids(workout_segments): except FileNotFoundError: print(f"❌ File not found: {config.workoutfile}") - print("ℹ️ Please ensure the workout JSON file exists in the test_data directory") + print( + "ℹ️ Please ensure the workout JSON file exists in the test_data directory" + ) except json.JSONDecodeError as e: print(f"❌ Invalid JSON format in {config.workoutfile}: {e}") print("ℹ️ Please check the JSON file format") diff --git a/garminconnect/__init__.py b/garminconnect/__init__.py index acdd7e0..011f046 100644 --- a/garminconnect/__init__.py +++ b/garminconnect/__init__.py @@ -1418,7 +1418,8 @@ def get_badge_challenges(self, start: int, limit: int) -> dict[str, Any]: start = _validate_non_negative_integer(start, "start") limit = _validate_positive_integer(limit, "limit") url = self.garmin_connect_badge_challenges_url - params = {"start": str(start), "limit": str(limit)} + backend_start = str(1 if start == 0 else start) + params = {"desc": "true", "start": backend_start, "limit": str(limit)} logger.debug("Requesting badge challenges for user") return self.connectapi(url, params=params) @@ -1428,7 +1429,8 @@ def get_available_badge_challenges(self, start: int, limit: int) -> dict[str, An start = _validate_non_negative_integer(start, "start") limit = _validate_positive_integer(limit, "limit") url = self.garmin_connect_available_badge_challenges_url - params = {"start": str(start), "limit": str(limit)} + backend_start = str(1 if start == 0 else start) + params = {"desc": "true", "start": backend_start, "limit": str(limit)} logger.debug("Requesting available badge challenges") return self.connectapi(url, params=params) @@ -1440,7 +1442,8 @@ def get_non_completed_badge_challenges( start = _validate_non_negative_integer(start, "start") limit = _validate_positive_integer(limit, "limit") url = self.garmin_connect_non_completed_badge_challenges_url - params = {"start": str(start), "limit": str(limit)} + backend_start = str(1 if start == 0 else start) + params = {"desc": "true", "start": backend_start, "limit": str(limit)} logger.debug("Requesting badge challenges for user") return self.connectapi(url, params=params) @@ -1452,7 +1455,8 @@ def get_inprogress_virtual_challenges( start = _validate_non_negative_integer(start, "start") limit = _validate_positive_integer(limit, "limit") url = self.garmin_connect_inprogress_virtual_challenges_url - params = {"start": str(start), "limit": str(limit)} + backend_start = str(1 if start == 0 else start) + params = {"desc": "true", "start": backend_start, "limit": str(limit)} logger.debug("Requesting in-progress virtual challenges for user") return self.connectapi(url, params=params)