Elefren

A Wrapper for the Mastodon API.

Build Status Build Status Coverage 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 = "0.22"

Example

In your Cargo.toml, make sure you enable the toml feature:

toml [dependencies] elefren = { version = "0.22", features = ["toml"] }

```rust,no_run // src/main.rs extern crate elefren;

use std::error::Error;

use elefren::prelude::*; use elefren::helpers::toml; // requires features = ["toml"] use elefren::helpers::cli;

fn main() -> Result<(), Box> { let mastodon = if let Ok(data) = toml::from_file("mastodon-data.toml") { Mastodon::from(data) } else { register()? };

let you = mastodon.verify_credentials()?;

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

Ok(())

}

fn register() -> Result> { let registration = Registration::new("https://mastodon.social") .client_name("elefren-examples") .build()?; let mastodon = cli::authenticate(registration)?;

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

Ok(mastodon)

} ```

It also supports the Streaming API:

```no_run use elefren::prelude::*; use elefren::entities::event::Event;

use std::error::Error;

fn main() -> Result<(), Box> { let data = Data { base: "".into(), clientid: "".into(), clientsecret: "".into(), redirect: "".into(), token: "".into(), };

let client = Mastodon::from(data);

for event in client.streaming_user()? {
    match event {
        Event::Update(ref status) => { /* .. */ },
        Event::Notification(ref notification) => { /* .. */ },
        Event::Delete(ref id) => { /* .. */ },
        Event::FiltersChanged => { /* .. */ },
    }
}
Ok(())

} ```