Tool to create a scoreboard for online DCSS games.
Why make another scoreboard?
- The CAO scoreboard is old; |amethyst said 1.3 people understood it and fewer still had time for working on it. So we decided to start from scratch.
- Faster scripts. No benchmarks just yet so you'll have to take our word for it.
- Better streaks:
- Streak griefers are detected with some clever heuristics and blacklisted from the stats.
- To extend your streak you must start the next game after finishing the previous one. No more queuing up games and winning them all at once for a streak!
- Bots are blacklisted so the min-duration leaderboard is finally useful again!
- It’s time for a fresh new UI. New features include player search and a fancy new logo by Ontoclasm. Plus, we’re probably improving stuff as you read this.
- Per-player tracking of many stats. We hope you like stats.
- New improvements arriving all the time. If you like, you can even help out.
High-level program flow
loader.py: CLI entrypoint
sources.py: download logfiles in parallel using
log_import.py: load each game (eg each line) from logfiles into the database
scoring.py: score each unscored game: 1. Handle streaks
write_website.py: create the website directory 1. Write all global pages (index, highscores, streaks) 1. Write pages for players with newly scored games
How to use
Python 3.5+ is required. Install pre-requisites with
pip install -r requirements.txt. If you want to use Postgres as your database server, also install the
psycopg2 pip module (which requires
libpq-dev on Ubuntu).
To use the code, run
- First, get Vagrant at https://www.vagrantup.com/ and install it.
- Install the vbguest plugin with
vagrant plugin install vagrant-vbguest.
- Open in the git folder in cmd which should contain 'Vagrantfile', and run
vagrant up. This will set up an Ubuntu VM and might take a while.
- Once the setup is complete, you should be able to visit http://localhost:8080/ in a web browser and see your development website!
- To update your development scoreboard, you can SSH into the machine with
vagrant sshand run
- Ctrl-D will exit out of the VM's terminal.
vagrant haltwill shut down the VM when you're done.
vagrant upwill start it up again when you need it, and
vagrant destroywill remove the VM entirely.
Alternatively, specify port 8000 when writing the website,
cd /vagrant and
python server.py & to start serving the website at http://localhost:8000/.
To create a user and database in Postgres, try the following commands:
sudo -u postgres createuser -D -A -P scoreboard sudo -u postgres createdb -O scoreboard scoreboard
You can see development status here: https://trello.com/b/9Nija4jC/dcss-scoreboard.