Commit graph

17 commits

Author SHA1 Message Date
Broque Thomas
8b3b82702a Add deep library scan automation for enrichment-safe sync 2026-03-07 18:39:45 -08:00
Broque Thomas
dd5f2f07e9 detail modal for each action and trgiger 2026-03-06 16:43:24 -08:00
Broque Thomas
7b854baba8 Detect and remove deleted content during incremental database updates
Incremental database updates now detect when artists or albums have been removed from your media server (Plex, Jellyfin, or Navidrome) and automatically clean them up from SoulSync's database. Previously, deleted content would persist as ghost entries until you ran a full refresh. Removal counts are reported in the scan results. Includes safety checks to prevent accidental mass deletion if the server is unreachable or returns incomplete data.
2026-03-03 13:13:38 -08:00
Broque Thomas
fabec1e455 Handle duplicate artists and ratingKey migrations
Add duplicate-artist detection/merge and handle ratingKey (ID) migrations for artists and albums. Introduces MusicDatabase.merge_duplicate_artists that picks a canonical artist (most enrichment data), merges enrichment fields, migrates albums/tracks, and removes duplicates; DatabaseUpdateWorker now runs this merge during updates (even when no new content) and after orphan cleanup. insert_or_update_artist/album now detect same-name/title + server_source collisions (ratingKey changes), inserting a new record while preserving enrichment and migrating references, with safe deletion of old rows. Also deduplicate artist listing queries so results show a single canonical row per name+server_source while aggregating album/track counts across duplicates. Logging improved to report merge/migration outcomes.
2026-02-23 13:15:06 -08:00
Broque Thomas
c6a7c99ad7 additional logging for navidrome troubleshooting connection status 2026-02-17 08:32:51 -08:00
Broque Thomas
f2fb498693 Fix Navidrome incremental update to use getAlbumList2 API for recent albums
Summary: Navidrome incremental updates always found 0 new tracks because _get_recent_albums_navidrome() fetched all artists, sampled only the first 200, collected their albums, and sorted by created date — missing artists beyond the first 200 entirely. Replaced this with a single getAlbumList2?type=newest Subsonic API call that directly returns albums sorted by library addition date, matching how Jellyfin and Plex already use their native "recently added" endpoints.
2026-02-12 13:58:20 -08:00
Broque Thomas
9af0be1300 fixed issue where legacy cold was called. 2026-01-26 13:37:42 -08:00
Broque Thomas
e06f0ea372 auto scan after download completion and follow with auto incremental update for active server 2025-09-22 15:01:28 -07:00
Broque Thomas
fcee0194e7 navidrome functionality start 2025-09-21 21:02:12 -07:00
Broque Thomas
287d2fd2ec Add Docker support and improve headless compatibility
Introduces Docker deployment files (.dockerignore, Dockerfile, docker-compose.yml, docker-setup.sh, requirements-webui.txt, and README-Docker.md) for SoulSync WebUI. Refactors core/database_update_worker.py and core/media_scan_manager.py to support headless operation without PyQt6, enabling signal/callback compatibility for both GUI and non-GUI environments. Removes logs/app.log file.
2025-09-11 08:26:25 -07:00
Broque Thomas
620c78766b better 2025-08-18 10:36:57 -07:00
Broque Thomas
a228affd7b database fixes 2025-08-08 20:44:48 -07:00
Broque Thomas
2ad0dddba4 recommend database refresh every 1-2weeks
This is needed if users manually correct failed matches on plex when songs are scanned in. If a db sync is done after the scan but before the manual modification,
2025-08-07 20:27:26 -07:00
Broque Thomas
906d0c23b7 incremental update bug fixed 2025-08-07 11:37:13 -07:00
Broque Thomas
66bbfaf9c1 fix incremental update 2025-08-07 11:26:50 -07:00
Broque Thomas
684433d857 update variations 2025-08-06 00:07:12 -07:00
Broque Thomas
b76c0531e5 basic db structure 2025-08-05 22:43:04 -07:00