Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thegoldenpro/aghpb.rs

Anime girls holding programming books API wrapper for 🦀 Rust.
https://github.com/thegoldenpro/aghpb.rs

aghpb anime anime-girls anime-girls-holding-programming-books

Last synced: 2 months ago
JSON representation

Anime girls holding programming books API wrapper for 🦀 Rust.

Awesome Lists containing this project

README

        

# 🦀 aghpb.rs 📚
Rust API wrapper for the anime girls holding programming books [API](https://api.devgoldy.xyz/aghpb/v1/docs)

[![Crates.io](https://img.shields.io/crates/v/aghpb?style=flat)](https://crates.io/crates/aghpb)
[![docs.rs](https://img.shields.io/docsrs/aghpb?style=flat)](https://docs.rs/aghpb)


> [!Note]
>
> This is part of my [aghpb api](https://github.com/THEGOLDENPRO/aghpb_api) wrapper challenge where I attempt to write an api wrapper in every language possible. So yes expect spaghetti code as it will be my first time writing in these languages. Although I'm 100% open to improvements and corrections so feel free to contribute anything.
> **[Other languages I've done](https://github.com/THEGOLDENPRO/aghpb_api#-api-wrappers)**

## Install
```rust
cargo add aghpb
```
More install instructions at [crates.io](https://crates.io/crates/aghpb).

## Examples
Dependencies:
```toml
[dependencies]
aghpb = "1.4.1"
tokio = { version = "1.36.0", features = ["full"] }
```
This is how you may retrieve a random anime girls holding programming books:
```rust
use tokio::fs;
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box> {
let book = aghpb::random(None).await?;

println!("Name: {}", book.name);
println!("Category: {}", book.category);
println!("Date added: {}", book.date_added);

fs::write("./anime_girl.png", book.raw_bytes).await?;

Ok(())
}
```
You can also retrieve specific categories of anime girls holding programming books like so:
```rust
let book = aghpb::random(Some("rust".into())).await?;
```


This is how you may retrieve a list of available categories:
```rust
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box> {
let categories = aghpb::categories().await?;

for category in categories {
println!("{}", category);
}

Ok(())
}
```


How to search for an anime girl holding a programming book.
> [!NOTE]
> NEW in v1.4!
```rust
use std::error::Error;

use tokio::fs;

#[tokio::main]
async fn main() -> Result<(), Box> {
let books = aghpb::search("tohru".into(), None, None).await?;

let book_data = &books[0]; // I'm selecting the first book just for this example.

println!("Name: {}", book_data.name);
println!("Category: {}", book_data.category);
println!("Commit Author: {}", book_data.commit_author);
println!("Commit URL: {}", book_data.commit_url);
println!("Date Added: {}", book_data.date_added);
println!("Search ID: {}", book_data.search_id);

let book = book_data.get_book().await?;

fs::write("./anime_girl.png", book.raw_bytes).await?;

Ok(())
}
```

Made using my API at 👉 https://api.devgoldy.xyz/aghpb/v1/