# for most languages
GOOGLE_SEARCH = "http://www.google.com/search?oe=UTF-8&q="
-GOOGLE_WAP_SEARCH = "http://www.google.com/wml/search?hl=en&q="
-GOOGLE_WAP_LINK = /<a accesskey="(\d)" href=".*?u=(.*?)">(.*?)<\/a>/im
+GOOGLE_WAP_SEARCH = "http://www.google.com/m/search?hl=en&q="
+# GOOGLE_WAP_LINK = /<a accesskey="(\d)" href=".*?u=(.*?)">(.*?)<\/a>/im
+GOOGLE_WAP_LINK = /<a href="(?:.*?u=(.*?)|(http:\/\/.*?))">(.*?)<\/a>/im
GOOGLE_CALC_RESULT = %r{<img src=/images/calc_img\.gif(?: width=40 height=30 alt="")?>.*?<h2 class=r[^>]*><b>(.+?)</b>}
GOOGLE_COUNT_RESULT = %r{<font size=-1>Results <b>1<\/b> - <b>10<\/b> of about <b>(.*)<\/b> for}
GOOGLE_DEF_RESULT = %r{<p> (Web definitions for .*?)<br/>(.*?)<br/>(.*?)\s-\s+<a href}
"gcalc <equation> => use the google calculator to find the answer to <equation>"
when "gdef"
"gdef <term(s)> => use the google define mechanism to find a definition of <term(s)>"
+ when "gtime"
+ "gtime <location> => use the google clock to find the current time at <location>"
when "wp"
"wp [<code>] <string> => search for <string> on Wikipedia. You can select a national <code> to only search the national Wikipedia"
when "unpedia"
url = GOOGLE_WAP_SEARCH + site + searchfor
hits = params[:hits] || @bot.config['google.hits']
+ hits = 1 if params[:lucky]
first_pars = params[:firstpar] || @bot.config['google.first_par']
- single = (hits == 1 and first_pars == 1)
+ single = params[:lucky] || (hits == 1 and first_pars == 1)
begin
wml = @bot.httputil.get(url)
end
single ||= (results.length==1)
urls = Array.new
+ n = 0
results = results[0...hits].map { |res|
- n = res[0]
+ n += 1
t = Utils.decode_html_entities res[2].gsub(filter, '').strip
- u = URI.unescape res[1]
+ u = URI.unescape(res[0] || res[1])
urls.push(u)
- single ? u : "#{n}. #{Bold}#{t}#{Bold}: #{u}"
+ "%{n}%{b}%{t}%{b}%{sep}%{u}" % {
+ :n => (single ? "" : "#{n}. "),
+ :sep => (single ? " -- " : ": "),
+ :b => Bold, :t => t, :u => u
+ }
}.join(" | ")
if params[:lucky]
- m.reply urls.first
+ m.reply results.first
return
end
return google(m, params)
end
- def time(m, params)
+ def gtime(m, params)
where = params[:words].to_s
where.sub!(/^\s*in\s*/, '')
searchfor = CGI.escape("time in " + where)
plugin.map "gcount *words", :action => 'gcount', :threaded => true
plugin.map "gcalc *words", :action => 'gcalc', :threaded => true
plugin.map "gdef *words", :action => 'gdef', :threaded => true
+plugin.map "gtime *words", :action => 'gtime', :threaded => true
plugin.map "wp :lang *words", :action => 'wikipedia', :requirements => { :lang => /^\w\w\w?$/ }, :threaded => true
plugin.map "wp *words", :action => 'wikipedia', :threaded => true
plugin.map "unpedia *words", :action => 'unpedia', :threaded => true
-plugin.map "time *words", :action => 'time', :threaded => true