diff --git a/Cargo.toml b/Cargo.toml index e262849..f8a4492 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "download-organiser" -version = "0.1.0" +version = "0.1.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/main.rs b/src/main.rs index 7b4acb6..94ed182 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,10 @@ fn home_dir() -> PathBuf { dirs::home_dir().expect("Couldn't find home dir") } +fn documents_dir() -> PathBuf { + dirs::document_dir().expect("Couldn't find downloads dir") +} + fn downloads_dir() -> PathBuf { dirs::download_dir().expect("Couldn't find downloads dir") } @@ -102,6 +106,14 @@ fn handle_mp3(file: DirEntry) { } } +fn handle_pdf(file: DirEntry) { + let mut dir = documents_dir(); + + dir.push("PDFs"); + + move_file(file.path(), dir); +} + /// if filename contains something like `(1971)` or `[2003]` or `.1985.` it's a movie fn is_movie(file: &DirEntry) -> bool { lazy_static! { @@ -142,6 +154,8 @@ fn handle_video(file: DirEntry) { fn handle_dir(path: PathBuf) { let dir = std::fs::read_dir(path).expect("Couldn't read dir"); + // todo if dir is empty, delete + for inode in dir { let inode = inode.expect("Couldn't read inode"); @@ -157,6 +171,7 @@ fn handle_dir(path: PathBuf) { "jpeg" => { handle_image(inode) } "png" => { handle_image(inode) } "mp3" => { handle_mp3( inode) } + "pdf" => { handle_pdf( inode) } "avi" => { handle_video(inode) } "m4v" => { handle_video(inode) } "mkv" => { handle_video(inode) }