From 713845090cee75e08af1bebb23c6a329a71565ef Mon Sep 17 00:00:00 2001 From: Bryn Edwards <brynedwards@gmail.com> Date: Sat, 14 Mar 2020 18:43:53 +0000 Subject: [PATCH] Make repeated getAlbumList2 requests with offset to get all albums --- mopidy_subidy/subsonic_api.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/mopidy_subidy/subsonic_api.py b/mopidy_subidy/subsonic_api.py index e8b4ad2..78c789c 100644 --- a/mopidy_subidy/subsonic_api.py +++ b/mopidy_subidy/subsonic_api.py @@ -410,9 +410,9 @@ class SubsonicApi: return songs return [] - def get_raw_album_list(self, ltype, size=MAX_LIST_RESULTS): + def get_more_albums(self, ltype, size=MAX_LIST_RESULTS, offset=0): try: - response = self.connection.getAlbumList2(ltype=ltype, size=size) + response = self.connection.getAlbumList2(ltype=ltype, size=size, offset=offset) except Exception: logger.warning( "Connecting to subsonic failed when loading album list." @@ -429,6 +429,18 @@ class SubsonicApi: return albums return [] + def get_raw_album_list(self, ltype, size=MAX_LIST_RESULTS): + offset = 0 + total = [] + albums = self.get_more_albums(ltype, size, offset) + total = albums + while len(albums) == size: + # try getting more albums + offset = offset + size + albums = self.get_more_albums(ltype, size, offset) + total = total + albums + return total + def get_albums_as_refs(self, artist_id=None): albums = ( self.get_raw_album_list("alphabeticalByName")