From 0ab0a00a775362109a283e197225e164474577fa Mon Sep 17 00:00:00 2001 From: Jonas Weinz Date: Mon, 21 Jul 2025 21:48:01 +0200 Subject: [PATCH] fix rate limit --- hipsterfy/hipsterfy.py | 14 ++++++++++++-- pyproject.toml | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/hipsterfy/hipsterfy.py b/hipsterfy/hipsterfy.py index 7a0e6ea..9160888 100644 --- a/hipsterfy/hipsterfy.py +++ b/hipsterfy/hipsterfy.py @@ -400,8 +400,18 @@ class HipsterfyPlaylist(object): """Load the playlist data from Spotify and extract track information. """ playlist_id = self._playlist_uri.split("/")[-1].split("?")[0] - results = self._hipsterfy.sp.playlist_items(playlist_id, additional_types=['track'], limit=1000) - self._tracks_data = [HipsterfyPlaylistItem(item['track']) for item in results['items'] if item['track']] + results = [] + last_page_reached = False + offset = 0 + while not last_page_reached: + page_results = self._hipsterfy.sp.playlist_items(playlist_id, additional_types=['track'], limit=100, offset=offset) + tracks = [item['track'] for item in page_results['items'] if item['track']] + if not tracks: + last_page_reached = True + else: + results.extend(page_results['items']) + offset += len(page_results['items']) + self._tracks_data = [HipsterfyPlaylistItem(item['track']) for item in results] def get_tracks_data(self) -> List[HipsterfyPlaylistItem]: """Returns the list of HipsterfyPlaylistItem objects representing the tracks in the playlist. """ diff --git a/pyproject.toml b/pyproject.toml index 25c5e24..177b7e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "hipsterfy" -version = "0.2.1" +version = "0.2.2" description = "" authors = [ {name="Jonas Weinz"} @@ -16,7 +16,7 @@ dependencies = [ ] [tool.poetry] name = "hipsterfy" -version = "0.2.1" +version = "0.2.2" description = "" authors = [ "Jonas Weinz"