fix: scan populates each followed artist's full discography (unmonitored)

A followed artist previously showed only the one owned album ("of 1")
because scan_library recorded just the resolved release. Now scan
browses each artist's full MusicBrainz release-group list once per
run and stores it as unmonitored MonitoredRelease rows, matching
web-follow behavior. The owned album keeps its monitored/fulfilled
state via ON CONFLICT DO NOTHING.
This commit is contained in:
Jonathan
2026-07-11 17:49:26 +02:00
parent 2fb825140f
commit aafd8b15d5
4 changed files with 81 additions and 29 deletions
+3 -3
View File
@@ -25,8 +25,8 @@ def _set_config(conn, key: str, value: str) -> None:
conn.commit()
def _run_scan(conn, resolver, probe, dest_root: str = DEST_ROOT) -> None:
result = scan_library(conn, resolver, probe, dest_root)
def _run_scan(conn, resolver, probe, browser, dest_root: str = DEST_ROOT) -> None:
result = scan_library(conn, resolver, probe, browser, dest_root)
_set_config(conn, "scan.result", f"imported {result.imported}, skipped {result.skipped}")
_set_config(conn, "scan.requested", "false")
print(f"worker: library scan done — {result.imported} imported, {result.skipped} skipped", flush=True)
@@ -58,7 +58,7 @@ def run_forever() -> None:
if str(config.get("scan.requested", "")).strip().lower() in _TRUE:
try:
_run_scan(conn, resolver, probe)
_run_scan(conn, resolver, probe, browser)
except Exception as e: # a scan error must never kill the worker
print(f"worker: library scan failed: {e}", flush=True)
conn.rollback()