- Rust 88.3%
- PLpgSQL 11%
- Shell 0.6%
| .forgejo/workflows | ||
| migrations | ||
| rebuild | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| .releaserc.cjs | ||
| API-DESIGN.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| DECISIONS.md | ||
| Dockerfile | ||
| openapi.json | ||
| README.md | ||
| renovate.json | ||
| rust-toolchain.toml | ||
| SCHEMA-DESIGN.md | ||
snipe-api
Tracks the Swiss national #1 on every ranked, loved and qualified osu! beatmap (all four rulesets, lazer and stable scoring) by tailing the osu! scores feed and refreshing country leaderboards with pooled supporter tokens.
Run: set DATABASE_URL and start snipe-api; the first-run wizard (/api/setup) designates the admin and stores the osu! OAuth client and everything else in app_settings (env vars named after src/app_settings.rs keys still work, DB rows win). Admins edit settings at /api/admin/settings; changes restart the process. Supporters join the token pool through /api/auth/login?join_pool=1; snipe-api auth still seeds one from the CLI, snipe-api --dump-openapi prints the spec.
Test: scripts/test.sh (needs docker; spins a throwaway Postgres, osu! is wiremock).