diff --git a/cmd/minstrel/main.go b/cmd/minstrel/main.go index 91461b74..a78835f3 100644 --- a/cmd/minstrel/main.go +++ b/cmd/minstrel/main.go @@ -16,6 +16,8 @@ import ( "git.fabledsword.com/bvandeusen/minstrel/internal/db" "git.fabledsword.com/bvandeusen/minstrel/internal/library" "git.fabledsword.com/bvandeusen/minstrel/internal/logging" + "git.fabledsword.com/bvandeusen/minstrel/internal/scrobble" + "git.fabledsword.com/bvandeusen/minstrel/internal/scrobble/listenbrainz" "git.fabledsword.com/bvandeusen/minstrel/internal/server" "git.fabledsword.com/bvandeusen/minstrel/internal/subsonic" ) @@ -73,6 +75,12 @@ func run() error { }() } + // Start the ListenBrainz scrobble worker. Per spec §M4a, runs every 30s + // and drains up to 50 pending rows per tick. Per-user gating happens + // inside the worker (rows from disabled users are skipped). + scrobbleWorker := scrobble.NewWorker(pool, listenbrainz.NewClient(), logger.With("component", "scrobble")) + go scrobbleWorker.Run(ctx) + srv := server.New(logger, pool, scanner, subsonic.Config{ AllowPlaintextPassword: cfg.Subsonic.AllowPlaintextPassword, }, cfg.Events, cfg.Recommendation)