Soccer CLI
Soccer for Hackers - a CLI for all the football scores.
Install
An API key from football-data.org will be required and you can register for one here.
Build from source
$ git clone https://github.com/architv/soccer-cli.git
$ cd soccer-cli
$ python setup.py install
You can set the API key using an environment variable as shown above or create a file .soccer-cli.ini
in your home folder (/home/username/.soccer-cli.ini
) that contains only your API token, such that:
$ cat /home/username/.soccer-cli.ini
<YOUR_API_TOKEN>
Note:
Currently supports Linux, Mac OS X, NetBSD, FreeBSD and Windows.
To get colorized terminal output on Windows, make sure to install ansicon and colorama.
Usage
Get standings for a league
$ soccer --standings --league=PL # PL is the league code for English Premier League
Get scores for a particular team
$ soccer --team=MUFC # MUFC is the team code for Manchester United
$ soccer --team=PSG --time=10 # scores for all the Paris Saint-Germain games over the past 10 days
Get upcoming fixtures
$ soccer --time 5 --upcoming # get upcoming fixtures for next 5 days
$ soccer --time 5 --upcoming --use12hour # upcoming fixture for next 5 days with timings in 12 hour format
Get scores for live games
$ soccer --live
Get scores for a particular league
$ soccer --league=BL # BL is the league code for Bundesliga
$ soccer --league=FL --time=15 # get scores for all the French Ligue games over the past 15 days
Get information about players of a team
$ soccer --team=JUVE --players
Get scores for all seven leagues with a set time period
$ soccer --time=10 # get scores for all the seven leagues over the past 10 days
Get the output in csv or json
$ soccer --league PL --standings --csv # prints the output in csv format
$ soccer --league PL --standings --json # prints the output in json format
Store the ouput in a file
$ soccer --league PL --standings --csv -o 'standings.csv' # stores the ouput in csv format in `standings.csv`
Help
$ soccer --help
List of supported leagues and their league codes
- World:
- WC: World Cup (if running/active)
- Europe:
- CL: Champions League
- EC: European Championships (if running/active)
- Brazil:
- BSA: Brazil Serie A
- England:
- PL: English Premier League
- ELC: English Championship
- France:
- FL1: Ligue 1
- Germany:
- BL: Bundesliga
- Italy:
- SA: Serie A
- Netherlands:
- DED: Eredivisie
- Portugal:
- PPL: Primeira Liga
- Spain:
- LLIGA: La Liga
Team and team codes
For a full list of supported team and team codes see this.
Tests
To run testing suite from root of repo
$ python -m unittest discover tests
To run specific test file (in this case the tests in test_request_handler.py)
$ python -m unittest tests.test_request_handler
Demo
Standings
Live scores
Team scores
Output in json format
Todo
- Enable cache.
- Add more test cases.
- Add fixtures for UEFA Champions League.
- Add league filter for live scores.
- Color coding for Europa league and differentiation between straight CL and CL playoff spots, and the same for EL spots.
- Add support for team line up.
- A built in watch feature so you can run once with --live and just leave the program running.
- Python 3 support.
Licence
Open sourced under MIT License
Support
If you like my work, please support the project by donating.