Files
MangaCircus/scraper
MaashkinoozheandClaude Opus 5.5 7b52da2f9c Official release dates from MangaUpdates; peers lower ecosystem dates (BL-0048, BL-0049)
- scraper/metadata/release-dates.js fills x-dates.release from MangaUpdates
  publisher releases. MangaUpdates also lists English back-catalog re-releases,
  so a date is kept only inside the AniList original run, when no scanlation or
  source upload is more than 4 days earlier, and when it fits the release order
  (no lower chapter dated after a higher one). Seasons that restart chapter
  numbers are skipped; dates this job wrote and no longer accepts are withdrawn.
- The scraper refreshes ongoing series nightly before its update checks, only
  while no download runs, and bumps the publish revision so the reader reconciles.
- tools/release-dates.js for a whole library (dry run default). Production dry
  run: 728 chapters dated (Kagurabachi, JJK, Chainsaw Man, One Piece from 928).
- Peer sync: chapters this library already has adopt a peer's earlier ecosystem
  date (job result ecosystemLowered); the peer listing now carries dates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 08:47:36 +02:00
..

MangaCircus scraper

The scraper uses small host adapters to create a common manifest, followed by one conservative publisher that writes the MangaCircus library atomically.

Start with AGENT_RUNBOOK.md. It contains the host-specific procedures, safety limits, and stop conditions. manifest.example.json documents the interchange format.

The historical human-readable wishlist is WISHLIST.md. Once the managed daemon has started, data/scraper/queue.json is the authoritative queue and is edited through the admin UI.

Managed service

Run MangaCircus and the scraper daemon together:

npm run start:all

Or run them as two independently supervised processes:

npm start
npm run start:scraper

The daemon binds to 127.0.0.1:8091 by default, keeps its durable queue in data/scraper/queue.json, and resumes incomplete archive checkpoints. An admin can control it from Settings → Scraper. Set SCRAPER_TOKEN on both processes when the daemon is not restricted to loopback.

Queue schema version 3 supports scoped jobs, multiple jobs for the same upstream series, one sequential worker per source, incremental chapter publication, library duplicate/version checks, and configurable nightly update discovery. See docs/scraper-service.md for the service contract and docs/local-deployment.md for the currently running Windows Scheduled Task deployment. On that machine the scheduled task owns the single supervisor; do not run npm run start:all beside it.

npm run test:scraper
node scraper/cli.js metadata-anilist "One Piece"
node scraper/cli.js discover-weebcentral "https://weebcentral.com/series/..." --limit 3 --out manifest.json
node scraper/cli.js publish manifest.json --library library --metadata-search "Series title"
node scraper/cli.js archive-weebcentral "https://weebcentral.com/series/..." --library library --metadata-search "Series title"
node scraper/cli.js status-weebcentral "https://weebcentral.com/series/..." --library library

The implementation uses only Node.js built-ins. Browser-only sources must first export observed page assets to local files; the publisher consumes those files and does not automate access-control challenges.