Crate weeb_api [] [src]

weeb-api.rs

An unofficial Rust library acting as a wrapper around the Weeb.sh API, offering implementations for both asynchronous hyper(v0.11) and synchronous reqwest(0.8.0).

note: This library requires the use of a Weeb.sh token.

Compile features

  • hyper-support: Compiles with hyper support
  • reqwest-support: Compiles with reqwest support (*default)

Installation

Add the following to your Cargo.toml file.

[dependencies]
weeb_api = "0.1"

To enable both hyper and reqwest support:

[dependencies.weeb_api]
version = "0.1"
features = ["hyper-support", "reqwest support"]

To enable hyper but not reqwest support:

[dependencies.weeb_api]
version = "0.1"
default-features = false
features = ["hyper-support"]

Examples

Using reqwest, search for a random image using the token and type provided by user input:

extern crate weeb_api;
extern crate reqwest;

fn main() {
    use weeb_api::{ImageParams, WeebApiReqwestRequester};
    use reqwest::Client;
    use std::io::{self, Write};

    // Create the reqwest Client.
    let client = Client::new();

    // Read the token from the users input.
    let token = ask("Input your API token:");
    let token_trimmed = token.trim();

    if token_trimmed.is_empty() {
        println!("No token give. Shutting down.");

        return;
    }

    // Get a type to get a random image for from the users input.
    let input = ask("Input a type to get a random image URL for:");
    let input_trimmed = input.trim();

    if input_trimmed.is_empty() {
        println!("No type given. Shutting down.");

        return;
    }

    let response = client.get_image_random(token_trimmed, params)
    let params = ImageParams::kind(input_trimmed);
            .expect("Error getting random image");

    println!("Response URL: {}", response.url);
}

fn ask(question: &str) -> String {
    print!("{}\n>", question);
    let _ = io::stdout().flush();

    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Error processing input");

    input
}

For more examples, refer to the examples folder.

License

ISC. View the full license here.

Reexports

pub use bridge::reqwest::WeebApiRequester as WeebApiReqwestRequester;

Modules

bridge

Bridging support between the library and various HTTP clients.

constants

A set of constants used for the various requests in the library.

model

A set of models used for deserializing the responses from the API.

utils

Provides a helper for creating a Authorization string.

Structs

ImageParams

A struct containing the image parameters which are used for the random image search of the relevant client implementation.

UploadParams

A struct used for uploading images to the Api.

Enums

Error

An error type to compose a singular error enum between various dependencies' errors.

Type Definitions

Result

A result type to compose a successful value and the library's Error type.