An entertaining IRC bot that's easy to extend.
fortune
must be present)First, clone the repo and install yossarian-bot
's dependencies:
$ git clone https://github.com/woodruffw/yossarian-bot
$ cd yossarian-bot
$ bundle install
If you get errors during the bundle installation process, make sure that you're using Ruby 3.0 or later and have Ruby's development headers installed. You may need them from your package manager. Earlier versions of Ruby might work, but are not guaranteed or tested.
yossarian-bot
also requires API keys for several services. Make sure that
they are exported to the environment (or set in the configuration) as follows:
WOLFRAM_ALPHA_APPID_KEY
WUNDERGROUND_API_KEY
WEATHERSTACK_API_KEY
MERRIAM_WEBSTER_API_KEY
YOUTUBE_API_KEY
LASTFM_API_KEY
, LASTFM_API_SECRET
OEX_API_KEY
GIPHY_API_KEY
BREWERYDB_API_KEY
AIRNOW_API_KEY
OMDB_API_KEY
Additionally, the fortune
utility must be present in order for Unix fortunes
to work correctly. Some package managers also provide the fortunes
,
fortunes-off
, and fortunes-bofh-excuses
packages for additional fortune
messages.
Once all dependencies are installed, yossarian-bot
can be run as follows:
$ ruby bot-control.rb start
$ # OR:
$ ruby yossarian-bot.rb # not run in background
docker build -t yossarian-bot:latest .
docker run -v $PWD/config.yml:/config.yml yossarian-bot
yossarian-bot
is configured via a YAML file named config.yml.
Look at the example config.yml to see a list of optional and required keys.
There are a bunch of commands that yossarian-bot
accepts. You can
see a complete list in the COMMANDS file.
yossarian-bot
matches all HTTP(S) links and messages the title of the linked
HTML page. This feature can be disabled by adding LinkTitling
to the server's
disabled_plugins
array in config.yml
.
Messages of the form s/(.+)/(.+)
are also matched, and the first pattern
matched is applied to the user's last previous message, with the second match
replacing it. For example, a typo like "this is a setnence" can be corrected
with s/setnence/sentence
. This feature can be disabled by adding
RegexReplace
to the server's disabled_plugins
array in config.yml
.
Contributions to yossarian-bot
are welcomed and appreciated.
If you're writing a plugin, check out the
quick style guide to writing plugins for yossarian-bot
.
If you'd like to contribute but don't have any contributions in mind, check out the open issues. They're regularly updated with things that can be fixed, improved, and added.
yossarian-bot
is licensed under a restricted modification of the MIT license.
For the exact terms, see the license file.