mastodon API rust lib elefren, fixed and updated. and also all ASYNC! NB. most examples are now wrong.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
elefren-fork/README.md

2.2 KiB

Elefren

A Wrapper for the Mastodon API.

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

elefren = "0.12"

Usage

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

extern crate elefren;

Example

extern crate elefren;

use std::io;
use std::error::Error;

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

fn main() -> Result<(), Box<Error>> {
    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<Mastodon, Box<Error>> {
    let registration = Registration::new("https://mastodon.social")
                                    .client_name("elefren-examples")
                                    .register()?;
    let url = registration.authorize_url()?;

    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)?;

    let code = input.trim().to_string();
    let mastodon = registration.complete(code)?;

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

    Ok(mastodon)
}