From 6818938cb0ed7a9b6d640784b2d4946a69b25066 Mon Sep 17 00:00:00 2001 From: cottongin Date: Tue, 22 Sep 2026 14:43:24 -0400 Subject: [PATCH] feat: add optional output_dir param to extract_thumbnails Co-authored-by: Cursor --- src-tauri/src/commands/media_analysis.rs | 10 +++++++--- src/lib/bindings/mediaAnalysis.ts | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/commands/media_analysis.rs b/src-tauri/src/commands/media_analysis.rs index e4dc8a5..f3f569f 100644 --- a/src-tauri/src/commands/media_analysis.rs +++ b/src-tauri/src/commands/media_analysis.rs @@ -51,15 +51,19 @@ pub async fn extract_waveform_tiers( pub async fn extract_thumbnails( file_path: String, duration: f64, + output_dir: Option, ) -> Result, String> { eprintln!( "[video-clipper:thumbnails] starting for '{}' (duration={})", file_path, duration ); let result = tokio::task::spawn_blocking(move || { - let temp_dir = std::env::temp_dir() - .join("video-clipper-thumbs") - .join(uuid::Uuid::new_v4().to_string()); + let temp_dir = match output_dir { + Some(dir) => std::path::PathBuf::from(dir), + None => std::env::temp_dir() + .join("video-clipper-thumbs") + .join(uuid::Uuid::new_v4().to_string()), + }; let temp_dir_str = temp_dir.to_string_lossy().to_string(); thumbnail_extractor::extract_thumbnails(&file_path, duration, &temp_dir_str) }) diff --git a/src/lib/bindings/mediaAnalysis.ts b/src/lib/bindings/mediaAnalysis.ts index 223a69a..bb225dc 100644 --- a/src/lib/bindings/mediaAnalysis.ts +++ b/src/lib/bindings/mediaAnalysis.ts @@ -41,11 +41,13 @@ export async function extractWaveformTiers( export async function extractThumbnails( filePath: string, - duration: number + duration: number, + outputDir?: string ): Promise { return invoke('extract_thumbnails', { filePath, duration, + outputDir: outputDir ?? null, }); }