From 4b8b19e1549ad3aa0bfedd0adb5d7a95c103c81c Mon Sep 17 00:00:00 2001 From: Deluan Date: Wed, 25 Jun 2025 14:44:36 -0400 Subject: [PATCH] fix: track processed libraries by updating state with scan timestamps Signed-off-by: Deluan --- scanner/phase_1_folders.go | 6 ++++++ scanner/phase_2_missing_tracks_test.go | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/scanner/phase_1_folders.go b/scanner/phase_1_folders.go index 8397d6924..233e78b15 100644 --- a/scanner/phase_1_folders.go +++ b/scanner/phase_1_folders.go @@ -28,6 +28,7 @@ import ( func createPhaseFolders(ctx context.Context, state *scanState, ds model.DataStore, cw artwork.CacheWarmer, libs []model.Library) *phaseFolders { var jobs []*scanJob + var updatedLibs []model.Library for _, lib := range libs { if lib.LastScanStartedAt.IsZero() { err := ds.Library(ctx).ScanBegin(lib.ID, state.fullScan) @@ -54,7 +55,12 @@ func createPhaseFolders(ctx context.Context, state *scanState, ds model.DataStor continue } jobs = append(jobs, job) + updatedLibs = append(updatedLibs, lib) } + + // Update the state with the libraries that have been processed and have their scan timestamps set + state.libraries = updatedLibs + return &phaseFolders{jobs: jobs, ctx: ctx, ds: ds, state: state} } diff --git a/scanner/phase_2_missing_tracks_test.go b/scanner/phase_2_missing_tracks_test.go index 5dd6cc679..4e46cfd3b 100644 --- a/scanner/phase_2_missing_tracks_test.go +++ b/scanner/phase_2_missing_tracks_test.go @@ -28,7 +28,9 @@ var _ = Describe("phaseMissingTracks", func() { lr = &tests.MockLibraryRepo{} lr.SetData(model.Libraries{{ID: 1, LastScanStartedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC)}}) ds = &tests.MockDataStore{MockedMediaFile: mr, MockedLibrary: lr} - state = &scanState{} + state = &scanState{ + libraries: model.Libraries{{ID: 1, LastScanStartedAt: time.Date(2021, 1, 1, 0, 0, 0, 0, time.UTC)}}, + } phase = createPhaseMissingTracks(ctx, state, ds) })