booru

Crates.iobooru
lib.rsbooru
version0.6.0
sourcesrc
created_at2023-09-29 16:49:13.466969
updated_at2024-08-31 02:55:01.596728
descriptionAn async Booru client for Rust
homepage
repositoryhttps://github.com/cijiugechu/booru
max_upload_size
id987601
size97,348
阿良仔 (cijiugechu)

documentation

https://docs.rs/booru

README

Cargo Documentation

booru

An async Booru client for Rust.

Note: This project has been forked from booru-rs since September of 2023, but a lot has changed.

Overview

The client currently supports:

  • Gelbooru
  • Safebooru
  • Danbooru
  • Rule 34

Example

Remember to bring the Client trait into scope with use booru::client::Client;.

use booru::{
        client::{gelbooru::GelbooruClient, generic::*, Client},
        model::gelbooru::GelbooruRating,
    };

#[tokio::main]
async fn main() {
    let posts = GelbooruClient::builder()
        .tag("kafuu_chino")
        .tag("2girls")
        .rating(GelbooruRating::General)
        .sort(Sort::Score)
        .limit(5)
        .random()
        .blacklist_tag(GelbooruRating::Explicit)
        .build()
        .get()
        .await
        .expect("There was an error retrieving posts from the API");
}

Customizing http client

If you want to customize http client, you can use builder_with_http_client:

use booru::{
        client::{gelbooru::GelbooruClient, generic::*, Client},
        model::gelbooru::GelbooruRating,
    };
use reqwest;
use std::time::Duration;

#[tokio::main]
async fn main() {
    let http_client_builder = reqwest::ClientBuilder::new()
                            .timeout(Duration::from_secs(10));

    let posts = GelbooruClient::builder_with_http_client(http_client_builder)
        .tag("kafuu_chino")
        .limit(5)
        .build()
        .get()
        .await
        .expect("There was an error retrieving posts from the API");
}
Commit count: 83

cargo fmt