https://github.com/towinok/anime-grubber
Convenient library for extracting images of cute (or not so cute) characters from websites.
https://github.com/towinok/anime-grubber
anime parser waifu-pics
Last synced: 6 months ago
JSON representation
Convenient library for extracting images of cute (or not so cute) characters from websites.
- Host: GitHub
- URL: https://github.com/towinok/anime-grubber
- Owner: TOwInOK
- License: mit
- Created: 2024-10-21T09:07:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-27T18:18:44.000Z (over 1 year ago)
- Last Synced: 2025-10-20T01:28:16.881Z (8 months ago)
- Topics: anime, parser, waifu-pics
- Language: Rust
- Homepage:
- Size: 44.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# anime-grubber
[](https://crates.io/crates/anime-grubber)
[](https://docs.rs/anime-grubber)
[](LICENSE)
удобная библиотека для извлечения изображений милых (или не совсем) персонажей с веб-сайтов.
## Возможности
- Извлечение изображений и GIF с аниме-сайтов и других ресурсов.
- Поддержка работы с различными категориями медиа, включая SFW (Safe for Work) и NSFW (Not Safe for Work).
- Лёгкая интеграция с асинхронными приложениями на базе **Tokio**.
- Встроенные агенты для работы с популярными API (например, Waifu.pics).
- Логирование событий для отладки и отслеживания процесса загрузки медиа.
## Агенты
- [Vaifu.pics](https://waifu.pics/docs)
## Установка
Пропишите в консоль:
```sh
cargo add anime-grubber
```
или
Добавьте **anime-grubber** в ваш `Cargo.toml`:
```toml
[dependencies]
anime-grubber = "0"
```
## Использование
```rust
use anime_grubber::agents::waifu_pics::{Waifu, Categories, SFW};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let instance = Waifu::new(Categories::SFW(SFW::Dance));
let image = instance.get().await?;
println!("Fetched image URL: {}", image);
Ok(())
}
```
## Примеры использования
### Извлечение одного изображения
Этот пример показывает, как можно получить одно изображение из категории **SFW::Dance**:
```rust
use anime_grubber::agents::waifu_pics::{Waifu, Categories, SFW};
use tracing::info;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let instance = Waifu::new(Categories::SFW(SFW::Dance));
let image = instance.get().await?;
info!("Fetched image URL: {}", image);
Ok(())
}
```
### Извлечение нескольких изображений
Получение сразу нескольких изображений из той же категории:
```rust
use anime_grubber::agents::waifu_pics::{Waifu, Categories, SFW};
use tracing::info;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let instance = Waifu::new(Categories::SFW(SFW::Dance));
let images = instance.get_many().await?;
assert_eq!(images.len(), 30);
info!("{:#?}", images);
Ok(())
}
```
## Логирование
Для удобства отладки используется библиотека **tracing**. Пример настройки глобального логгера можно увидеть в тестах.
```rust
use tracing_subscriber::FmtSubscriber;
tracing::subscriber::set_global_default(
FmtSubscriber::builder()
.with_max_level(tracing::Level::DEBUG) // or you can use INFO .with_max_level(tracing::Level::INFO)
.pretty()
.without_time()
.finish(),
).expect("Failed to set global default subscriber");
```
## Тестирование
Библиотека содержит примеры тестов, которые можно найти в модуле [Tests](./tests/):
## Лицензия
Этот проект распространяется под лицензией **MIT**. Подробности см. в файле [LICENSE](./LICENSE).