arpad
is an IRC bot who keeps track of Elo ratings. Say "hi", arpad
.
waves
For funzies, to learn clojure.core.async, and to determine scientifically who in my office is the best at ping-pong.
Arapd Elo was the guy who invented the Elo ratings scheme.
- 'Arpad' is a Hungrian name
- The only thing I know about Hungary is that paprika is made there
- Paprika is made from red peppers
- There is no red pepper emoji
- One Slack, with Outgoing Webhooks integration
- One tiny server
- One supervisord (optional)
lein uberjar
- Deploy the standalone jar to the tiny server
- Get it running. I recommend creating a supervisord task with autorestarts.
- Configure the outgoing webhook to point at
http://tiny.server:1128/v1/arpad
- Configure the webhook bot however you like. I recommend:
- User name:
arpad
- Trigger word:
arpad, @arpad
- Descriptive label:
Elo ratings bot
- Icon: 🍅
- User name:
Assuming your user name is ajh
@arpad follow ajh
or @arpad follow me
@arpad ajh beat bobjohnson
or @arpad ajh beat me
or @arpad I beat bobjohnson
@arpad ignore ajh
or @arpad ignore me
@arpad standings
@arpad top 10
- Following is opt-in. Your ratings will not be reported until you ask arpad to follow you.
- Even if arpad is ignoring you, your ratings are still tracked behind the scenes. (This is so that the ratings of players who are being followed can be correctly adjusted after matches against players who are not being followed.)
- There is no support for slack's @mentions, and you shouldn't use them. I'm working on it.
- Keeps track of a pool of players and their Elo ratings
- Automagically adds new players to the pool on their first mention
- Keeps track of which players want their Elo ratings reported on an opt-in basis
- Reports the players' new Elo ratings after a match (if they have opted-in to have their ratings reported)
- Report the standings in the pool on demand (only players who have opted-in are reported)
- Support for @mentions
- Undo stack
- Pairing algorithms (fold, slide, adjacent, random)
- Support for draws
- Multiple pools
- Traditional tournaments (round-robin, Swiss, single/double/treble elimination, group-stage+knockout)
- Continuous tournaments (pyramid, ladder)
Copyright © 2015 Alex J. Hammel
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.