Say, black sheep, black, do you got some wool?
Yes, I do, man, my bag is full.
It's the root of evil and you know the rest.
But it's way ahead of what's second best!
-- ZZ Top, "Just Got Paid"
ZZBot is intended to be a multi-platform bot for evaluating Scala code. Currently it supports IRC and Slack.
To use the bot, you'll want to:
- clone this repo (e.g.
git clone https://github.com/non/zzbot.git
) - assemble the jar file (e.g.
sbt assembly
) - customize the launcher (e.g.
emacs run.sh
) - run the bot! (e.g.
./run.sh
)
You can select the desired platform via -Dbot.platform
, for example:
-Dbot.platform=irc
: run an IRC bot-Dbot.platform=slack
: run a Slack bot
The shared options are:
-Dbot.admins
: the IRC users who can administrate the bot (e.g.billy,frank,dusty
)-Dbot.imports
: any imports to run when the REPL starts (e.g.cats._
)-Dbot.plugins
: any compiler plugin jars to include (e.g.path/to/plugin.jar
)
The IRC options are:
-Dbot.name
: the nickname for the bot to use (e.g.mybot
)-Dbot.server
: the IRC server to connect to (default:irc.freenode.net
)-Dbot.channels
: the IRC channels to connect to (e.g.#scala
)
The slack option is:
-Dbot.token
: the Slack API token to use (keep this secret!)
There are a number of avenues for future work:
- Distribute an executable jar
- Support more platforms (e.g. Twitter, Gitter, SMS, etc.)
- Consider using Coursier to dynamically load libraries
- Make compiler plugin support less hacky
- Consider adding more user commands
- Consider adding more admin commands
- Improve the code
- Figure out how to write useful tests
All code is available to you under the Apache 2 license, available at https://www.apache.org/licenses/LICENSE-2.0.
ZZBot is based on code from Multibot and Spirebot.
Multibot is copyright Marcin Mielżyński, 2012-2017.
Spirebot is copyright Erik Osheim, 2013-2014.
ZZBot is copyright Erik Osheim, 2018.