diff options
Diffstat (limited to 'data/rbot/plugins/search.rb')
-rw-r--r-- | data/rbot/plugins/search.rb | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/data/rbot/plugins/search.rb b/data/rbot/plugins/search.rb index 8118b263..c44100b1 100644 --- a/data/rbot/plugins/search.rb +++ b/data/rbot/plugins/search.rb @@ -6,14 +6,28 @@ GOOGLE_WAP_LINK = /<a accesskey="(\d)" href=".*?u=(.*?)">(.*?)<\/a>/im class SearchPlugin < Plugin def help(plugin, topic="") + case topic + when "search" + "search <string> => search google for <string>" + when "google" "google <string> => search google for <string>" + when "wp" + "wp [<code>] <string> => search for <string> on Wikipedia. You can select a national <code> to only search the national Wikipedia" + else + "search <string> (or: google <string>) => search google for <string> | wp <string> => search for <string> on Wikipedia" + end end def google(m, params) what = params[:words].to_s searchfor = URI.escape what + if params[:site] + site = "site:#{params[:site]}+" + else + site = "" + end - url = "http://www.google.com/wml/search?q=#{searchfor}" + url = "http://www.google.com/wml/search?q=#{site}#{searchfor}" begin @@ -33,10 +47,19 @@ class SearchPlugin < Plugin m.reply "Results for #{what}: #{results}" end + + def wikipedia(m, params) + lang = params[:lang] + site = "#{lang.nil? ? '' : lang + '.'}wikipedia.org" + params[:site] = site + return google(m, params) + end end plugin = SearchPlugin.new plugin.map "search *words", :action => 'google' plugin.map "google *words", :action => 'google' +plugin.map "wp :lang *words", :action => 'wikipedia', :requirements => { :lang => /^\w\w\w?$/ } +plugin.map "wp *words", :action => 'wikipedia' |