From c009acdbb6055c69103fe6a726001085c19a57ce Mon Sep 17 00:00:00 2001 From: Broque Thomas <26755000+Nezreka@users.noreply.github.com> Date: Fri, 17 Apr 2026 20:56:05 -0700 Subject: [PATCH] Add SoulSync Standalone toggle to Settings page Fourth server option on the Connections tab with SoulSync logo and 'Standalone' label. Config panel shows Transfer folder path and Verify Folder button. Test connection counts audio files in the Transfer folder. Settings save/load properly detects soulsync toggle. --- web_server.py | 14 ++++++++++++++ webui/index.html | 24 ++++++++++++++++++++++++ webui/static/script.js | 15 ++++++++++++++- webui/static/style.css | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 1 deletion(-) diff --git a/web_server.py b/web_server.py index f7409465..eec6769b 100644 --- a/web_server.py +++ b/web_server.py @@ -4342,6 +4342,20 @@ def run_service_test(service, test_config): except Exception as e: return False, f"Navidrome connection error: {str(e)}" + elif service == "soulsync": + transfer_path = docker_resolve_path(config_manager.get('soulseek.transfer_path', './Transfer')) + if os.path.isdir(transfer_path): + # Count audio files + count = 0 + for root, dirs, files in os.walk(transfer_path): + for f in files: + if os.path.splitext(f)[1].lower() in ('.mp3', '.flac', '.ogg', '.opus', '.m4a', '.aac', '.wav'): + count += 1 + if count > 100: + break # Don't count everything, just confirm files exist + return True, f"SoulSync standalone ready! Transfer folder: {transfer_path} ({count}+ audio files)" + else: + return False, f"Transfer folder not found: {transfer_path}" elif service == "soulseek": if soulseek_client is None: return False, "Download orchestrator failed to initialize. Check server logs for startup errors." diff --git a/webui/index.html b/webui/index.html index 7b41fac5..c939a173 100644 --- a/webui/index.html +++ b/webui/index.html @@ -4307,6 +4307,12 @@ class="server-logo"> Navidrome + @@ -4407,6 +4413,24 @@ + +