mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 21:04:37 +03:00
* Refactor transaction hooks. Add preCommit * Add BlobStore * Use blobStore for tag images * Use blobStore for studio images * Use blobStore for performer images * Use blobStore for scene covers * Don't generate screenshots in legacy directory * Run post-hooks outside original transaction * Use blobStore for movie images * Remove unnecessary DestroyImage methods * Add missing filter for scene cover * Add covers to generate options * Add generate cover option to UI * Add screenshot migration * Delete thumb files as part of screenshot migration
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package scene
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/stashapp/stash/pkg/file"
|
|
"github.com/stashapp/stash/pkg/models"
|
|
"github.com/stashapp/stash/pkg/models/paths"
|
|
"github.com/stashapp/stash/pkg/plugin"
|
|
)
|
|
|
|
type FinderByFile interface {
|
|
FindByFileID(ctx context.Context, fileID file.ID) ([]*models.Scene, error)
|
|
}
|
|
|
|
type FileAssigner interface {
|
|
AssignFiles(ctx context.Context, sceneID int, fileID []file.ID) error
|
|
}
|
|
|
|
type Creator interface {
|
|
Create(ctx context.Context, newScene *models.Scene, fileIDs []file.ID) error
|
|
}
|
|
|
|
type CoverUpdater interface {
|
|
HasCover(ctx context.Context, sceneID int) (bool, error)
|
|
UpdateCover(ctx context.Context, sceneID int, cover []byte) error
|
|
}
|
|
|
|
type Config interface {
|
|
GetVideoFileNamingAlgorithm() models.HashAlgorithm
|
|
}
|
|
|
|
type Repository interface {
|
|
IDFinder
|
|
FinderByFile
|
|
Creator
|
|
PartialUpdater
|
|
Destroyer
|
|
models.VideoFileLoader
|
|
FileAssigner
|
|
CoverUpdater
|
|
models.SceneReader
|
|
}
|
|
|
|
type MarkerRepository interface {
|
|
MarkerFinder
|
|
MarkerDestroyer
|
|
|
|
Update(ctx context.Context, updatedObject models.SceneMarker) (*models.SceneMarker, error)
|
|
}
|
|
|
|
type Service struct {
|
|
File file.Store
|
|
Repository Repository
|
|
MarkerRepository MarkerRepository
|
|
PluginCache *plugin.Cache
|
|
|
|
Paths *paths.Paths
|
|
Config Config
|
|
}
|