An entertaining IRC bot that's easy to extend.
- Simple real-time administration.
- Unix fortunes (
fortune
must be present) - Catch-22 quotes
- UrbanDictionary queries
- Wolfram|Alpha queries
- Smart weather queries (Wunderground)
- Google searches
- YouTube searches
- ROT13 message "encryption"
- Magic 8 Ball queries
- Dictionary queries (Merriam-Webster)
- Cleverbot discussions
- Channel 'seen' log
- Link compression (TinyURL)
- ...and much more!
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 2.3 or greater
- Ruby's development headers/files are installed (should be
ruby2.3-dev
or similar in your package manager)
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 -
WOLFRAM_ALPHA_APPID_KEY
- Weather Underground -
WUNDERGROUND_API_KEY
- Merriam-Webster -
MERRIAM_WEBSTER_API_KEY
- YouTube (v3) -
YOUTUBE_API_KEY
- Last.fm -
LASTFM_API_KEY
,LASTFM_API_SECRET
- Open Exchange Rates -
OEX_API_KEY
- Giphy -
GIPHY_API_KEY
- Goodreads -
GOODREADS_API_KEY
- BreweryDB -
BREWERYDB_API_KEY
- AirQuality -
AIRNOW_API_KEY
- OMDB -
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
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 the MIT License.
For the exact terms, see the license file.