mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Fix handling of files to delete during delete Gallery operation (#5213)
* Only remove file in zip from image if deleting from zip file * Only remove file in folder from image if deleting from folder
This commit is contained in:
@@ -22,8 +22,8 @@ func (s *Service) Destroy(ctx context.Context, i *models.Gallery, fileDeleter *i
|
||||
imgsDestroyed = zipImgsDestroyed
|
||||
|
||||
// only delete folder based gallery images if we're deleting the folder
|
||||
if deleteFile {
|
||||
folderImgsDestroyed, err := s.destroyFolderImages(ctx, i, fileDeleter, deleteGenerated, deleteFile)
|
||||
if deleteFile && i.FolderID != nil {
|
||||
folderImgsDestroyed, err := s.ImageService.DestroyFolderImages(ctx, *i.FolderID, fileDeleter, deleteGenerated, deleteFile)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -86,36 +86,3 @@ func (s *Service) destroyZipFileImages(ctx context.Context, i *models.Gallery, f
|
||||
|
||||
return imgsDestroyed, nil
|
||||
}
|
||||
|
||||
func (s *Service) destroyFolderImages(ctx context.Context, i *models.Gallery, fileDeleter *image.FileDeleter, deleteGenerated, deleteFile bool) ([]*models.Image, error) {
|
||||
if i.FolderID == nil {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
var imgsDestroyed []*models.Image
|
||||
|
||||
// find images in this folder
|
||||
imgs, err := s.ImageFinder.FindByFolderID(ctx, *i.FolderID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, img := range imgs {
|
||||
if err := img.LoadGalleryIDs(ctx, s.ImageFinder); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// only destroy images that are not attached to other galleries
|
||||
if len(img.GalleryIDs.List()) > 1 {
|
||||
continue
|
||||
}
|
||||
|
||||
if err := s.ImageService.Destroy(ctx, img, fileDeleter, deleteGenerated, deleteFile); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
imgsDestroyed = append(imgsDestroyed, img)
|
||||
}
|
||||
|
||||
return imgsDestroyed, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user