summaryrefslogtreecommitdiff
path: root/src/commands/download.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/download.rs')
-rw-r--r--src/commands/download.rs19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/commands/download.rs b/src/commands/download.rs
index 993294b..db0fc93 100644
--- a/src/commands/download.rs
+++ b/src/commands/download.rs
@@ -4,22 +4,31 @@ use reqwest::Client;
4 4
5use futures_util::StreamExt; 5use futures_util::StreamExt;
6 6
7use crate::{get_current_list, config::Cfg, db::userlist_get_all_downloads}; 7use crate::{List, get_current_list, config::Cfg, db::userlist_get_all_downloads, input::Input};
8 8
9pub async fn download(config: Cfg) -> Result<(), Box<dyn std::error::Error>> { 9pub async fn download(config: Cfg, input: Input) -> Result<(), Box<dyn std::error::Error>> {
10 let list = get_current_list(config.clone())?; 10 let list = get_current_list(config.clone())?;
11 11
12 let links = userlist_get_all_downloads(config.clone(), list.id)?; 12 let links = userlist_get_all_downloads(config.clone(), list.clone().id)?;
13 13
14 download_links(config, links).await?; 14 download_links(config, input, list, links).await?;
15 15
16 Ok(()) 16 Ok(())
17} 17}
18 18
19async fn download_links(config: Cfg, links: Vec<String>) -> Result<String, Box<dyn std::error::Error>> { 19async fn download_links(config: Cfg, input: Input, current_list: List, links: Vec<String>) -> Result<String, Box<dyn std::error::Error>> {
20 20
21 let dl_path = String::from(&config.downloads); 21 let dl_path = String::from(&config.downloads);
22 22
23 if input.clean {
24 let dl_path = &current_list.download_folder;
25 println!("Cleaning {}", dl_path);
26 for entry in std::fs::read_dir(dl_path)? {
27 let entry = entry?;
28 std::fs::remove_file(entry.path())?;
29 }
30 }
31
23 for link in links { 32 for link in links {
24 let filename = link.split('/').last().unwrap(); 33 let filename = link.split('/').last().unwrap();
25 let dl_path_file = format!("{}/{}", config.downloads, filename); 34 let dl_path_file = format!("{}/{}", config.downloads, filename);