implement caching for provider playlists to optimize API calls and improve performance
This commit is contained in:
@@ -34,7 +34,10 @@ def jellyfin_playlists():
|
|||||||
|
|
||||||
combined_playlists = []
|
combined_playlists = []
|
||||||
for pl in 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
|
# 4. Convert the playlists to CombinedPlaylistData
|
||||||
combined_data = functions.prepPlaylistData(provider_playlist)
|
combined_data = functions.prepPlaylistData(provider_playlist)
|
||||||
if combined_data:
|
if combined_data:
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ def openPlaylist():
|
|||||||
try:
|
try:
|
||||||
provider_client = MusicProviderRegistry.get_provider(provider_id)
|
provider_client = MusicProviderRegistry.get_provider(provider_id)
|
||||||
extracted_playlist_id = provider_client.extract_playlist_id(playlist)
|
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)
|
combined_data = functions.prepPlaylistData(provider_playlist)
|
||||||
if combined_data:
|
if combined_data:
|
||||||
@@ -280,8 +280,8 @@ def browse_page(page_id):
|
|||||||
@functions.jellyfin_login_required
|
@functions.jellyfin_login_required
|
||||||
def monitored_playlists():
|
def monitored_playlists():
|
||||||
|
|
||||||
# 1. Get all Playlists from the Database.
|
# 1. Get all Playlists from the Database and order them by Id
|
||||||
all_playlists = Playlist.query.all()
|
all_playlists = Playlist.query.order_by(Playlist.id).all()
|
||||||
|
|
||||||
# 2. Group them by provider
|
# 2. Group them by provider
|
||||||
playlists_by_provider = defaultdict(list)
|
playlists_by_provider = defaultdict(list)
|
||||||
@@ -299,7 +299,7 @@ def monitored_playlists():
|
|||||||
|
|
||||||
combined_playlists = []
|
combined_playlists = []
|
||||||
for pl in 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
|
# 4. Convert the playlists to CombinedPlaylistData
|
||||||
combined_data = functions.prepPlaylistData(provider_playlist)
|
combined_data = functions.prepPlaylistData(provider_playlist)
|
||||||
if combined_data:
|
if combined_data:
|
||||||
|
|||||||
Reference in New Issue
Block a user