diff --git a/testdata/ffmpeg.d/cmd/prune/main.go b/testdata/ffmpeg.d/cmd/prune/main.go index 2e1883d..8bfa34b 100644 --- a/testdata/ffmpeg.d/cmd/prune/main.go +++ b/testdata/ffmpeg.d/cmd/prune/main.go @@ -50,13 +50,13 @@ func Run(ctx context.Context, args []string) error { for _, f := range files { series = append(series, strings.Split(path.Base(f), ".")[0]) } - series = slices.Compact(series) sort.Strings(series) - if len(series) < 1 { - continue - } + series = slices.Compact(series) + series = slices.DeleteFunc(series, func(s string) bool { + return path.Base(s) > time.Now().Add(-10*time.Minute).Format("2006-01-02T15-04-05.") + }) - for _, series := range series[:len(series)-1] { + for _, series := range series { if err := func() error { seriesFiles := []string{} for _, file := range files { @@ -110,6 +110,7 @@ func seriesHasMovement(ctx context.Context, files []string, movementInterval tim return false, err } fTime := fStat.ModTime() + for i := 1; i < len(files); i++ { g := files[i] gStat, err := os.Stat(g) diff --git a/testdata/ffmpeg.d/cmd/prune/main_test.go b/testdata/ffmpeg.d/cmd/prune/main_test.go index 92b9707..7040044 100644 --- a/testdata/ffmpeg.d/cmd/prune/main_test.go +++ b/testdata/ffmpeg.d/cmd/prune/main_test.go @@ -23,26 +23,29 @@ func TestRun(t *testing.T) { t.Fatal(err) } + seriesA := "2024-09-18T10-50-00" + seriesB := time.Now().Format("2006-01-02T15-04-05") + now := time.Now() - if err := os.WriteFile(path.Join(d, "series.0.jpg"), a, os.ModePerm); err != nil { + if err := os.WriteFile(path.Join(d, seriesA+".0.jpg"), a, os.ModePerm); err != nil { t.Fatal(err) - } else if err := os.Chtimes(path.Join(d, "series.0.jpg"), now, now.Add(-4000*time.Millisecond)); err != nil { + } else if err := os.Chtimes(path.Join(d, seriesA+".0.jpg"), now, now.Add(-4000*time.Millisecond)); err != nil { t.Fatal(err) - } else if err := os.WriteFile(path.Join(d, "series.1.jpg"), a, os.ModePerm); err != nil { + } else if err := os.WriteFile(path.Join(d, seriesA+".1.jpg"), a, os.ModePerm); err != nil { t.Fatal(err) - } else if err := os.Chtimes(path.Join(d, "series.1.jpg"), now, now.Add(-3500*time.Millisecond)); err != nil { + } else if err := os.Chtimes(path.Join(d, seriesA+".1.jpg"), now, now.Add(-3500*time.Millisecond)); err != nil { t.Fatal(err) - } else if err := os.WriteFile(path.Join(d, "series.2.jpg"), b, os.ModePerm); err != nil { + } else if err := os.WriteFile(path.Join(d, seriesA+".2.jpg"), b, os.ModePerm); err != nil { t.Fatal(err) - } else if err := os.Chtimes(path.Join(d, "series.2.jpg"), now, now.Add(-3000*time.Millisecond)); err != nil { + } else if err := os.Chtimes(path.Join(d, seriesA+".2.jpg"), now, now.Add(-3000*time.Millisecond)); err != nil { t.Fatal(err) - } else if err := os.WriteFile(path.Join(d, "series.3.jpg"), b, os.ModePerm); err != nil { + } else if err := os.WriteFile(path.Join(d, seriesA+".3.jpg"), b, os.ModePerm); err != nil { t.Fatal(err) - } else if err := os.Chtimes(path.Join(d, "series.3.jpg"), now, now.Add(-2500*time.Millisecond)); err != nil { + } else if err := os.Chtimes(path.Join(d, seriesA+".3.jpg"), now, now.Add(-2500*time.Millisecond)); err != nil { t.Fatal(err) - } else if err := os.WriteFile(path.Join(d, "zlast.0.jpg"), b, os.ModePerm); err != nil { + } else if err := os.WriteFile(path.Join(d, seriesB+".0.jpg"), b, os.ModePerm); err != nil { t.Fatal(err) - } else if err := os.Chtimes(path.Join(d, "zlast.0.jpg"), now, now.Add(-2000*time.Millisecond)); err != nil { + } else if err := os.Chtimes(path.Join(d, seriesB+".0.jpg"), now, now.Add(-2000*time.Millisecond)); err != nil { t.Fatal(err) } @@ -58,7 +61,7 @@ func TestRun(t *testing.T) { t.Fatal("failed to lsf for results:", err) } else if len(results) != 1 { t.Fatal(results) - } else if path.Base(results[0]) != "series.gif" { + } else if path.Base(results[0]) != seriesA+".gif" { t.Fatal(results) } @@ -66,7 +69,7 @@ func TestRun(t *testing.T) { t.Fatal(err) } else if len(records) != 1 { t.Fatal(records) - } else if path.Base(records[0]) != "zlast.0.jpg" { + } else if path.Base(records[0]) != seriesB+".0.jpg" { t.Fatal(err) } }