Add playlist support to downloader API and frontend
Enhanced the downloader backend and frontend to support playlist URLs for video info and downloads. The API now returns structured playlist information, allows selecting specific videos for download, and returns a ZIP file for playlist downloads. Updated OpenAPI types, removed deprecated parameters (start_time, end_time, playlist_items), and improved Content Security Policy handling in nginx. Refactored frontend to handle playlist selection and updated generated API models accordingly.
This commit is contained in:
@@ -14,6 +14,11 @@ http {
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
|
||||
# Content Security Policy - organized for better readability
|
||||
map $request_uri $csp_policy {
|
||||
default "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src * data: blob:; connect-src 'self' http://127.0.0.1:8000 http://localhost:8000 ws: wss: https://api.paylibo.com; font-src 'self' data: https://fonts.gstatic.com";
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
@@ -27,7 +32,7 @@ http {
|
||||
location / {
|
||||
try_files $uri /index.html;
|
||||
# Ensure CSP is present on SPA document responses too
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https://api.paylibo.com; connect-src 'self' http://127.0.0.1:8000 http://localhost:8000 ws: wss: https://api.paylibo.com; font-src 'self' data:" always;
|
||||
add_header Content-Security-Policy $csp_policy always;
|
||||
}
|
||||
|
||||
# -------------------------
|
||||
@@ -59,7 +64,7 @@ http {
|
||||
client_max_body_size 50m;
|
||||
|
||||
# Ensure CSP is also present on proxied responses
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https://api.paylibo.com; connect-src 'self' http://127.0.0.1:8000 http://localhost:8000 ws: wss: https://api.paylibo.com; font-src 'self' data:" always;
|
||||
add_header Content-Security-Policy $csp_policy always;
|
||||
}
|
||||
|
||||
# -------------------------
|
||||
@@ -69,7 +74,10 @@ http {
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||||
|
||||
# Minimal, valid CSP for development (apply on all responses)
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https://api.paylibo.com; connect-src 'self' http://127.0.0.1:8000 http://localhost:8000 ws: wss: https://api.paylibo.com; font-src 'self' data:" always;
|
||||
# CSP Policy - Centrally defined above for better maintainability
|
||||
# To add new domains, update the $csp_policy map above
|
||||
# Development: More permissive for external resources
|
||||
# Production: Should be more restrictive and use nonces/hashes where possible
|
||||
add_header Content-Security-Policy $csp_policy always;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user