From 03197cd47ac595dec00ac8c047be0c66b5716a71 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Mon, 7 Oct 2024 19:41:15 +0200 Subject: feat(cli): Also add a `dowa` command This is the same as the `sedowa` command, with the difference that the `dowa` command does not include the select part. --- src/cli.rs | 2 ++ src/main.rs | 38 +++++++++++++++++++++++--------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index 0dfd531..51809c0 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -63,6 +63,8 @@ pub enum Command { /// Select, download and watch in one command. Sedowa {}, + /// Download and watch in one command. + Dowa {}, /// Work with single videos Videos { diff --git a/src/main.rs b/src/main.rs index 0961dd3..3f7e410 100644 --- a/src/main.rs +++ b/src/main.rs @@ -110,22 +110,12 @@ async fn main() -> Result<()> { Command::Sedowa {} => { select::select(&app, false, false).await?; - let max_cache_size = app.config.download.max_cache_size; - info!("Max cache size: '{}'", max_cache_size); - let arc_app = Arc::new(app); - - let arc_app_clone = Arc::clone(&arc_app); - let download: JoinHandle> = tokio::spawn(async move { - download::Downloader::new() - .consume(arc_app_clone, max_cache_size.as_u64()) - .await?; - - Ok(()) - }); - - watch::watch(&arc_app).await?; - download.await??; + dowa(arc_app).await?; + } + Command::Dowa {} => { + let arc_app = Arc::new(app); + dowa(arc_app).await?; } Command::Videos { cmd } => match cmd { VideosCommand::List { @@ -232,3 +222,21 @@ async fn main() -> Result<()> { Ok(()) } + +async fn dowa(arc_app: Arc) -> Result<()> { + let max_cache_size = arc_app.config.download.max_cache_size; + info!("Max cache size: '{}'", max_cache_size); + + let arc_app_clone = Arc::clone(&arc_app); + let download: JoinHandle> = tokio::spawn(async move { + download::Downloader::new() + .consume(arc_app_clone, max_cache_size.as_u64()) + .await?; + + Ok(()) + }); + + watch::watch(&arc_app).await?; + download.await??; + Ok(()) +} -- cgit 1.4.1