This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
matzbot /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Tue Aug 14 16:56:49 -0700 2007 | |
| |
README | Tue Aug 14 16:50:58 -0700 2007 | |
| |
cron.rb | Tue Aug 14 16:50:58 -0700 2007 | |
| |
launch.rb | Tue Aug 14 16:56:49 -0700 2007 | |
| |
lib/ | Tue Aug 14 16:56:49 -0700 2007 | |
| |
plugins/ | Tue Aug 14 17:13:25 -0700 2007 |
README
**********************
Plugin API Howto
(so we don't forget)
**********************
Typical plugin:
module MatzBot::Commands
needs_gem 'hpricot' => [ :tinyurl, :get_tinyurl ]
def tinyurl(data)
say "Here it is! #{get_tinyurl(data.first)}"
rescue
say "No, no that's not gonna work."
end
private
def get_tinyurl(url)
return if url.empty?
res = Net::HTTP.post_form(URI.parse('http://tinyurl.com/create.php'), { 'url' => url })
doc = Hpricot(res.body)
((doc/:blockquote).last/:b).innerHTML
end
end
- New methods added to MatzBot::Commands show up as commands
- If you want to add methods which aren't bot commands, make them protected or private.
- Methods must accept one argument, an array of words said after the command.
- If you need to require a gem, use needs_gem like above. Pass it the gem name and all
the methods that depend on it.
- If you need to keep around data, use the `session' hash.
session[:my_plugin] = true
session[:my_plugin]
- You can use `reply' like say, except it will prefix your command with the user's name.
<defunkt> hey bot
<matzbot> defunkt: hey # => using reply 'hey'
- You can use `pm' to send a private message to whoever made a request of you. Use it like `say.'
- The above plugin would be triggered like this:
<irc_dude> tinyurl http://myurl.com
<matzbot> Here it is! http://tinyurl.com/fz3
- You get these methods in the Commands API:
- puts(string to say)
- reply(string to say)
- pm(sting to pm) [your bot must be ident'd on most networks for this to work]
- action(string to emote)
- config -- hash of runtime configuration options
- socket -- direct access to the socket, if you need it
- Put plugins in ~/.matzbot and name them whatever.rb.
=> Evan Weaver && Chris Wanstrath
>> %w[ http://blog.evanweaver.com http://errtheblog.com ]







