aboutsummaryrefslogtreecommitdiffstats
path: root/examples/zot.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/zot.rs')
-rw-r--r--examples/zot.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/zot.rs b/examples/zot.rs
index 5fa4f09..3ad9bf0 100644
--- a/examples/zot.rs
+++ b/examples/zot.rs
@@ -28,6 +28,7 @@ use std::env;
mod abook;
mod channel_stream;
mod network_stream;
+mod xchan;
fn main() {
dotenv().ok();
@@ -54,6 +55,24 @@ fn main() {
.arg(Arg::with_name("raw")
.long("raw")
.help("Display raw json payload")))
+ .subcommand(
+ SubCommand::with_name("xchan")
+ .about("Fetch xchan info")
+ .arg(Arg::with_name("raw")
+ .long("raw")
+ .help("Display raw json payload"))
+ .arg(Arg::with_name("addr")
+ .long("addr")
+ .help("ID is given as a webbie address (default)"))
+ .arg(Arg::with_name("hash")
+ .long("hash")
+ .help("ID is given as a xchan hash"))
+ .arg(Arg::with_name("guid")
+ .long("guid")
+ .help("ID is given as a GUID"))
+ .arg(Arg::with_name("ID")
+ .help("id (email, hash or GUID) of xchan to fetch")
+ .required(true)))
.get_matches();
let client = zotapi::client(&site, &user, &password);
@@ -71,6 +90,20 @@ fn main() {
let raw = m.is_present("raw");
abook::fetch(&client, raw);
},
+ ("xchan", Some(m)) => {
+ let raw = m.is_present("raw");
+ let t = if m.is_present("guid") {
+ xchan::Type::GUID
+ }
+ else if m.is_present("hash") {
+ xchan::Type::Hash
+ }
+ else {
+ xchan::Type::Addr
+ };
+
+ xchan::fetch(&client, raw, t, m.value_of("ID").unwrap());
+ },
_ => {
println!("{}", matches.usage());
},