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 songs
|
||||||
return []
|
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:
|
try:
|
||||||
response = self.connection.getAlbumList2(ltype=ltype, size=size)
|
response = self.connection.getAlbumList2(
|
||||||
|
ltype=ltype, size=size, offset=offset
|
||||||
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Connecting to subsonic failed when loading album list."
|
"Connecting to subsonic failed when loading album list."
|
||||||
|
@ -429,6 +431,24 @@ class SubsonicApi:
|
||||||
return albums
|
return albums
|
||||||
return []
|
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):
|
def get_albums_as_refs(self, artist_id=None):
|
||||||
albums = (
|
albums = (
|
||||||
self.get_raw_album_list("alphabeticalByName")
|
self.get_raw_album_list("alphabeticalByName")
|
||||||
|
|
Loading…
Add table
Reference in a new issue