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")