diff --git a/web_server.py b/web_server.py index 3cf03025..ff63b438 100644 --- a/web_server.py +++ b/web_server.py @@ -27829,7 +27829,7 @@ def start_tidal_sync(playlist_id): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Submit sync task - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks, None, get_current_profile_id()) active_sync_workers[sync_playlist_id] = future print(f"🔄 Started Tidal sync for: {playlist_name} ({len(spotify_tracks)} tracks)") @@ -28663,7 +28663,7 @@ def start_deezer_sync(playlist_id): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Submit sync task - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks, None, get_current_profile_id()) active_sync_workers[sync_playlist_id] = future print(f"🔄 Started Deezer sync for: {playlist_name} ({len(spotify_tracks)} tracks)") @@ -29490,7 +29490,7 @@ def start_spotify_public_sync(url_hash): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Submit sync task - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks, None, get_current_profile_id()) active_sync_workers[sync_playlist_id] = future print(f"🔄 Started Spotify Public sync for: {playlist_name} ({len(spotify_tracks)} tracks)") @@ -30527,7 +30527,7 @@ def start_youtube_sync(url_hash): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Submit sync task - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks, None, get_current_profile_id()) active_sync_workers[sync_playlist_id] = future print(f"🔄 Started YouTube sync for: {playlist_name} ({len(spotify_tracks)} tracks)") @@ -30806,7 +30806,7 @@ def convert_youtube_results_to_spotify_tracks(discovery_results): # Add these new endpoints to the end of web_server.py -def _run_sync_task(playlist_id, playlist_name, tracks_json, automation_id=None): +def _run_sync_task(playlist_id, playlist_name, tracks_json, automation_id=None, profile_id=1): """The actual sync function that runs in the background thread.""" global sync_states, sync_service @@ -31097,7 +31097,7 @@ def _run_sync_task(playlist_id, playlist_name, tracks_json, automation_id=None): sync_service._original_tracks_map = original_tracks_map # Run the sync (this is a blocking call within this thread) - result = run_async(sync_service.sync_playlist(playlist, download_missing=False, profile_id=get_current_profile_id())) + result = run_async(sync_service.sync_playlist(playlist, download_missing=False, profile_id=profile_id)) # Clear progress callback immediately to prevent race condition where a # late-firing progress callback overwrites the "finished" state below @@ -31220,9 +31220,10 @@ def start_playlist_sync(): # Initial state sync_states[playlist_id] = {"status": "starting", "progress": {}} - # Submit the task to the thread pool + # Submit the task to the thread pool (capture profile_id while still in request context) + _sync_profile_id = get_current_profile_id() thread_submit_time = time.time() - future = sync_executor.submit(_run_sync_task, playlist_id, playlist_name, tracks_json) + future = sync_executor.submit(_run_sync_task, playlist_id, playlist_name, tracks_json, None, _sync_profile_id) active_sync_workers[playlist_id] = future thread_submit_duration = (time.time() - thread_submit_time) * 1000 print(f"⏱️ [TIMING] Thread submitted at {time.strftime('%H:%M:%S')} (took {thread_submit_duration:.1f}ms)") @@ -36340,7 +36341,7 @@ def start_listenbrainz_sync(playlist_mbid): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Submit sync task - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['playlist_name'], spotify_tracks, None, get_current_profile_id()) active_sync_workers[sync_playlist_id] = future print(f"🔄 Started ListenBrainz sync for: {playlist_name} ({len(spotify_tracks)} tracks)") @@ -38778,7 +38779,7 @@ def start_beatport_sync(url_hash): sync_states[sync_playlist_id] = {"status": "starting", "progress": {}} # Start sync in background using existing thread pool - future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['name'], spotify_tracks) + future = sync_executor.submit(_run_sync_task, sync_playlist_id, sync_data['name'], spotify_tracks, None, get_current_profile_id()) state['sync_future'] = future print(f"🎧 Started Beatport sync for chart: {state['chart']['name']}")