diff --git a/web_server.py b/web_server.py index 530e77d2..fa8d7898 100644 --- a/web_server.py +++ b/web_server.py @@ -6524,7 +6524,7 @@ def stream_enhanced_search_track(): logger.warning(f"❌ No suitable matches found after trying {len(search_queries)} queries") return jsonify({ "success": False, - "error": "No suitable track found on Soulseek after trying multiple search strategies" + "error": "No suitable track found after trying multiple search strategies" }), 404 except Exception as e: @@ -7155,7 +7155,7 @@ def get_task_candidates(task_id): "task_id": task_id, "track_info": { "name": track_info.get('name', 'Unknown') if isinstance(track_info, dict) else 'Unknown', - "artist": track_info.get('artist', 'Unknown') if isinstance(track_info, dict) else 'Unknown', + "artist": _get_track_artist_name(track_info) if isinstance(track_info, dict) else 'Unknown', }, "error_message": error_message, "candidates": serialized, @@ -18576,7 +18576,7 @@ def _on_download_completed(batch_id, task_id, success=True): 'artist_name': _get_track_artist_name(original_track_info), 'retry_count': task.get('retry_count', 0), 'spotify_track': spotify_track_data, # Properly formatted spotify track for wishlist - 'failure_reason': 'Download cancelled' if task_status == 'cancelled' else ('Not found on Soulseek' if task_status == 'not_found' else 'Download failed'), + 'failure_reason': 'Download cancelled' if task_status == 'cancelled' else ('No matching track found' if task_status == 'not_found' else 'Download failed'), 'candidates': task.get('cached_candidates', []) # Include search results if available } @@ -19678,7 +19678,7 @@ def _download_track_worker(task_id, batch_id=None): search_diagnostics.append(f'"{query}": {result_count} results but none passed quality/artist filters') all_raw_results.extend(tracks_result[:20]) # Keep top results for review else: - search_diagnostics.append(f'"{query}": no results on Soulseek') + search_diagnostics.append(f'"{query}": no results found') except Exception as e: print(f"⚠️ [Modal Worker] Search failed for query '{query}': {e}") diff --git a/webui/static/script.js b/webui/static/script.js index c7929a32..f75fe155 100644 --- a/webui/static/script.js +++ b/webui/static/script.js @@ -6610,7 +6610,7 @@ function initializeSearchModeToggle() { const data = await response.json(); if (!data.success || !data.result) { - throw new Error('No suitable track found on Soulseek'); + throw new Error('No suitable track found'); } const slskdResult = data.result; diff --git a/webui/static/style.css b/webui/static/style.css index 8f57fa3b..d31ecea1 100644 --- a/webui/static/style.css +++ b/webui/static/style.css @@ -29967,7 +29967,7 @@ body { background: linear-gradient(135deg, #1a1a1a 0%, #121212 100%); border-radius: 16px; border: 1px solid rgba(var(--accent-rgb), 0.2); - width: 900px; + width: 90%; max-width: 95vw; max-height: 80vh; display: flex; @@ -30073,11 +30073,11 @@ body { vertical-align: middle; } .candidates-col-index { color: rgba(255,255,255,0.3); width: 32px; text-align: center; } -.candidates-col-file { width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.candidates-col-quality { width: 100px; white-space: nowrap; } +.candidates-col-file { width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.candidates-col-quality { width: 110px; white-space: nowrap; } .candidates-col-size { width: 70px; white-space: nowrap; } .candidates-col-duration { width: 60px; white-space: nowrap; } -.candidates-col-user { width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.candidates-col-user { width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .candidates-col-action { width: 44px; text-align: center; padding: 6px 4px !important; } .candidates-quality-badge {