diff --git a/Cargo.lock b/Cargo.lock index 8f44875..ca07aa5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1005,6 +1005,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kdl" +version = "6.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661358400b02cbbf1fbd05f0a483335490e8a6bd1867620f2eeb78f304a22f" +dependencies = [ + "miette", + "num", + "thiserror", + "winnow", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -1079,6 +1091,28 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "miette" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" +dependencies = [ + "cfg-if", + "miette-derive", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.94", +] + [[package]] name = "mime" version = "0.3.17" @@ -1115,6 +1149,70 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1876,6 +1974,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "universal-hash" version = "0.4.0" @@ -1890,8 +1994,10 @@ dependencies = [ name = "untagged-tagger" version = "0.1.0" dependencies = [ + "kdl", "tokio", "wallabag-api", + "xdg", ] [[package]] @@ -2158,6 +2264,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.6.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +dependencies = [ + "memchr", +] + [[package]] name = "write16" version = "1.0.0" @@ -2170,6 +2285,12 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "xdg" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fb433233f2df9344722454bc7e96465c9d03bff9d77c248f9e7523fe79585b5" + [[package]] name = "yoke" version = "0.7.5" diff --git a/Cargo.toml b/Cargo.toml index f1d8f6e..5815e39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,5 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] +kdl = "6.3.4" tokio = { version = "1.42.0", features = ["full"] } wallabag-api = "0.4.3" +xdg = "3.0.0" diff --git a/src/main.rs b/src/main.rs index f1d0683..005ff1c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,22 @@ +extern crate xdg; + +use kdl::{KdlDocument, KdlNode}; use std::env; use wallabag_api::types::Config; use wallabag_api::Client; - +/* +fn init() -> Result> { + debug!("[init] Entering function..."); + let xdg_dirs = xdg::BaseDirectories::with_prefix("untagged-tagger").unwrap(); + let config_path = xdg_dirs.find_config_file("config.kdl").unwrap(); + let config_file_contents = fs::read_to_string(config_path).unwrap(); + let config: KdlDocument = config_file_contents.parse().unwrap(); + debug!("[init] config: {:?}", config); + return Ok(config); +} +*/ fn get_client() -> Client { + // TODO: There is config in the .config folder you can use. let config = Config { client_id: String::from("7_iwawqc3fc3k0k04s8cwwkkk8sgogkcw40swkgs4ocs8sk8wgo"), client_secret: env::var("WALLABAG_CLIENT_SECRET").expect("not set"),