Deploy Scraper / build-and-deploy (push) Canceled after 0s
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.
36 lines
982 B
Rust
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)
|
|
}
|