X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fgrouphug.rb;h=55e9a34503b694976a34cf49c09c231a26d8fe80;hb=1e841175468b3e0357ab278a226a237fe4d7687e;hp=aa3bf6d784e96fdf4cebf300c07ca3f6c35ca20d;hpb=0a8521c9c11ef0de35de2ffaa84819ecbc44d3b7;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/grouphug.rb b/data/rbot/plugins/grouphug.rb index aa3bf6d7..55e9a345 100644 --- a/data/rbot/plugins/grouphug.rb +++ b/data/rbot/plugins/grouphug.rb @@ -1,36 +1,45 @@ -# Plugin for the Ruby IRC bot (http://linuxbrit.co.uk/rbot/) -# (c) 2005 Mark Kretschmann -# Licensed under GPL V2. - -require "net/http" - +#-- vim:sw=2:et +#++ +# +# :title: Grouphug Plugin for rbot +# +# Author:: Mark Kretschmann +# Copyright:: (C) 2005 Mark Kretschmann +# License:: GPL v2 class GrouphugPlugin < Plugin - def help( plugin, topic="" ) - "Grouphug plugin. Confess! Usage: 'confess' for random confession, 'confess ' for specific one." + def help( plugin, topic="" ) + return "Grouphug plugin. Confess! Usage: 'confess' for random confession, 'confess ' for specific one." + end + + def confess(m, params) + opts = { :cache => false } + path = "random" + if params[:num] + path = "confessions/#{params[:num]}" + opts.delete(:cache) end - def privmsg( m ) - path = "/random" - path = "/confessions/#{m.params()}" if m.params() - begin - data = bot.httputil.get(URI.parse("http://grouphug.us/#{path}")) - - reg = Regexp.new( '()(.*?)(

)', Regexp::MULTILINE ) - confession = reg.match( data )[4] - confession.gsub!( /<.*?>/, "" ) # Remove html tags - confession.gsub!( "\t", "" ) # Remove tab characters - - @bot.say(m.replyto, confession) - rescue - m.reply "failed to connect to grouphug.us" - end - end + begin + data = @bot.httputil.get("http://grouphug.us/#{path}", opts) + + reg = Regexp.new('(
)(.*?)(

)', + Regexp::MULTILINE) + confession = reg.match( data )[4].ircify_html + confession = "no confession ##{params[:num]} found" if confession.empty? and params[:num] + + m.reply confession + rescue + m.reply "failed to connect to grouphug.us" + end + end end plugin = GrouphugPlugin.new -plugin.register("grouphug") -plugin.register("confess") +plugin.map "grouphug [:num]", + :thread => true, :action => :confess, :requirements => { :num => /\d+/ } +plugin.map "confess [:num]", + :thread => true, :action => :confess, :requirements => { :num => /\d+/ }