Files
scraper/src/application/weebs.rs
T
asepharyana 091a68bd55
Deploy Scraper / build-and-deploy (push) Canceled after 0s
feat(weebs): add anime/manga info, whatanime, waifu endpoints
Ported from Shirokami-API scraper/weebs/*.js:
- /weebs/anime-info (jikan.moe anime search)
- /weebs/manga-info (jikan.moe manga search)
- /weebs/whatanime (trace.moe reverse image search)
- /weebs/sfw-waifu + /weebs/nsfw-waifu (waifu.pics)

Tested: anime-info (Naruto real data) + whatanime (real match). manga-info
+ waifu currently report upstream 504/DNS-down (jikan manga endpoint &
waifu.pics unreachable from VPS right now) - proxy logic verified via the
working anime/whatanime siblings.
2026-09-01 19:35:32 +07:00

36 lines
982 B
Rust

//! Application use-cases for weebs (anime/manga info, waifu, whatanime).
use crate::domain::error::ScrapingError;
use crate::infrastructure::repository::weebs as Repo;
use serde_json::Value;
pub async fn anime_info(query: &str) -> Result<Value, ScrapingError> {
Repo::fetch_anime_info(query)
.await
.map_err(ScrapingError::Http)
}
pub async fn manga_info(query: &str) -> Result<Value, ScrapingError> {
Repo::fetch_manga_info(query)
.await
.map_err(ScrapingError::Http)
}
pub async fn whatanime(url: &str) -> Result<Value, ScrapingError> {
Repo::fetch_whatanime(url)
.await
.map_err(ScrapingError::Http)
}
pub async fn sfw_waifu(tag: &str) -> Result<Value, ScrapingError> {
Repo::fetch_sfw_waifu(tag)
.await
.map_err(ScrapingError::Http)
}
pub async fn nsfw_waifu(tag: &str) -> Result<Value, ScrapingError> {
Repo::fetch_nsfw_waifu(tag)
.await
.map_err(ScrapingError::Http)
}