From 2daa8227f969002cadb626c2a2dbd3846872d876 Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Mon, 8 Sep 2025 00:04:11 -0700 Subject: [PATCH] Update web_server.py --- web_server.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/web_server.py b/web_server.py index 18aeda71..c289e74b 100644 --- a/web_server.py +++ b/web_server.py @@ -4231,7 +4231,8 @@ def _post_process_matched_download_with_verification(context_key, context, file_ with tasks_lock: if task_id in download_tasks: download_tasks[task_id]['status'] = 'completed' - print(f"✅ [Verification] Task {task_id} marked as completed after verification") + download_tasks[task_id]['metadata_enhanced'] = True + print(f"✅ [Verification] Task {task_id} marked as completed with metadata enhanced") # Clean up context now that both stream processor and verification worker are done with matched_context_lock: @@ -5550,7 +5551,8 @@ def _run_full_missing_tracks_process(batch_id, playlist_id, tracks_json): 'playlist_id': playlist_id, 'batch_id': batch_id, 'track_index': res['track_index'], 'retry_count': 0, 'cached_candidates': [], 'used_sources': set(), - 'status_change_time': time.time() + 'status_change_time': time.time(), + 'metadata_enhanced': False } download_batches[batch_id]['queue'].append(task_id) @@ -5693,6 +5695,51 @@ def _run_post_processing_worker(task_id, batch_id): # Handle file found in transfer folder - already completed by stream processor if file_location == 'transfer': print(f"🎯 [Post-Processing] File found in transfer folder - already completed by stream processor: {found_file}") + + # Check if metadata enhancement was completed + metadata_enhanced = False + with tasks_lock: + if task_id in download_tasks: + metadata_enhanced = download_tasks[task_id].get('metadata_enhanced', False) + + if not metadata_enhanced: + print(f"⚠️ [Post-Processing] File in transfer folder missing metadata enhancement - completing now") + # Attempt to complete metadata enhancement using context + if context and expected_final_filename: + try: + # Extract required data from context + original_search = context.get("original_search_result", {}) + spotify_artist = context.get("spotify_artist") + spotify_album = context.get("spotify_album") + + if spotify_artist and spotify_album: + # Create album_info dict for metadata enhancement + album_info = { + 'id': spotify_album.get('id'), + 'name': spotify_album.get('name', 'Unknown Album'), + 'release_date': spotify_album.get('release_date', ''), + 'images': spotify_album.get('images', []) + } + + print(f"🎵 [Post-Processing] Attempting metadata enhancement for: {found_file}") + enhancement_success = _enhance_file_metadata(found_file, context, spotify_artist, album_info) + + if enhancement_success: + with tasks_lock: + if task_id in download_tasks: + download_tasks[task_id]['metadata_enhanced'] = True + print(f"✅ [Post-Processing] Successfully completed metadata enhancement for: {os.path.basename(found_file)}") + else: + print(f"⚠️ [Post-Processing] Metadata enhancement failed for: {os.path.basename(found_file)}") + else: + print(f"⚠️ [Post-Processing] Missing spotify_artist or spotify_album in context") + except Exception as enhancement_error: + print(f"❌ [Post-Processing] Error during metadata enhancement: {enhancement_error}") + else: + print(f"⚠️ [Post-Processing] Cannot complete metadata enhancement - missing context or expected filename") + else: + print(f"✅ [Post-Processing] File already has metadata enhancement completed") + with tasks_lock: if task_id in download_tasks: download_tasks[task_id]['status'] = 'completed'