B"H lookup return subdir songs too, artist lookup fn to iter - rebase
This commit is contained in:
parent
634efc4de4
commit
64938a8c7e
2 changed files with 18 additions and 8 deletions
|
@ -62,10 +62,10 @@ class SubidyLibraryProvider(backend.LibraryProvider):
|
||||||
return self.subsonic_api.get_songs_as_tracks(album_id)
|
return self.subsonic_api.get_songs_as_tracks(album_id)
|
||||||
|
|
||||||
def lookup_artist(self, artist_id):
|
def lookup_artist(self, artist_id):
|
||||||
return self.subsonic_api.get_artist_as_songs_as_tracks(artist_id)
|
return list(self.subsonic_api.get_artist_as_songs_as_tracks_iter(artist_id))
|
||||||
|
|
||||||
def lookup_directory(self, directory_id):
|
def lookup_directory(self, directory_id):
|
||||||
return self.subsonic_api.get_diritems_as_tracks(directory_id)
|
return list(self.subsonic_api.get_recursive_dir_as_songs_as_tracks_iter(directory_id))
|
||||||
|
|
||||||
def browse(self, browse_uri):
|
def browse(self, browse_uri):
|
||||||
if browse_uri == uri.get_vdir_uri('root'):
|
if browse_uri == uri.get_vdir_uri('root'):
|
||||||
|
|
|
@ -271,9 +271,6 @@ class SubsonicApi():
|
||||||
def get_diritems_as_refs(self, directory_id):
|
def get_diritems_as_refs(self, directory_id):
|
||||||
return [(self.raw_directory_to_ref(diritem) if diritem.get('isDir') else self.raw_song_to_ref(diritem)) for diritem in self.get_raw_dir(directory_id)]
|
return [(self.raw_directory_to_ref(diritem) if diritem.get('isDir') else self.raw_song_to_ref(diritem)) for diritem in self.get_raw_dir(directory_id)]
|
||||||
|
|
||||||
def get_diritems_as_tracks(self, directory_id):
|
|
||||||
return [self.raw_song_to_track(diritem) for diritem in self.get_raw_dir(directory_id) if not diritem.get('isDir')]
|
|
||||||
|
|
||||||
def get_artists_as_artists(self):
|
def get_artists_as_artists(self):
|
||||||
return [self.raw_artist_to_artist(artist) for artist in self.get_raw_artists()]
|
return [self.raw_artist_to_artist(artist) for artist in self.get_raw_artists()]
|
||||||
|
|
||||||
|
@ -292,11 +289,24 @@ class SubsonicApi():
|
||||||
return None
|
return None
|
||||||
return [self.raw_song_to_ref(song) for song in playlist.get('entry')]
|
return [self.raw_song_to_ref(song) for song in playlist.get('entry')]
|
||||||
|
|
||||||
def get_artist_as_songs_as_tracks(self, artist_id):
|
def get_artist_as_songs_as_tracks_iter(self, artist_id):
|
||||||
albums = self.get_raw_albums(artist_id)
|
albums = self.get_raw_albums(artist_id)
|
||||||
if albums is None:
|
if albums is None:
|
||||||
return None
|
return
|
||||||
return [self.raw_song_to_track(song) for album in albums for song in self.get_raw_songs(album.get('id'))]
|
for album in albums:
|
||||||
|
for song in self.get_raw_songs(album.get('id')):
|
||||||
|
yield self.raw_song_to_track(song)
|
||||||
|
|
||||||
|
def get_recursive_dir_as_songs_as_tracks_iter(self, directory_id):
|
||||||
|
diritems = self.get_raw_dir(directory_id)
|
||||||
|
if diritems is None:
|
||||||
|
return
|
||||||
|
for item in diritems:
|
||||||
|
if item.get('isDir'):
|
||||||
|
for song in self.get_recursive_dir_as_songs_as_tracks_iter(item.get('id')):
|
||||||
|
yield song
|
||||||
|
else:
|
||||||
|
yield self.raw_song_to_track(item)
|
||||||
|
|
||||||
def raw_song_to_ref(self, song):
|
def raw_song_to_ref(self, song):
|
||||||
if song is None:
|
if song is None:
|
||||||
|
|
Loading…
Add table
Reference in a new issue