diff --git a/Cargo.lock b/Cargo.lock index 81f7d15..ba78620 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,25 +1,5 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi 0.3.8", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi 0.3.8", -] - [[package]] name = "autocfg" version = "1.0.0" @@ -62,21 +42,6 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -[[package]] -name = "clap" -version = "2.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim", - "textwrap", - "unicode-width", - "vec_map", -] - [[package]] name = "core-foundation" version = "0.7.0" @@ -334,7 +299,6 @@ checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" name = "jfo" version = "0.1.0" dependencies = [ - "clap", "reqwest", "serde", "serde_derive", @@ -763,12 +727,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05720e22615919e4734f6a99ceae50d00226c3c5aca406e102ebc33298214e0a" -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - [[package]] name = "syn" version = "1.0.17" @@ -794,15 +752,6 @@ dependencies = [ "winapi 0.3.8", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - [[package]] name = "time" version = "0.1.43" @@ -903,12 +852,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "unicode-width" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" - [[package]] name = "unicode-xid" version = "0.2.0" @@ -932,12 +875,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" -[[package]] -name = "vec_map" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" - [[package]] name = "version_check" version = "0.9.1" diff --git a/Cargo.toml b/Cargo.toml index b067bf7..d77e4d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,6 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -clap = "2.33" reqwest = { version = "0.10", features = ["blocking", "json"] } serde = "*" serde_derive = "*" diff --git a/src/main.rs b/src/main.rs index 4ce01ac..077f237 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,12 +18,6 @@ use std::collections::HashMap; -use clap::crate_authors; -use clap::crate_description; -use clap::crate_name; -use clap::crate_version; -use clap::App; -use clap::Arg; use reqwest::blocking; use serde_derive::Deserialize; @@ -52,42 +46,26 @@ struct NoteTag { } fn main() { - let matches = App::new(crate_name!()) - .version(crate_version!()) - .author(crate_authors!()) - .about(crate_description!()) - .arg( - Arg::with_name("inbox") - .long("inbox") - .short("i") - .takes_value(true) - .required(true) - .help("Inbox folder name"), - ) - .arg( - Arg::with_name("port") - .long("port") - .short("p") - .takes_value(true) - .required(true) - .default_value("41184") - .help("Joplin Web Clipper port"), - ) - .arg( - Arg::with_name("token") - .long("token") - .short("t") - .takes_value(true) - .required(true) - .help("Joplin Web Clipper access token"), - ) - .get_matches(); - - let inbox_name = matches.value_of("inbox").unwrap(); - let port = matches.value_of("port").unwrap(); - let token = matches.value_of("token").unwrap(); - - let folder_list = dbg!(folders(&url(port, token, &"folders"))); + match ( + std::env::args().nth(1), + std::env::args().nth(2), + std::env::args().nth(3), + ) { + (Some(folder), Some(token), Some(port)) => process(folder, token, port), + (Some(folder), Some(token), None) => process(folder, token, "41184".to_string()), + (_, _, _) => usage(), + } +} + +fn usage() { + println!("Usage: jfo [port]\n"); + println!(": Base notebook name where the posts will be checked;"); + println!(": Token provided by the webclipper to access the notes;"); + println!("[port]: Web clipper port, defaults to 41184"); +} + +fn process(inbox_name: String, token: String, port: String) { + let folder_list = dbg!(folders(&url(&port, &token, &"folders"))); let inbox = dbg!(folder_list .into_iter() .filter(|folder| folder.title == inbox_name) @@ -103,10 +81,10 @@ fn main() { } dbg!(&children); - get_notes(&dbg!(folder_url(port, token, &inbox.id))) + get_notes(&dbg!(folder_url(&port, &token, &inbox.id))) .iter() .filter(|note| { - let tag_url = dbg!(note_tags_url(port, token, ¬e.id)); + let tag_url = dbg!(note_tags_url(&port, &token, ¬e.id)); let tags = get_note_tags(&tag_url); tags.len() > 0 }) @@ -116,12 +94,12 @@ fn main() { let new_folder_id = dbg!(if children.contains_key(author) { children.get(author).unwrap().into() } else { - let new_folder_url = url(port, token, &"folders"); + let new_folder_url = url(&port, &token, &"folders"); let result = create_folder(&new_folder_url, author, &inbox_id); result.id }); - let url = note_url(port, token, ¬e.id); + let url = note_url(&port, &token, ¬e.id); move_note_to_folder(&url, ¬e.id, &new_folder_id, &id); }); }