A wrapper around the API for Mastodon
To add elefren
to your project, add the following to the
[dependencies]
section of your Cargo.toml
toml
elefren = "0.19"
To use this crate in your project, add this to your crate root (lib.rs, main.rs, etc):
rust,ignore
extern crate elefren;
In your Cargo.toml
, make sure you enable the toml
feature:
toml
[dependencies]
elefren = { version = "0.19", 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 you = mastodon.verify_credentials()?;
println!("{:#?}", you);
Ok(())
}
fn register() -> Result
// 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 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(())
} ```
This library was forked from Mammut around elefren commit 6c37ecb1e1ec3aa888711c1fad1a76f3bdf826b3. I started this fork as a place to experiment with some of the changes I wanted to make to Mammut, and ended up diverging enough that I didn't really want to spend the time trying to get everything merged back.
Some of the major differences between this and mammut are:
I have a couple big features on the horizon, the first being a comprehensive test suite that I'm currently working on, which should help us test for inconsistencies and issues between the different versions of the Mastodon API that elefren aims to support. After that, I will be trying to get support for the Mastodon Streaming API merged in, though that might need to wait until rust's async story is a little more stable.
For a complete list of changes, see the Changelog.