An IRC bot with a bunch of features.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
extend
old_plugins
plugins
.gitignore
.rubocop.yml
.rubocop_todo.yml
COMMANDS.md
Gemfile
Gemfile.lock
LICENSE
README.md
WRITING_PLUGINS.md
bot-control.rb
config.yml.example
plugins.yml
version.yml
yossarian-bot.rb

README.md

yossarian-bot

An entertaining IRC bot that's easy to extend.

Features:

  • 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!

Installation

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.

Running

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

Configuration Options

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.

Commands

There are a bunch of commands that yossarian-bot accepts. You can see a complete list in the COMMANDS file.

Matches

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.

Contributing

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.

License

yossarian-bot is licensed under the MIT License.

For the exact terms, see the license file.