fide-ratings-scraper
Version:
FIDE player ratings scraper
232 lines (185 loc) • 5.8 kB
Markdown
# FIDE ratings scraper
[](https://opensource.org/licenses/MIT)
[](https://www.npmjs.com/package/fide-ratings-scraper)
[](https://circleci.com/gh/xRuiAlves/fide-ratings-scraper)
[](https://coveralls.io/github/xRuiAlves/fide-ratings-scraper?branch=master)
[](https://dashboard.stryker-mutator.io/reports/github.com/xRuiAlves/fide-ratings-scraper/master)
This package offers an interface (both as a CLI and/or as a server API) to get chess player ratings information in a programative way.
[FIDE](http://ratings.fide.com/) is the International Chess Federation. They feature a ratings sub-domain where players may check their international ELO rating (in different categories), their perfomance history, *et cetera*.
## Features
- Access chess players' FIDE ratings information in a programative way
- Easily expose an API to access ratings resource scraped and parsed directly from FIDE ratings website
## Installing
Using npm:
```
$ npm i -g fide-ratings-scraper
```
## Usage
```
$ fide-ratings-scraper <operation> [...args]
```
- `operation`:
- `get`: Obtain a resource
- `info`: Obtain a player's full available info
- `personal-data`: Obtain a player's personal data
- `rank`: Obtain a player's rank
- `elo`: Obtain a player's ELO (in different categories)
- `history`: Obtain a player's ELOs history
- `api`: Start app as a web API
### Example
```
$ fide-ratings-scraper get info 1503014
```
```
$ fide-ratings-scraper api
```
## API
### <span style="color:green">GET </span> Player Full Info
```
/player/{fide_number}/info
```
Get all the information provided by FIDE about the player.
```json
{
"name": "Doe, John",
"federation": "Portugal",
"birth_year": 1980,
"sex": "Male",
"title": "None",
"standard_elo": 1700,
"rapid_elo": 1650,
"blitz_elo": 1750,
"world_rank_all_players": 180000,
"world_rank_active_players": 135200,
"national_rank_all_players": 760,
"national_rank_active_players": 325,
"continental_rank_all_players": 132400,
"continental_rank_active_players": 62405
}
```
### <span style="color:green">GET </span> Player Personal Data
```
/player/{fide_number}/personal-data
```
Get the player's personal data.
```json
{
"name": "Doe, John",
"federation": "Portugal",
"birth_year": 1980,
"sex": "Male",
"title": "None",
}
```
### <span style="color:green">GET </span> Player Rank
```
/player/{fide_number}/rank
```
Get the player's rank in different ranking lists.
```json
{
"world_rank_all_players": 180000,
"world_rank_active_players": 135200,
"national_rank_all_players": 760,
"national_rank_active_players": 325,
"continental_rank_all_players": 132400,
"continental_rank_active_players": 62405
}
```
### <span style="color:green">GET </span> Player ELO
```
/player/{fide_number}/elo
```
Get the player's ELO in all the categories.
```json
{
"standard_elo": 1700,
"rapid_elo": 1650,
"blitz_elo": 1750,
}
```
### <span style="color:green">GET </span> Player History
```
/player/{fide_number}/history
```
Get a full list of all the player's ELO ratings (in all the categories) along the past years, ordered by date (most recent first).
```json
[
{
"date": "2019-Oct",
"numeric_date": 201910,
"standard": "1700",
"num_standard_games": "1",
"rapid": "1650",
"num_rapid_games": "0",
"blitz": "1750",
"num_blitz_games": "0"
},
{
"date": "2019-Sep",
"numeric_date": 201909,
"standard": "1692",
"num_standard_games": "1",
"rapid": "1610",
"num_rapid_games": "9",
"blitz": "1750",
"num_blitz_games": "0"
},
{
"date": "2019-Aug",
"numeric_date": 201908,
"standard": "1680",
"num_standard_games": "2",
"rapid": "1610",
"num_rapid_games": "0",
"blitz": "1720",
"num_blitz_games": "2"
}
]
```
### <span style="color:green">GET </span> Player Full Info Including History
```
/player/{fide_number}/info?include_history=true
```
Get all the information provided by FIDE about the player, including the previous rating change history.
```json
{
"name": "Doe, John",
"federation": "Portugal",
"birth_year": 1980,
"sex": "Male",
"title": "None",
"standard_elo": 1700,
"rapid_elo": 1650,
"blitz_elo": 1750,
"world_rank_all_players": 180000,
"world_rank_active_players": 135200,
"national_rank_all_players": 760,
"national_rank_active_players": 325,
"continental_rank_all_players": 132400,
"continental_rank_active_players": 62405,
"history": [
{
"date": "2019-Oct",
"numeric_date": 201910,
"standard": "1700",
"num_standard_games": "1",
"rapid": "1650",
"num_rapid_games": "0",
"blitz": "1750",
"num_blitz_games": "0"
}]
}
```
## Tests
To run the test suite, install the project's dependencies and run `npm test`:
```
$ npm install
$ npm test
```
To run mutation tests:
```
$ npm run test:mutation
```
## License
[MIT](https://github.com/xRuiAlves/fide-ratings-scraper/blob/master/LICENSE)