Karmabot is a Slack bot that listens for an performs karma operations (aka upvotes/downvotes).
- upvote a user:
<user>++
- downvote a user:
<user>--
- add/subtract multiple points at once:
<user>++
- 1 point<user>+++
- 2 points- and so on
- add a message/reason for a karma operation:
<user>++ for <message>
; or<user>++ <message>
- motivate.im support:
?m <user>
!m <user>
- leaderboard:
<karma|karmabot> <leaderboard|top|highscores>
- to list more than
leaderboardLimit
(see the Usage section below), you may append the number of users to list to the command above. e.g.karmabot top 20
note: <user>
does not have to be a Slack username. However, karmabot supports Slack autocompletion and so the following messages are parsed correctly:
@username: ++
@username++
username: ++
!m @username:
- etc.
- clone the repo:
git clone -b v0.1.0 https://github.com/kamaln7/karmabot.git
- run
go get
and thengo build
inside the repo's rootcd karmabot
go get
go build
- head to the repo's releases page and download the appropriate latest release's binary for your system
- add a Slack Bot integration:
https://team.slack.com/apps/A0F7YS25R-bots
- run
karmabot
. the following options are supported:
option | required? | description | default |
---|---|---|---|
-token string |
yes | slack RTM token | |
-db string |
no | path to sqlite database | ./db.sqlite3 |
-leaderboardLimit int |
no | the default amount of users to list in the leaderboard | 10 |
-maxpoints int |
no | the maximum amount of points that users can give/take at once | 6 |
-debug bool |
no | set debug mode | false |
example: ./karmabot -token xoxb-abcdefg
see ./LICENSE