An entertaining IRC bot that's easy to extend.
- Simple real-time administration.
- Unix fortunes (
fortunemust 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
$ 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-devor 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 -
- Weather Underground -
- Merriam-Webster -
- YouTube (v3) -
- Last.fm -
- Open Exchange Rates -
- Giphy -
- Goodreads -
- BreweryDB -
- AirQuality -
- OMDB -
fortune utility must be present in order for Unix fortunes
to work correctly. Some package managers also provide the
fortunes-bofh-excuses packages for additional fortune
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
Using the 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
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
s/setnence/sentence. This feature can be disabled by adding
RegexReplace to the server's
disabled_plugins array in
yossarian-bot are welcomed and appreciated.
If you're writing a plugin, check out the
quick style guide to writing plugins for
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.