An async Booru client for Rust.
Note: This project has been forked from booru-rs since September of 2023, but a lot has changed.
The client currently supports:
- Gelbooru
- Safebooru
- Danbooru
- Konachan
- Rule 34
Remember to bring the Client
trait into scope with use booru::client::Client;
.
use booru::{
client::{gelbooru::GelbooruClient, generic::*, Client},
model::gelbooru::GelbooruRating,
};
let posts = GelbooruClient::builder()
.tag("kafuu_chino")
.tag("2girls")
.rating(GelbooruRating::General)
.sort(GelbooruSort::Score)
.limit(5)
.random(true)
.blacklist_tag(GelbooruRating::Explicit)
.build()
.get()
.await
.expect("There was an error retrieving posts from the API");
// If you want to customize http client, you can use `builder_with_http_client`:
let http_client_builder = reqwest::ClientBuilder::new()
.proxy(reqwest::Proxy::http("http://127.0.0.1:7890").unwrap());
let posts = GelbooruClient::builder_with_http_client(http_client_builder)
.tag("kafuu_chino")
.tag("2girls")
.rating(GelbooruRating::General)
.sort(GelbooruSort::Score)
.limit(5)
.random(true)
.blacklist_tag(GelbooruRating::Explicit)
.build()
.get()
.await
.expect("There was an error retrieving posts from the API");