mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Manager refactor, part 1 (#4298)
* Move BackupDatabase and AnonymiseDatabase to internal/manager * Rename config.Instance to config.Config * Rename FFMPEG * Rework manager and initialization process * Fix Makefile * Tweak phasher * Fix config races * Fix setup error not clearing
This commit is contained in:
@@ -9,6 +9,9 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/stashapp/stash/internal/manager/config"
|
||||
"github.com/stashapp/stash/pkg/file"
|
||||
file_image "github.com/stashapp/stash/pkg/file/image"
|
||||
"github.com/stashapp/stash/pkg/file/video"
|
||||
"github.com/stashapp/stash/pkg/fsutil"
|
||||
"github.com/stashapp/stash/pkg/job"
|
||||
"github.com/stashapp/stash/pkg/logger"
|
||||
@@ -90,12 +93,32 @@ type ScanMetaDataFilterInput struct {
|
||||
}
|
||||
|
||||
func (s *Manager) Scan(ctx context.Context, input ScanMetadataInput) (int, error) {
|
||||
if err := s.validateFFMPEG(); err != nil {
|
||||
if err := s.validateFFmpeg(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
scanner := &file.Scanner{
|
||||
Repository: file.NewRepository(s.Repository),
|
||||
FileDecorators: []file.Decorator{
|
||||
&file.FilteredDecorator{
|
||||
Decorator: &video.Decorator{
|
||||
FFProbe: s.FFProbe,
|
||||
},
|
||||
Filter: file.FilterFunc(videoFileFilter),
|
||||
},
|
||||
&file.FilteredDecorator{
|
||||
Decorator: &file_image.Decorator{
|
||||
FFProbe: s.FFProbe,
|
||||
},
|
||||
Filter: file.FilterFunc(imageFileFilter),
|
||||
},
|
||||
},
|
||||
FingerprintCalculator: &fingerprintCalculator{s.Config},
|
||||
FS: &file.OsFS{},
|
||||
}
|
||||
|
||||
scanJob := ScanJob{
|
||||
scanner: s.Scanner,
|
||||
scanner: scanner,
|
||||
input: input,
|
||||
subscriptions: s.scanSubs,
|
||||
}
|
||||
@@ -160,7 +183,7 @@ func (s *Manager) RunSingleTask(ctx context.Context, t Task) int {
|
||||
}
|
||||
|
||||
func (s *Manager) Generate(ctx context.Context, input GenerateMetadataInput) (int, error) {
|
||||
if err := s.validateFFMPEG(); err != nil {
|
||||
if err := s.validateFFmpeg(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if err := instance.Paths.Generated.EnsureTmpDir(); err != nil {
|
||||
@@ -254,8 +277,16 @@ type CleanMetadataInput struct {
|
||||
}
|
||||
|
||||
func (s *Manager) Clean(ctx context.Context, input CleanMetadataInput) int {
|
||||
cleaner := &file.Cleaner{
|
||||
FS: &file.OsFS{},
|
||||
Repository: file.NewRepository(s.Repository),
|
||||
Handlers: []file.CleanHandler{
|
||||
&cleanHandler{},
|
||||
},
|
||||
}
|
||||
|
||||
j := cleanJob{
|
||||
cleaner: s.Cleaner,
|
||||
cleaner: cleaner,
|
||||
repository: s.Repository,
|
||||
sceneService: s.SceneService,
|
||||
imageService: s.ImageService,
|
||||
|
||||
Reference in New Issue
Block a user