forked from MightyPork/elefren-fork
49eee2313fe2a64917ec39976eae5e2db153e4df
Meta fields optional
using `deserialize_with` causes an error if the `"meta"` key is missing completely, which is not very useful. This isn't ideal, but it will make it so all the various states that "meta" can be in will deser correctly
Elefren. A API Wrapper for the Mastodon API.
Documentation
A wrapper around the API for Mastodon
extern crate elefren;
extern crate toml;
use std::io;
use std::fs::File;
use std::io::prelude::*;
use elefren::{Data, Mastodon, Registration};
use elefren::apps::{AppBuilder, Scopes};
fn main() {
let mastodon = match File::open("mastodon-data.toml") {
Ok(mut file) => {
let mut config = String::new();
file.read_to_string(&mut config).unwrap();
let data: Data = toml::from_str(&config).unwrap();
Mastodon::from(data)
},
Err(_) => register(),
};
let you = mastodon.verify_credentials().unwrap();
println!("{:#?}", you);
}
fn register() -> Mastodon {
let app = AppBuilder {
client_name: "elefren-examples",
redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
scopes: Scopes::Read,
website: Some("https://github.com/pwoolcoc/elefren"),
};
let mut registration = Registration::new("https://mastodon.social");
registration.register(app).unwrap();;
let url = registration.authorise().unwrap();
println!("Click this link to authorize on Mastodon: {}", url);
println!("Paste the returned authorization code: ");
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let code = input.trim();
let mastodon = registration.create_access_token(code.to_string()).unwrap();
// Save app data for using on the next run.
let toml = toml::to_string(&*mastodon).unwrap();
let mut file = File::create("mastodon-data.toml").unwrap();
file.write_all(toml.as_bytes()).unwrap();
mastodon
}
Description
mastodon API rust lib elefren, fixed and updated. and also all ASYNC! NB. most examples are now wrong.
1.2 MiB
Languages
Rust
100%