Skip to content

Commit

Permalink
Speed improvements for interacting wiith the library
Browse files Browse the repository at this point in the history
  • Loading branch information
mcarlton00 committed Oct 26, 2019
1 parent 718439c commit 1509b70
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions mopidy_jellyfin/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -445,9 +445,6 @@ def get_albums(self, query):
if result:
raw_albums = result.get('Items')

for album in raw_albums:
tracks += self.get_search_tracks(artist_ref, album.get('Id'))

albums = [
models.Album(
uri='jellyfin:album:{}'.format(item.get('Id')),
Expand Down Expand Up @@ -731,19 +728,37 @@ def exact_search(self, query):
artist_id = artist_data.get('Id')

# Get album list
url = self.api_url(
album_url = self.api_url(
'/Items?IncludeItemTypes=MusicAlbum&Recursive=true&'
'AlbumArtistIds={}&UserId={}&'.format(
artist_id, self.user_id
)
)

result = self.r_get(url)
if result:
raw_albums = result.get('Items')
album_data = self.r_get(album_url)
if album_data:
raw_albums = album_data.get('Items')

for album in raw_albums:
tracks += self.get_search_tracks(artist_ref, album.get('Id'))
track_url = self.api_url(
'/Items?IncludeItemTypes=Audio&Recursive=true&'
'AlbumArtistIds={}&UserId={}&'.format(
artist_id, self.user_id
)
)

track_data = self.r_get(track_url)
if track_data:
tracks = [ models.Track(
uri='jellyfin:track:{}'.format(track.get('Id')),
track_no=track.get('IndexNumber'),
name=track.get('Name'),
artists=artist_ref,
album=models.Album(
name=track.get('Album'),
artists=artist_ref
)
) for track in track_data.get('Items')
]

# Use if query only has an album name
elif 'album' in query:
Expand Down Expand Up @@ -774,6 +789,7 @@ def exact_search(self, query):
artists=artist_ref,
)

@cache()
def get_search_tracks(self, artist_ref, album_id):
tracks = []

Expand Down

0 comments on commit 1509b70

Please sign in to comment.