asepharyana e6d75edf33
Deploy Scraper / build-and-deploy (push) Canceled after 0s
fix(anime): repair genre & latest endpoints for the new otakudesu layout
The current otakudesu site changed paths and card layout, breaking two APIs:

1. genre pages: singular /genre/{slug}/page/{n}/ 301-redirects to a dead
   otakudesu.io placeholder → 0 items. Fix: plural /genres/{slug}/page/{n}/.
   Also re-target parse_genre_anime_document from the retired .venz ul li /
   .thumbz h2.jdlflm layout to the new .col-anime card layout
   (.col-anime-title a, .col-anime-eps, .col-anime-rating, .col-anime-cover img).

2. latest: /latest-anime/ was removed (301 → otakudesu.io). The homepage IS
   the latest-episodes feed (.venz ul li with .thumbz h2.jdlflm/.epz), so
   fetch_latest_anime_page now uses base_url() for page 1 and /page/N/ for
   later pages instead of the dead path.
2026-08-31 20:59:20 +07:00

Scraper API

Backend service berbasis Axum untuk scraping, image proxy/cache, dan endpoint API inti.

Stack

  • Rust + Axum
  • SeaORM (MySQL)
  • Redis (deadpool-redis)
  • Utoipa + Swagger UI

Quick Start

cargo run

Server bind ke 0.0.0.0:${PORT} dengan default port 4091.

Required Environment Variables

DATABASE_URL=mysql://asephs:hunterz@localhost:3306/sosmed
JWT_SECRET=change-me
REDIS_URL=redis://localhost:6379

Optional yang sering dipakai:

RUST_LOG=info
MINIO_ENDPOINT=
MINIO_BUCKET_NAME=
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=

Useful Endpoints

  • GET /docs - Swagger UI
  • GET /api-docs/openapi.json - OpenAPI JSON
  • GET /api/anime2/*
  • GET /api/komik/*
  • POST /api/proxy/image-cache
  • POST /api/proxy/image-cache/audit

Notes

  • Database akan dicek/dibuat saat startup jika DATABASE_URL bertipe MySQL.
  • Service ini juga menginisialisasi browser pool dan scheduler saat boot.

License

MIT

S
Description
No description provided
Readme
1.7 MiB
Languages
Rust 97.1%
Python 1.9%
Shell 0.6%
Nix 0.3%
JavaScript 0.1%