From fe990e00c15aea4385cc93fa8a31519b38da97f8 Mon Sep 17 00:00:00 2001 From: bnkai <48220860+bnkai@users.noreply.github.com> Date: Mon, 1 Mar 2021 07:37:55 +0200 Subject: [PATCH] Check if gallery is already associated during scanning (#1154) --- pkg/manager/task_scan.go | 18 +++++++++++++----- .../src/components/Changelog/versions/v060.md | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pkg/manager/task_scan.go b/pkg/manager/task_scan.go index e2ac3834c..d35432f4a 100644 --- a/pkg/manager/task_scan.go +++ b/pkg/manager/task_scan.go @@ -315,14 +315,22 @@ func (t *ScanTask) associateGallery(wg *sizedwaitgroup.SizedWaitGroup) { scene, _ := sqb.FindByPath(scenePath) // found related Scene if scene != nil { - logger.Infof("associate: Gallery %s is related to scene: %d", t.FilePath, scene.ID) - - if err := sqb.UpdateGalleries(scene.ID, []int{g.ID}); err != nil { - return err + sceneGalleries, _ := sqb.FindByGalleryID(g.ID) // check if gallery is already associated to the scene + isAssoc := false + for _, sg := range sceneGalleries { + if scene.ID == sg.ID { + isAssoc = true + break + } + } + if !isAssoc { + logger.Infof("associate: Gallery %s is related to scene: %d", t.FilePath, scene.ID) + if err := sqb.UpdateGalleries(scene.ID, []int{g.ID}); err != nil { + return err + } } } } - return nil }); err != nil { logger.Error(err.Error()) diff --git a/ui/v2.5/src/components/Changelog/versions/v060.md b/ui/v2.5/src/components/Changelog/versions/v060.md index 947bffbec..d2b6099f3 100644 --- a/ui/v2.5/src/components/Changelog/versions/v060.md +++ b/ui/v2.5/src/components/Changelog/versions/v060.md @@ -8,6 +8,7 @@ * Added Rescan button to scene, image, gallery details overflow button. ### 🐛 Bug fixes +* Fix scan re-associating galleries to the same scene. * Fix SQL error when filtering galleries excluding performers or tags. * Fix version checking for armv7 and arm64. * Change "Is NULL" filter to include empty string values.