update version modal and readme

This commit is contained in:
Broque Thomas 2026-01-25 10:33:32 -08:00
parent 905e98016f
commit d7542b20c9
3 changed files with 40 additions and 29 deletions

View file

@ -59,6 +59,15 @@ SoulSync bridges streaming services to your media server with automated discover
- Batch processing with retry logic - Batch processing with retry logic
- Synchronized lyrics (LRC) for every track - Synchronized lyrics (LRC) for every track
### Metadata & Reliability
**Dual-Source System**
- **Primary**: Spotify (Preferred for richer data and discovery features)
- **Backup**: iTunes (No authentication required)
- **Redundancy**: System automatically manages both sources. If Spotify is authorized, it is prioritized. If Spotify is unavailable, rate-limited, or unauthorized, SoulSync **seamlessly switches to iTunes** for metadata, cover art, and artist tracking.
- **Fail-Safe**: Even with Spotify authorized, iTunes metadata is maintained as a redundant layer to ensure zero downtime.
### Advanced Matching ### Advanced Matching
- Unicode/accent handling (KoЯn, Björk, A$AP Rocky) - Unicode/accent handling (KoЯn, Björk, A$AP Rocky)

View file

@ -8778,43 +8778,40 @@ def get_version_info():
This provides the same data that the GUI version modal displays. This provides the same data that the GUI version modal displays.
""" """
version_data = { version_data = {
"version": "1.3", "version": "1.4",
"title": "What's New in SoulSync", "title": "What's New in SoulSync",
"subtitle": "Version 1.3 - New YouTube Engine, Docker Fixes & More", "subtitle": "Version 1.4 - Full iTunes Metadata Support & More",
"sections": [ "sections": [
{ {
"title": "📺 New YouTube Download Source", "title": "🍎 Full iTunes Metadata Support",
"description": "Major overhaul of the YouTube download engine, making it a first-class citizen alongside Soulseek", "description": "Complete iTunes integration as a powerful alternative to Spotify",
"features": [
"• Full Independence - Use SoulSync without a Spotify account! iTunes metadata is now fully capable of replacing Spotify",
"• Automatic Fallback - Seamlessly switches to iTunes metadata if Spotify is unavailable or unauthenticated",
"• Watchlist Support - Add artists, configure downloads, and fetch cover art using iTunes IDs",
"• Smart Matching - Automatically links artists between platforms for maximum compatibility",
"• High-Res Artwork - Fetches high-quality album art directly from Apple's servers"
],
"usage_note": "No configuration needed! SoulSync automatically uses the best available metadata source."
},
{
"title": "📺 YouTube Download Engine",
"description": "Major overhaul of the YouTube download engine (v1.3 feature)",
"features": [ "features": [
"• First-Class Support - YouTube is now a primary download source, fully integrated into the app's core", "• First-Class Support - YouTube is now a primary download source, fully integrated into the app's core",
"• Hybrid Mode - Automatically fallback to YouTube if Soulseek downloads fail (or vice-versa)", "• Hybrid Mode - Automatically fallback to YouTube if Soulseek downloads fail (or vice-versa)",
"• Reliable Downloads - Completely rewritten post-processing engine to eliminate 'file not found' errors", "• Reliable Downloads - Completely rewritten post-processing engine to eliminate 'file not found' errors",
"• Batch Processing - YouTube downloads now support batch operations and queue management", "• Batch Processing - YouTube downloads now support batch operations and queue management"
"• High Quality - Automatic selection of highest quality audio streams (up to 320kbps opus/aac)", ]
"• Metadata Matching - Intelligent matching of YouTube videos to correct Spotify metadata"
],
"usage_note": "Configure your preferred download sources in Settings > Download Settings!"
}, },
{ {
"title": "🐳 Docker & System Reliability", "title": "🐳 Docker & System Reliability",
"description": "Critical fixes for Docker environments and general system stability", "description": "Critical fixes for Docker environments and general system stability",
"features": [ "features": [
"• Docker Streaming Fix - Resolved issues with path resolution when streaming in Docker containers", "• Docker Streaming Fix - Resolved issues with path resolution when streaming in Docker containers",
"Volume Mapping - Improved handling of mapped volumes and permissions", "Low-Memory Optimization - Improved memory usage during long scanning sessions",
"• Settings Persistence - Fixed an issue where Spotify settings wouldn't save correctly", "• Settings Persistence - Fixed an issue where Spotify settings wouldn't save correctly",
"• Soulseek Connection - Better connection stability and compatibility checks", "• Watchlist Cleanup - Better handling of duplicate entries and cross-platform IDs"
"• Background Workers - More robust background task handling for long-running operations"
]
},
{
"title": "🛠️ Fixes & Improvements",
"description": "General bug fixes and quality of life improvements",
"features": [
"• Diacritics Support - Fixed album/artist matching for names with special characters (e.g., 'Pielea de găină')",
"• Search Timing - Optimized search scheduling to prevent rate limiting",
"• Library Scanning - Faster and more accurate matching against existing library tracks",
"• Mobile Layout - Improved responsiveness for sidebar and modals on mobile devices"
] ]
} }
] ]

View file

@ -131,7 +131,7 @@
<!-- Version Section --> <!-- Version Section -->
<div class="version-section"> <div class="version-section">
<button class="version-button" onclick="showVersionInfo()">v1.3</button> <button class="version-button" onclick="showVersionInfo()">v1.4</button>
</div> </div>
<!-- Status Section --> <!-- Status Section -->
@ -3305,7 +3305,8 @@
<div class="config-section"> <div class="config-section">
<h3 class="config-section-title">Content Filters</h3> <h3 class="config-section-title">Content Filters</h3>
<p class="config-section-subtitle">Check to INCLUDE, leave unchecked to EXCLUDE (default: all excluded)</p> <p class="config-section-subtitle">Check to INCLUDE, leave unchecked to EXCLUDE (default: all
excluded)</p>
<div class="config-options"> <div class="config-options">
<label class="config-option"> <label class="config-option">
@ -3314,7 +3315,8 @@
<div class="config-option-icon">🎤</div> <div class="config-option-icon">🎤</div>
<div class="config-option-text"> <div class="config-option-text">
<span class="config-option-title">Include Live Versions</span> <span class="config-option-title">Include Live Versions</span>
<span class="config-option-description">Check to include live performances and concerts</span> <span class="config-option-description">Check to include live performances and
concerts</span>
</div> </div>
</div> </div>
</label> </label>
@ -3325,7 +3327,8 @@
<div class="config-option-icon">🎧</div> <div class="config-option-icon">🎧</div>
<div class="config-option-text"> <div class="config-option-text">
<span class="config-option-title">Include Remixes</span> <span class="config-option-title">Include Remixes</span>
<span class="config-option-description">Check to include remix versions and edits</span> <span class="config-option-description">Check to include remix versions and
edits</span>
</div> </div>
</div> </div>
</label> </label>
@ -3336,7 +3339,8 @@
<div class="config-option-icon">🎸</div> <div class="config-option-icon">🎸</div>
<div class="config-option-text"> <div class="config-option-text">
<span class="config-option-title">Include Acoustic Versions</span> <span class="config-option-title">Include Acoustic Versions</span>
<span class="config-option-description">Check to include acoustic and stripped versions</span> <span class="config-option-description">Check to include acoustic and stripped
versions</span>
</div> </div>
</div> </div>
</label> </label>
@ -3347,7 +3351,8 @@
<div class="config-option-icon">📀</div> <div class="config-option-icon">📀</div>
<div class="config-option-text"> <div class="config-option-text">
<span class="config-option-title">Include Compilations</span> <span class="config-option-title">Include Compilations</span>
<span class="config-option-description">Check to include greatest hits and collections</span> <span class="config-option-description">Check to include greatest hits and
collections</span>
</div> </div>
</div> </div>
</label> </label>