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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user