From ac4141a466cc992539ba076d1188cfa15b35ab6f Mon Sep 17 00:00:00 2001 From: Chris Gahan Date: Wed, 22 Feb 2006 00:14:43 +0000 Subject: A fixed chuck norris plugin. (The XML feed was disabled, so this one just scrapes the website.) --- data/rbot/plugins/chucknorris.rb | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/data/rbot/plugins/chucknorris.rb b/data/rbot/plugins/chucknorris.rb index 0eee0c17..362462e6 100644 --- a/data/rbot/plugins/chucknorris.rb +++ b/data/rbot/plugins/chucknorris.rb @@ -1,33 +1,24 @@ -require 'rexml/document' require 'uri/common' +require 'cgi' class ChuckNorrisPlugin < Plugin - include REXML def help(plugin, topic="") - "chucknorris [=1] => show a random chuck norris quote, or specify quotes you want (maximum is 6)." + "chucknorris => show a random chuck norris fact." end def chucknorris(m, params) - howmany = params[:howmany].to_i - howmany = 6 if howmany > 6 - - factdata = @bot.httputil.get(URI.parse('http://www.4q.cc/chuck/rss.php')) + factdata = @bot.httputil.get(URI.parse('http://www.4q.cc/index.php?pid=fact&person=chuck')) unless factdata - m.reply "Chuck Norris' facts roundhouse kicked the internet connection and totally wasted it." + m.reply "This Chuck Norris fact made my brain explode. (HTTP error)" return end - begin - doc = Document.new factdata - doc.get_elements('rss/channel/item')[1..howmany].each do |fact| - m.reply fact.elements['description'].text - end - - rescue ParseException => e - puts "Error parsing chuck norris quote: #{e.inspect}" - m.reply "Chuck Norris' facts were so intense that they blew up my XML parser." + if factdata =~ %r{

And now a random fact about Chuck Norris...

(.+?)
} + m.reply(CGI::unescapeHTML($1)) + else + m.reply "This Chuck Norris fact punched my teeth in. (Parse error)" end end @@ -35,5 +26,4 @@ class ChuckNorrisPlugin < Plugin end plugin = ChuckNorrisPlugin.new -plugin.map 'chucknorris :howmany', :defaults => {:howmany => 1}, - :requirements => {:howmany => /^-?\d+$/} +plugin.map 'chucknorris' -- cgit v1.2.3