From 58fa16fbb206c87dc54d401307b6822f5952c15e Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Mon, 31 Aug 2009 21:10:59 +0200 Subject: [PATCH] search: show long definitions with 'google define:stuff' --- data/rbot/plugins/search.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/data/rbot/plugins/search.rb b/data/rbot/plugins/search.rb index 827a1303..95b88a0c 100644 --- a/data/rbot/plugins/search.rb +++ b/data/rbot/plugins/search.rb @@ -59,6 +59,10 @@ class SearchPlugin < Plugin def google(m, params) what = params[:words].to_s + if what.match(/^define:/) + return google_define(m, what, params) + end + searchfor = CGI.escape what # This method is also called by other methods to restrict searching to some sites if params[:site] @@ -125,6 +129,34 @@ class SearchPlugin < Plugin end + def google_define(m, what, params) + begin + wml = @bot.httputil.get(GOOGLE_SEARCH + CGI.escape(what)) + raise unless wml + rescue => e + m.reply "error googling for #{what}" + return + end + + begin + related_index = wml.index(/Related phrases:/, 0) + raise unless related_index + defs_index = wml.index(/Definitions of /, related_index) + raise unless defs_index + defs_end = wml.index(/ e + m.reply "no results found for #{what}" + return + end + + related = wml[related_index...defs_index] + defs = wml[defs_index...defs_end] + + m.reply defs.ircify_html(:a_href => Underline), :split_at => (Underline + ' ') + + end + def lucky(m, params) params.merge!(:lucky => true) google(m, params) -- 2.39.5