From 9c55edeb469152718ba80f2d480158981e1a38a6 Mon Sep 17 00:00:00 2001 From: Subhamoy Biswas Date: Fri, 7 Feb 2025 21:21:32 +0530 Subject: [PATCH] (feat): added caption support with backwards compatibility --- src-tauri/src/main.rs | 9 +++++---- src/App.tsx | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 8325298..f0a7ce5 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -255,10 +255,11 @@ fn install_program(icommand: String) { } #[tauri::command] -fn download_stream(url: String, stream: String) { +fn download_stream(url: String, stream: String, caption: Option) { + let caption = caption.unwrap_or("none".to_string()); #[cfg(target_os = "windows")] { - let command = format!("pytubepp \"{}\" -s {}", &url, &stream); + let command = format!("pytubepp \"{}\" -s {} -c {}", &url, &stream, &caption); Command::new("cmd") .args(["/k", command.as_str()]) .spawn() @@ -267,7 +268,7 @@ fn download_stream(url: String, stream: String) { #[cfg(target_os = "linux")] { - let command = format!("pytubepp \"{}\" -s {}", &url, &stream); + let command = format!("pytubepp \"{}\" -s {} -c {}", &url, &stream, &caption); Command::new("gnome-terminal") .args(["--", "bash", "-c", command.as_str()]) .spawn() @@ -276,7 +277,7 @@ fn download_stream(url: String, stream: String) { #[cfg(target_os = "macos")] { - let command = format!("pytubepp \"{}\" -s {}", &url, &stream); + let command = format!("pytubepp \"{}\" -s {} -c {}", &url, &stream, &caption); let escaped_command = command.replace("\"", "\\\""); let applescript = format!( diff --git a/src/App.tsx b/src/App.tsx index 2e05947..2b67309 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -26,7 +26,7 @@ function App({ children }: { children: React.ReactNode }) { } else if(event.payload.command === 'download-stream') { const startDownload = async () => { try { - await invoke('download_stream', { url: event.payload.url, stream: event.payload.argument }); + await invoke('download_stream', { url: event.payload.url, stream: event.payload.argument.split(' ')[0], caption: event.payload.argument.split(' ')[1] }); await invoke('receive_frontend_response', { response: 'Download started' }); } catch (error) { console.error(error);