X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Furban.rb;h=0c7d98387cf8a10b466a7de1a95c172f02b2c01f;hb=b0c7f5f17b65043a796f8b3f4dc27cbfa287e087;hp=c77a2e45601f40f5f2c3c226dc48c0b15c37ac24;hpb=9629ed554bae9bc0e851203f6c820badd09c43c7;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/urban.rb b/data/rbot/plugins/urban.rb index c77a2e45..0c7d9838 100644 --- a/data/rbot/plugins/urban.rb +++ b/data/rbot/plugins/urban.rb @@ -1,5 +1,3 @@ -require 'uri' - class UrbanPlugin < Plugin def help( plugin, topic="") @@ -11,14 +9,16 @@ class UrbanPlugin < Plugin n = params[:n].nil? ? 1 : params[:n].to_i rescue 1 if words.empty? - uri = URI.parse( "http://www.urbandictionary.com/random.php" ) - @bot.httputil.head(uri) { |redir| - words = URI.unescape(redir.match(/define.php\?term=(.*)$/)[1]) rescue nil - } + resp = @bot.httputil.head('http://www.urbandictionary.com/random.php', + :max_redir => -1, + :cache => false) + if resp.code == "302" && (loc = resp['location']) + words = URI.unescape(loc.match(/define.php\?term=(.*)$/)[1]) rescue nil + end end # we give a very high 'skip' because this will allow us to get the number of definitions by retrieving the previous definition - uri = URI.parse("http://www.urbanwap.com/search.php?term=#{URI.escape words}&skip=65536") - page = @bot.httputil.get_cached(uri) + uri = "http://www.urbanwap.com/search.php?term=#{CGI.escape words}&skip=65536" + page = @bot.httputil.get(uri) if page.nil? m.reply "Couldn't retrieve an urban dictionary definition of #{words}" return @@ -38,8 +38,8 @@ class UrbanPlugin < Plugin n = numdefs end if n < numdefs - uri = URI.parse("http://www.urbanwap.com/search.php?term=#{URI.escape words}&skip=#{n-1}") - page = @bot.httputil.get_cached(uri) + uri = "http://www.urbanwap.com/search.php?term=#{CGI.escape words}&skip=#{n-1}" + page = @bot.httputil.get(uri) if page.nil? case n % 10 when 1 @@ -77,7 +77,7 @@ class UrbanPlugin < Plugin end def uotd(m, params) - home = @bot.httputil.get_cached("http://www.urbanwap.com/") + home = @bot.httputil.get("http://www.urbanwap.com/") if home.nil? m.reply "Couldn't get the urban dictionary word of the day" return @@ -85,7 +85,7 @@ class UrbanPlugin < Plugin home.match(/Word of the Day: .*?<\/a>/) wotd = $1 debug "Urban word of the day: #{wotd}" - page = @bot.httputil.get_cached(wotd) + page = @bot.httputil.get(wotd) if page.nil? m.reply "Couldn't get the urban dictionary word of the day" else