feat: enhance add_playlist function to support JSON input and manage additional users for playlists

This commit is contained in:
Kamil
2024-12-11 14:15:15 +00:00
parent 6248c54829
commit 67d2b3cb9e

View File

@@ -9,7 +9,7 @@ from app.tasks import task_manager
from app.registry.music_provider_registry import MusicProviderRegistry from app.registry.music_provider_registry import MusicProviderRegistry
from jellyfin.objects import PlaylistMetadata from jellyfin.objects import PlaylistMetadata
from app.routes import pl_bp from app.routes import pl_bp, routes
@app.route('/jellyfin_playlists') @app.route('/jellyfin_playlists')
@functions.jellyfin_login_required @functions.jellyfin_login_required
@@ -53,6 +53,13 @@ def jellyfin_playlists():
def add_playlist(): def add_playlist():
playlist_id = request.form.get('item_id') playlist_id = request.form.get('item_id')
playlist_name = request.form.get('item_name') playlist_name = request.form.get('item_name')
if not playlist_id and request.data:
# get data convert from json to dict
data = request.get_json()
playlist_id = data.get('item_id')
playlist_name = data.get('item_name')
additional_users = data.get('additional_users')
# also get the provider id from the query params # also get the provider id from the query params
provider_id = request.args.get('provider') provider_id = request.args.get('provider')
if not playlist_id: if not playlist_id:
@@ -122,6 +129,13 @@ def add_playlist():
"can_remove":True, "can_remove":True,
"jellyfin_id" : playlist.jellyfin_id "jellyfin_id" : playlist.jellyfin_id
} }
if additional_users and session['is_admin']:
db.session.commit()
app.logger.debug(f"Additional users: {additional_users}")
for user_id in additional_users:
routes.add_jellyfin_user_to_playlist_internal(user_id,playlist.jellyfin_id)
return render_template('partials/_add_remove_button.html',item= item) return render_template('partials/_add_remove_button.html',item= item)