From 983b5585103392cd3ed392b4beee55b2329b7b1e Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 29 Jan 2024 01:22:34 +0100 Subject: [PATCH] Use os.Stat instead of mediainfo for thumbnails cache path --- transcoder/src/thumbnails.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/transcoder/src/thumbnails.go b/transcoder/src/thumbnails.go index a6256d01..e4608294 100644 --- a/transcoder/src/thumbnails.go +++ b/transcoder/src/thumbnails.go @@ -1,6 +1,8 @@ package src import ( + "crypto/sha1" + "encoding/hex" "fmt" "image" "image/color" @@ -67,11 +69,18 @@ func (t *ThumbnailsCreator) ExtractThumbnail(path string, name string) (string, } func extractThumbnail(path string, name string) (string, error) { - ret, err := GetInfo(path) + defer printExecTime("extracting thumbnails for %s", path)() + info, err := os.Stat(path) if err != nil { return "", err } - out := fmt.Sprintf("%s/%s", Settings.Metadata, ret.Sha) + h := sha1.New() + h.Write([]byte(path)) + h.Write([]byte(info.ModTime().String())) + sha := hex.EncodeToString(h.Sum(nil)) + + out := fmt.Sprintf("%s/%s", Settings.Metadata, sha) + os.MkdirAll(out, 0o755) sprite_path := fmt.Sprintf("%s/sprite.png", out) vtt_path := fmt.Sprintf("%s/sprite.vtt", out) @@ -134,8 +143,14 @@ func extractThumbnail(path string, name string) (string, error) { ) } - os.WriteFile(vtt_path, []byte(vtt), 0o644) - imaging.Save(sprite, sprite_path) + err = os.WriteFile(vtt_path, []byte(vtt), 0o644) + if err != nil { + return "", err + } + err = imaging.Save(sprite, sprite_path) + if err != nil { + return "", err + } return out, nil }