Skip to content

Commit

Permalink
Update Scenes' 'Updated At' Date on Heatmap Gen & Expand Error Log
Browse files Browse the repository at this point in the history
The UpdatedAt field of a scene is now correctly updated after Generate Task is run and a heatmap linked to a scene.. I thought it made more sense here in the generate heatmap compared to scan.go, owing to funscript data not being tracked/stored in a typical sense with the scan message "updating metadata".
I used a simplified error messaging as I did not think it was critcal but I do not know if did not use the correct code structure
If updating the UpdatedAt field should be done there when the file is marked as interactive I can try and do that?
This would fix this long-standing issue #3738

The error message change is useful as I could not tell which scripts were causing errors before but now it is clear in the logs
  • Loading branch information
randemgame committed Oct 19, 2024
1 parent 76648fe commit 4c61353
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion internal/manager/task_generate_interactive_heatmap_speed.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package manager
import (
"context"
"fmt"
"time"

"github.com/stashapp/stash/pkg/file/video"
"github.com/stashapp/stash/pkg/fsutil"
Expand Down Expand Up @@ -36,7 +37,7 @@ func (t *GenerateInteractiveHeatmapSpeedTask) Start(ctx context.Context) {
err := generator.Generate(funscriptPath, heatmapPath, t.Scene.Files.Primary().Duration)

if err != nil {
logger.Errorf("error generating heatmap: %s", err.Error())
logger.Errorf("error generating heatmap for %s: %s", t.Scene.Path, err.Error())
return
}

Expand All @@ -51,6 +52,18 @@ func (t *GenerateInteractiveHeatmapSpeedTask) Start(ctx context.Context) {
}); err != nil && ctx.Err() == nil {
logger.Error(err.Error())
}

if err := r.WithTxn(ctx, func(ctx context.Context) error {
qb := r.Scene
scenePartial := models.NewScenePartial()
now := time.Now()
scenePartial.UpdatedAt = models.NewOptionalTime(now)

_, err := qb.UpdatePartial(ctx, t.Scene.ID, scenePartial)
return err
}); err != nil && ctx.Err() == nil {
logger.Errorf("error updating %s after heatmap generation: %s", t.Scene.Path, err.Error())
}
}

func (t *GenerateInteractiveHeatmapSpeedTask) required() bool {
Expand Down

0 comments on commit 4c61353

Please sign in to comment.