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 yossarian-bot's dependencies:
$ git clone https://github.com/woodruffw/yossarian-bot
$ cd yossarian-bot
$ bundle installIf 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 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
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 backgroundyossarian-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.