Fix generate task override behaviour (#3661)

This commit is contained in:
DingDongSoLong4
2023-05-03 05:42:25 +02:00
committed by GitHub
parent 1717474a81
commit 67a2161c62
9 changed files with 96 additions and 51 deletions

View File

@@ -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
}