Version 0.10.0-rc1

- Added the ability to handle paged entities like favourites and such.
  (Only favourites in prerelease)
- Added optional `source` and `moved` fields to `Account`.
- Added `Source` struct to match with the `Account.source` field.
- Added `CredientialsBuilder` struct for updating profile using
  `verify_credientials`.
- Attachment now handles being sent an empty object, which is converted
  to `None`.
- Added ombed data fields to `Card`.
- Added `version` and `urls` fields to `Instance`.
- Added `id`, `muting_notifications`, and `domain_blocking` to `Relationship`.
- Added `emojis`, `language`, and `pinned` fields to `Status`
- Added `Emoji` struct.
- Added `List` and `Mention` structs(matching routes not added yet).
- Added example that prints your profile.
This commit is contained in:
Aaron Power
2018-02-12 00:09:23 +00:00
parent ab1e5f86f0
commit 4984dfaacf
15 changed files with 367 additions and 25 deletions
+52
View File
@@ -0,0 +1,52 @@
extern crate mammut;
extern crate toml;
use mammut::{Data, Mastodon, Registration};
use mammut::apps::{AppBuilder, Scopes};
use std::io;
use std::fs::File;
use std::io::prelude::*;
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(data)
},
Err(_) => register(),
};
let you = mastodon.verify_credentials().unwrap();
println!("{:#?}", you);
}
fn register() -> Mastodon {
let app = AppBuilder {
client_name: "mammut-examples",
redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
scopes: Scopes::Read,
website: Some("https://github.com/Aaronepower/mammut"),
};
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
}