From 6f3f5b962358f62ffa27db440d4f0683bd1624a5 Mon Sep 17 00:00:00 2001 From: Kamil Date: Tue, 10 Dec 2024 15:44:03 +0000 Subject: [PATCH] implement caching for provider playlists to optimize API calls and improve performance --- app/routes/jellyfin_routes.py | 5 ++++- app/routes/routes.py | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/routes/jellyfin_routes.py b/app/routes/jellyfin_routes.py index 6f52970..f396db9 100644 --- a/app/routes/jellyfin_routes.py +++ b/app/routes/jellyfin_routes.py @@ -34,7 +34,10 @@ def jellyfin_playlists(): combined_playlists = [] for pl in playlists: - provider_playlist = provider_client.get_playlist(pl.provider_playlist_id) + # Use the cached provider_playlist_id to fetch the playlist from the provider + provider_playlist = functions.get_cached_provider_playlist(pl.provider_playlist_id,pl.provider_id) + #provider_playlist = provider_client.get_playlist(pl.provider_playlist_id) + # 4. Convert the playlists to CombinedPlaylistData combined_data = functions.prepPlaylistData(provider_playlist) if combined_data: diff --git a/app/routes/routes.py b/app/routes/routes.py index a75e796..380c87d 100644 --- a/app/routes/routes.py +++ b/app/routes/routes.py @@ -243,7 +243,7 @@ def openPlaylist(): try: provider_client = MusicProviderRegistry.get_provider(provider_id) extracted_playlist_id = provider_client.extract_playlist_id(playlist) - provider_playlist = provider_client.get_playlist(extracted_playlist_id) + provider_playlist = functions.get_cached_provider_playlist(extracted_playlist_id, provider_id) combined_data = functions.prepPlaylistData(provider_playlist) if combined_data: @@ -280,8 +280,8 @@ def browse_page(page_id): @functions.jellyfin_login_required def monitored_playlists(): - # 1. Get all Playlists from the Database. - all_playlists = Playlist.query.all() + # 1. Get all Playlists from the Database and order them by Id + all_playlists = Playlist.query.order_by(Playlist.id).all() # 2. Group them by provider playlists_by_provider = defaultdict(list) @@ -299,7 +299,7 @@ def monitored_playlists(): combined_playlists = [] for pl in playlists: - provider_playlist = provider_client.get_playlist(pl.provider_playlist_id) + provider_playlist = functions.get_cached_provider_playlist(pl.provider_playlist_id,pl.provider_id) # 4. Convert the playlists to CombinedPlaylistData combined_data = functions.prepPlaylistData(provider_playlist) if combined_data: