https://github.com/lovethebomb/quake-champions-api
🚀Unofficial Quake Champions API JavaScript client
https://github.com/lovethebomb/quake-champions-api
api client javascript quake quake-champions stats
Last synced: over 1 year ago
JSON representation
🚀Unofficial Quake Champions API JavaScript client
- Host: GitHub
- URL: https://github.com/lovethebomb/quake-champions-api
- Owner: lovethebomb
- License: mit
- Created: 2018-06-13T21:16:52.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T08:11:27.000Z (almost 2 years ago)
- Last Synced: 2025-02-11T13:37:05.449Z (over 1 year ago)
- Topics: api, client, javascript, quake, quake-champions, stats
- Language: JavaScript
- Homepage:
- Size: 214 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# quake-champions-api
> [!CAUTION]
> This package is not maintained nor updated
> Official Quake Stats are currently slightly broken (no matches)
[](https://greenkeeper.io/)
This is an unofficial JS client for the [Quake Champions](quake-website) API, provided from [stats.quake.com][quake-stats] website.
This project shouldn't be used in production as no official developer access has been provided to the Quake Champions API, thus it mainly map the calls seen from the [stats.quake.com][quake-stats] page, and the current API calls might not work in the future.
## Installation
```bash
npm i
```
## Usage
### Quick example
```javascript
const QuakeChampionsClient = require('quake-champions-api');
const client = new QuakeChampionsClient();
async function getData() {
// Fetch player
const player = await client.player.get('lovethebomb');
console.debug('Player data', player)
console.debug('Duel SR', player.playerRatings.duel.rating)
}
```
## Documentation
- [Player](#player)
- [Match](#match)
- [GamesSummary](#gamessummary)
- [Leaderboard](#leaderboard)
- [Rankings](#rankings)
### Player
#### get(playername)
Retrieve a player data for a given `playername`.
Returns JSON from the API.
```javascript
const client = new QuakeChampionsClient();
async function getPlayer() {
const player = await client.player.get('my-playername');
}
```
### Match
#### get(matchId, playername)
Retrieve a match data for a given `matchId`.
Allows an optional `playername` argument, which adds more information to the response.
Returns JSON from the API.
```javascript
const client = new QuakeChampionsClient();
async function getMatch() {
const match = await client.match.get('match-id-1234abc');
}
async function getMatchWithPlayerSummary() {
const match = await client.match.get('match-id-1234abc', 'my-playername');
}
```
### GamesSummary
#### get(playername)
Retrieve a GamesSummary data for a given `playername`.
Returns JSON from the API.
```javascript
const client = new QuakeChampionsClient();
async function getGamesSummary() {
const gamesSummary = await client.gamesSummary.get('my-playername');
}
```
### Leaderboard
#### get(board, season, from)
Retrieve a Leaderboard data for a given `board` type.
Board can be `duel` or `tdm`.
Allows an optional `season` argument, which defaults to `current`.
Allows an optional `from` argument, for pagination, which defaults to `0`.
Returns JSON from the API.
```javascript
const client = new QuakeChampionsClient();
async function getDuelLeaderboard() {
const leaderboard = await client.leaderboard.get('duel');
}
```
### Rankings
#### ranking(rating)
Returns a ranking for a given `rating`, as a string like `GOLD_1`.
```javascript
const client = new QuakeChampionsClient();
async function getPlayer() {
const player = await client.player.get('my-playername');
const ranking = client.rankings.ranking(player.playerRatings.duel.rating);
}
```
## Testing
```bash
npm run test
```
## License
MIT
TODO Trademarks QUAKE™, id Software™, Bethesda™, Bethesda Softworks™, ZeniMax™
[quake-stats]: https://stats.quake.com
[quake-website]: https://quake.bethesda.net