_______ _ _
|__ __| | | | |
| |_ _ _ __| |__ ___ | |_
| | | | | '__| '_ \ / _ \| __|
| | |_| | | | |_) | (_) | |_
|_|\__,_|_| |_.__/ \___/ \__|
Turbot is a group effort to bring some entertainment to IRC. It has been built for #tamparb
by #tamparb
. Not in the Tampa area? Don't worry you can easily get turbot up and running in your own channel. If you want to contribute to Turbot there is a section below that will help you do so.
If you'd like to add a function or feature to turbot the reccomended way is to create a plugin. (See some existing plugins below)
The main guidelines are as follows
- Plugins should do one thing.
- Plugins should have a pretty simple matcher
- Plugins should register themselves
- This is mainly so that the
.help
command can stay current, but also enables turbot to do some pretty neat stuff.
- Plugins need to be suffixed with
cinch_plugin.rb
. This is how your plugin will be loaded.
Let's take a look at the TurbotInfo plugin.
- Include
Cinch::Plugin
- This gives you access to all the methods that cinch provides. - Set your prefix. All commands are prefixed so that they aren't triggered accidentally. The
PREFIX
constant is set to.
(dot). You may override it if you wish, but going with the default is probably the best way to go. PluginHandler.add_plugin(self)
This is how your plugin is registered.- Remember when we registered the plugin? This is where we do some cool stuff with it. Inside another plugin, the aptly named 'help' plugin, we iterate over all the plugins'
help
method and print out a listing of the available commands. See example output below. - This is where you write your matcher. You do not need to include your prefix in your matcher as it is added there by cinch.
- Where you do your cool plugin stuff.
If you want to contribute something other than a plugin. Fork, code, submit pull req. And we'll see what we can do.
Plugins:
The Meetup plugin gives some basic information about the next Tampa Bay Ruby Brigade meeting.
This plugin lets you use Duck Duck Go's api in the IRC channel. Check here for more info about possible commands: https://duckduckgo.com/api
As its name implies. This is all about Vin Diesel. Observe:
Renders output with Cowsay to IRC:
Dorkiest of all the plugins!
Allows you to list a gem from rubygems.org. .gem <searchparam>
gives a list of potential matches. .gem info <searchparam>
gives info on specific gem.
This plugin reports the status of Github. (Duh). It also periodically reports if the status is down.
This plugin reports all of the available commands. To get further help, you can execute .help <command name>
which will print an ASCII table of the commands matching your criteria.
Ask if Turbot will make you a sandwich. I kinda doubt he will.
Arguably the most useful plugin. Prints short summary for a given url. Does special formatting for youtube, twitter, et al.