]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blob - data/rbot/plugins/search.rb
Rename google plugin back to search in preparation for wikipedia support
[user/henk/code/ruby/rbot.git] / data / rbot / plugins / search.rb
1 require 'uri'
2
3 Net::HTTP.version_1_2
4
5 GOOGLE_WAP_LINK = /<a accesskey="(\d)" href=".*?u=(.*?)">(.*?)<\/a>/im
6
7 class SearchPlugin < Plugin
8   def help(plugin, topic="")
9     "google <string> => search google for <string>"
10   end
11
12   def google(m, params)
13     what = params[:words].to_s
14     searchfor = URI.escape what
15
16     url = "http://www.google.com/wml/search?q=#{searchfor}"
17
18
19     begin
20       wml = @bot.httputil.get(url)
21     rescue => e
22       m.reply "error googling for #{what}"
23       return
24     end
25     results = wml.scan(GOOGLE_WAP_LINK)
26     if results.length == 0
27       m.reply "no results found for #{what}"
28       return
29     end
30     results = results[0...3].map { |res|
31       "#{res[0]}. #{Bold}#{Utils.decode_html_entities res[2].strip}#{Bold}: #{URI.unescape res[1].strip}"
32     }.join(" | ")
33
34     m.reply "Results for #{what}: #{results}"
35   end
36 end
37
38 plugin = SearchPlugin.new
39
40 plugin.map "search *words", :action => 'google'
41 plugin.map "google *words", :action => 'google'
42