Merge branch 'master' of https://github.com/brynedwards/mopidy-subidy
This commit is contained in:
commit
32f74f28e9
1 changed files with 22 additions and 2 deletions
|
@ -410,9 +410,11 @@ 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 +431,24 @@ class SubsonicApi:
|
|||
return albums
|
||||
return []
|
||||
|
||||
def get_raw_album_list(self, ltype, size=MAX_LIST_RESULTS):
|
||||
"""
|
||||
Subsonic servers don't offer any way to retrieve the total number
|
||||
of albums to get, and the spec states that the max number returned
|
||||
for `getAlbumList2` is 500. To get all the albums, we make a
|
||||
`getAlbumList2` request each time the response contains 500 albums. If
|
||||
it does not, we assume we have all the albums and return them.
|
||||
"""
|
||||
offset = 0
|
||||
total = []
|
||||
albums = self.get_more_albums(ltype, size, offset)
|
||||
total = albums
|
||||
while len(albums) == size:
|
||||
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")
|
||||
|
|
Loading…
Add table
Reference in a new issue