mirror of
https://github.com/FAUSheppy/open-web-leaderboard.git
synced 2025-12-05 22:51:36 +01:00
2b2e4361a5b5582c650846ca8c601f8d3670ca97
Open Web Leaderboard
The Open Web Leaderboard is a leaderboard that can easily be used with any backend as long as you find a way to supply the following information (see database.py):
- getRankRange(start, end) -> return a list of players from start rank to end rank
- getMaxEntries() -> return the total number of entries in the leaderboard
- findPlayer() -> find a player by name and return a (player, rank)-tupel
The system was developed to be used with the skillbird-framwork. If you use this framework, the program should be working without any arguments. If you need more conductibility feel free to open a pull-request or send me a message.
Requirements
- MDB Jquery (unpack to ./static/bootstrap/)
- Fontawesome (move to static/boostrap/fontawesome.css)
python3 -m pip install -r req.txt- Moment.js (directly into static/)
How to run
You can run the leaderboard as a flask standalone (arguments overwrite config.py settings!):
./server.py --skillbird-db PATH_TO_DB
or with a runner like waitress:
/usr/bin/waitress-serve --host 127.0.0.1 --port 5002 --call 'app:createApp
the DB_PATH is set in config.py in this case.
GDPR: Blacklisting players
Players can be blacklisted by name via a blacklist.json file in the project root.
{
"blacklist" : ["name", "name_2"]
}
Adding servers for player count live info
Source-Servers can be added via the servers.json-file:
[
{
"name" : "server_1",
"host" : "example.com",
"port" : 27015
},
{
...
}
]
Python-valve is required if this file exists.
Live Demo
Languages
Python
49.6%
HTML
38.7%
CSS
6.7%
JavaScript
4.4%
Dockerfile
0.6%