12 个版本

0.5.0 2024 年 3 月 7 日
0.4.1 2023 年 12 月 30 日
0.3.8 2023 年 10 月 3 日
0.3.4 2023 年 9 月 30 日

#danbooru 中排名 #2

MIT/Apache

37KB
886

Cargo Documentation

booru

Rust 的异步 Booru 客户端。

注意:自 2023 年 9 月以来,该项目已从 booru-rs 分支出来,但已经有很多变化。

概述

客户端目前支持

  • Gelbooru
  • Safebooru
  • Danbooru
  • Rule 34

示例

请使用 Client trait 将 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");
}

自定义 HTTP 客户端

如果您想自定义 HTTP 客户端,可以使用 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");
}

依赖项

~4–18MB
~239K SLoC