#client #booru #danbooru #async #client-builder #rating #safebooru

rusty-booru

一个用于 Rust 的异步 Booru 客户端

11 个版本

0.2.1 2024年5月25日
0.2.0 2024年1月19日
0.1.9 2024年1月19日

#5 in #client-builder

每月 45 次下载

MIT/Apache

34KB
888

ci-badge crates.io version

booru-rs

一个用于 Rust 的异步 Booru 客户端

概述

客户端目前支持

  • Gelbooru
  • Safebooru
  • Danbooru
  • Konachan
  • R34
  • 3DBooru
  • 更多... ?

示例

请使用 Client 特性通过 use booru_rs::client::Client; 带入作用域

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

lib.rs:

使用方法

use rusty_booru::{danbooru::{client::DanbooruClient, DanbooruRating}};
use rusty_booru::shared::{client::{WithClientBuilder, DispatcherTrait}, Sort};

#[tokio::main]
async fn main() {
    let posts = DanbooruClient::builder()
        .default_url("https://testbooru.donmai.us")
        .query(|q| {
            q.rating(DanbooruRating::General)
                .sort(Sort::Score)
                .limit(10)
        })
        .get()
        .await
        .expect("There was an error. (•-•)");

    match posts.first() {
        Some(post) => println!("{:?}", post),
        None => panic!("Well... \"No posts found?\""),
    }
}

依赖

~7–19MB
~287K SLoC