lichess-tournament-creator

    1.0.0 • Public • Published

    Lichess Tournament Creator

    License: MIT npm version Build Status Coverage Status Mutation testing badge

    CLI tool to create Lichess chess tournaments, built using NodeJS.

    Features

    • Quickly creating a single Lichess tournament (Arena or Swiss format)
    • Bulk creating a set of defined tournaments in a configuration file

    Installing

    Using npm:

    $ npm i -g lichess-tournament-creator
    

    Usage

    $ lichess-tournament-creator <type> [...params]
    
    • type:
      • arena: create Arena format tournament
        • name: tournament name
        • date: tournament date, in 'YYYY-MM-DD hh:mm:ss' format
        • tournament_duration: tournament duration, in minutes
        • match_duration: match duration, in minutes
        • match_increment: match increment per move, in seconds
        • auth_token: lichess API authorization token
      • arena: create Swiss format tournament
        • name: tournament name
        • team_id: team identification string
        • date: tournament date, in 'YYYY-MM-DD hh:mm:ss' format
        • num_rounds: tournament number of rounds
        • match_duration: match duration, in minutes
        • match_increment: match increment per move, in seconds
        • auth_token: lichess API authorization token
      • file: create a set of tournaments via configuration file
        • file_name: JSON file name (format explained below)

    Examples

    $ lichess-tournament-creator arena "First anual chess meetup" "2021-01-01 16:30:00" 80 3 2 authtokenxpto123
    
    $ lichess-tournament-creator swiss "Swiss-cheese open" switzerland-chess-club "2021-05-20 15:10:00" 7 5 3 authtokenxpto123
    
    $ lichess-tournament-creator file my_tournaments.json
    

    JSON tournaments file format

    The JSON tournaments input file should follow the following format:

    {
        "auth_token": "authtokenxpto123",   // lichess API authorization token, used in all requests
        "tournaments": [
            {
                "name": "First anual chess meetup",
                "type": "arena",
                "date": "2021-01-01 16:30:00",
                "tournament_duration": 80,
                "match": {
                    "duration": 3,
                    "increment": 2
                }
            },
            {
                "name": "Swiss-cheese open",
                "type": "swiss",
                "team_id": "switzerland-chess-club",
                "date": "2021-05-20 15:10:00",
                "num_rounds": 7,
                "match": {
                    "duration": 5,
                    "increment": 3
                }
            }
        ] 
    }

    Usage considerations

    • The Lichess API only allows a limit of tournaments created per user, per day (12 public tournaments or 24 private tournaments)
    • The generated authorization should feature permission for tournament creating
    • In order to create a swiss format tournament for a team, the user must be an admin of the team (to have the required permissions)

    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
    

    Future work

    • Allows public/private tournament specification, along with other tournament-tweaking options that are not available at the moment
    • Improve error lichess API error handling, displaying it in a more user-friendly format

    License

    MIT

    Install

    npm i lichess-tournament-creator

    DownloadsWeekly Downloads

    1

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    61.9 kB

    Total Files

    42

    Last publish

    Collaborators

    • avatar