0ba78222

Author: Michael Lynch <git@mtlynch.io>

Committer: Michael Lynch <mtlynch@noreply.codeberg.org>

Use UploadPath instead of ProcessableVideo (#397)

Replace uploads.ProcessableImage/ProcessableVideo with inline
validate-then-process calls in ProcessImage/ProcessVideo: those types only
ever proved validation happened before a *separate* caller processed the
file, but now validation and processing happen in one call, so nothing
outside the function observes the intermediate value. Replace the
zero-validation littlemoments.VideoUploadPath and the plain string used for
image paths with one shared, validated littlemoments.UploadPath type
(rejects empty and "/"), threading it from handlers/upload.go's
copyToTempFile through to convert.ExtractPreviewFrameFromVideo, which now
takes the path and duration directly instead of via a convert.ProcessableVideo
interface.

Reviewed-on: https://codeberg.org/mtlynch/little-moments/pulls/397

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 3s 31s 31s 34s 3s
Eval 30s 1m06s 1m09s 1m40s 32s
Build - - - - -
Suite 3s 1m37s 1m37s 1m40s 35s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s1m40s