// zotapi - Rust wrapper for Sot API as implemented by Hubzilla // Copyright (C) 2018 Harald Eilertsen // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . extern crate zotapi; extern crate dotenv; extern crate serde_json; use dotenv::dotenv; use serde_json::Value; use std::env; fn main() { dotenv().ok(); let site = env::var("SITE").expect("SITE variable expected"); let user = env::var("USER").expect("USER variable expected"); let password = env::var("PASSWORD").expect("PASSWORD variable expected"); let client = zotapi::client(&site, &user, &password); match client.channel_stream() { Ok(payload) => { println!("Raw payload: {}", payload); match serde_json::from_str(&payload) { Ok(Value::Array(v)) => { for item in v.into_iter() { println!("{} {} {}", item["title"], item["type"], item["author"]["name"]); } }, Ok(_) => { println!("Wrong type returned, expected an array.") }, Err(e) => { println!("Error: {}", e); } } }, Err(e) => { println!("Error getting channel stream: {:?}", e); } } }