From ddde9204c72dd867f920f07f6483be03dda7cf68 Mon Sep 17 00:00:00 2001 From: fxqnlr Date: Mon, 28 Nov 2022 22:55:14 +0100 Subject: basically update impl; added "good" download; auto dl on new mod; db to 0.4; etc --- src/commands/download.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/commands/download.rs') diff --git a/src/commands/download.rs b/src/commands/download.rs index 13ba0e1..b0efdc2 100644 --- a/src/commands/download.rs +++ b/src/commands/download.rs @@ -1,3 +1,4 @@ +use crate::{modrinth::Version, files::download_file}; #[allow(unused_imports)] use crate::{List, get_current_list, config::Cfg, db::userlist_get_all_downloads, input::Input}; @@ -32,3 +33,19 @@ async fn download_links(_config: Cfg, _input: Input, _current_list: List, _links Ok(String::new()) } + +pub async fn download_versions(current_list: List, versions: Vec) -> Result> { + + let dl_path = String::from(¤t_list.download_folder); + + for ver in versions { + let primary_file = ver.files.into_iter().find(|file| file.primary).unwrap(); + let mut splitname: Vec<&str> = primary_file.filename.split('.').collect(); + let extension = splitname.pop().ok_or("NO_FILE_EXTENSION")?; + let filename = format!("{}.mr{}.{}", splitname.join("."), ver.id, extension); + download_file(primary_file.url, current_list.clone().download_folder, filename).await?; + } + + Ok(dl_path) +} + -- cgit v1.2.3