From 3a56dd98dba78f3c3d56138e16396ecb47445faa Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Wed, 28 Feb 2024 08:28:29 +1100 Subject: [PATCH] Change handlerRequiredFilter to check for .forcegallery (#4627) --- internal/manager/task_scan.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/manager/task_scan.go b/internal/manager/task_scan.go index 58df36ea4..f0452bfcc 100644 --- a/internal/manager/task_scan.go +++ b/internal/manager/task_scan.go @@ -176,7 +176,8 @@ func (f *handlerRequiredFilter) Accept(ctx context.Context, ff models.File) bool // if create galleries from folder is enabled and the file is not in a zip // file, then check if there is a folder-based gallery for the file's // directory - if isImageFile && instance.Config.GetCreateGalleriesFromFolders() && ff.Base().ZipFileID == nil { + // #4611 - also check for .forcegallery + if isImageFile && ff.Base().ZipFileID == nil { // only do this for the first time it encounters the folder // the first instance should create the gallery _, found := f.FolderCache.Get(ctx, ff.Base().ParentFolderID.String()) @@ -185,9 +186,23 @@ func (f *handlerRequiredFilter) Accept(ctx context.Context, ff models.File) bool return false } - g, _ := f.GalleryFinder.FindByFolderID(ctx, ff.Base().ParentFolderID) f.FolderCache.Add(ctx, ff.Base().ParentFolderID.String(), true) + createGallery := instance.Config.GetCreateGalleriesFromFolders() + if !createGallery { + // check for presence of .forcegallery + forceGalleryPath := filepath.Join(filepath.Dir(path), ".forcegallery") + if exists, _ := fsutil.FileExists(forceGalleryPath); exists { + createGallery = true + } + } + + if !createGallery { + return false + } + + g, _ := f.GalleryFinder.FindByFolderID(ctx, ff.Base().ParentFolderID) + if len(g) == 0 { // no folder gallery. Return true so that it creates one. return true