Elefren. A API Wrapper for the Mastodon API.

Build Status crates.io Docs MIT/APACHE-2.0

Documentation

A wrapper around the API for Mastodon

Installation

To add elefren to your project, add the following to the [dependencies] section of your Cargo.toml

toml elefren = { git = "https://github.com/pwoolcoc/elefren" }

Usage

To use this crate in your project, add this to your crate root (lib.rs, main.rs, etc):

rust extern crate elefren;

Example

```rust extern crate elefren;

use std::io; use std::fs::File; use std::io::prelude::*;

use elefren::{Data, Mastodon, Registration}; use elefren::apps::{AppBuilder, Scopes}; use elefren::data::toml; // requires features = ["toml"]

fn main() { let mastodon = match toml::fromfile("mastodon-data.toml") { Ok(data) => { Mastodon::from(data) }, Err() => register(), };

let you = mastodon.verify_credentials().unwrap();

println!("{:#?}", you);

}

fn register() -> Mastodon { let mut app = App::builder(); app.client_name("elefren-examples");

let registration = Registration::new("https://mastodon.social");
                                    .register(app).unwrap();
let url = registration.authorize_url().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().to_string();
let mastodon = registration.complete(code).unwrap();

// Save app data for using on the next run.
toml::to_file(&*mastodon, "mastodon-data.toml").unwrap();

mastodon

} ```