mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Fix generate task override behaviour (#3661)
This commit is contained in:
@@ -30,13 +30,9 @@ func (t *GeneratePreviewTask) GetDescription() string {
|
||||
}
|
||||
|
||||
func (t *GeneratePreviewTask) Start(ctx context.Context) {
|
||||
if !t.Overwrite && !t.required() {
|
||||
return
|
||||
}
|
||||
|
||||
videoChecksum := t.Scene.GetHash(t.fileNamingAlgorithm)
|
||||
|
||||
if t.Overwrite || !t.doesVideoPreviewExist() {
|
||||
if t.videoPreviewRequired() {
|
||||
ffprobe := instance.FFProbe
|
||||
videoFile, err := ffprobe.NewVideoFile(t.Scene.Path)
|
||||
if err != nil {
|
||||
@@ -51,7 +47,7 @@ func (t *GeneratePreviewTask) Start(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
if t.ImagePreview && (t.Overwrite || !t.doesImagePreviewExist()) {
|
||||
if t.imagePreviewRequired() {
|
||||
if err := t.generateWebp(videoChecksum); err != nil {
|
||||
logger.Errorf("error generating preview webp: %v", err)
|
||||
logErrorOutput(err)
|
||||
@@ -59,7 +55,7 @@ func (t *GeneratePreviewTask) Start(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
func (t GeneratePreviewTask) generateVideo(videoChecksum string, videoDuration float64, videoFrameRate float64) error {
|
||||
func (t *GeneratePreviewTask) generateVideo(videoChecksum string, videoDuration float64, videoFrameRate float64) error {
|
||||
videoFilename := t.Scene.Path
|
||||
useVsync2 := false
|
||||
|
||||
@@ -78,12 +74,16 @@ func (t GeneratePreviewTask) generateVideo(videoChecksum string, videoDuration f
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t GeneratePreviewTask) generateWebp(videoChecksum string) error {
|
||||
func (t *GeneratePreviewTask) generateWebp(videoChecksum string) error {
|
||||
videoFilename := t.Scene.Path
|
||||
return t.generator.PreviewWebp(context.TODO(), videoFilename, videoChecksum)
|
||||
}
|
||||
|
||||
func (t GeneratePreviewTask) required() bool {
|
||||
func (t *GeneratePreviewTask) required() bool {
|
||||
return t.videoPreviewRequired() || t.imagePreviewRequired()
|
||||
}
|
||||
|
||||
func (t *GeneratePreviewTask) videoPreviewRequired() bool {
|
||||
if t.Scene.Path == "" {
|
||||
return false
|
||||
}
|
||||
@@ -92,12 +92,6 @@ func (t GeneratePreviewTask) required() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
videoExists := t.doesVideoPreviewExist()
|
||||
imageExists := !t.ImagePreview || t.doesImagePreviewExist()
|
||||
return !imageExists || !videoExists
|
||||
}
|
||||
|
||||
func (t *GeneratePreviewTask) doesVideoPreviewExist() bool {
|
||||
sceneChecksum := t.Scene.GetHash(t.fileNamingAlgorithm)
|
||||
if sceneChecksum == "" {
|
||||
return false
|
||||
@@ -108,10 +102,22 @@ func (t *GeneratePreviewTask) doesVideoPreviewExist() bool {
|
||||
t.videoPreviewExists = &videoExists
|
||||
}
|
||||
|
||||
return *t.videoPreviewExists
|
||||
return !*t.videoPreviewExists
|
||||
}
|
||||
|
||||
func (t *GeneratePreviewTask) doesImagePreviewExist() bool {
|
||||
func (t *GeneratePreviewTask) imagePreviewRequired() bool {
|
||||
if !t.ImagePreview {
|
||||
return false
|
||||
}
|
||||
|
||||
if t.Scene.Path == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
if t.Overwrite {
|
||||
return true
|
||||
}
|
||||
|
||||
sceneChecksum := t.Scene.GetHash(t.fileNamingAlgorithm)
|
||||
if sceneChecksum == "" {
|
||||
return false
|
||||
@@ -122,5 +128,5 @@ func (t *GeneratePreviewTask) doesImagePreviewExist() bool {
|
||||
t.imagePreviewExists = &imageExists
|
||||
}
|
||||
|
||||
return *t.imagePreviewExists
|
||||
return !*t.imagePreviewExists
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user