X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fsearch.rb;h=5745a24be6c9cf7443c23778347316fdf4319251;hb=e63551c50a03a70d32455697112ee72c6006dd19;hp=716fcaaf29bc33afc92c61bd7b80b1163a3d9b81;hpb=5d0d86a26c08eccf2dc6934d380662a9912b49d5;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/search.rb b/data/rbot/plugins/search.rb index 716fcaaf..5745a24b 100644 --- a/data/rbot/plugins/search.rb +++ b/data/rbot/plugins/search.rb @@ -16,8 +16,9 @@ # 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>/im +GOOGLE_WAP_SEARCH = "http://www.google.com/m/search?hl=en&q=" +# GOOGLE_WAP_LINK = /(.*?)<\/a>/im +GOOGLE_WAP_LINK = /(.*?)<\/a>/im GOOGLE_CALC_RESULT = %r{.*?

]*>(.+?)} GOOGLE_COUNT_RESULT = %r{Results 1<\/b> - 10<\/b> of about (.*)<\/b> for} GOOGLE_DEF_RESULT = %r{

(Web definitions for .*?)
(.*?)
(.*?)\s-\s+
=> use the google calculator to find the answer to " when "gdef" "gdef => use the google define mechanism to find a definition of " + when "gtime" + "gtime => use the google clock to find the current time at " when "wp" "wp [] => search for on Wikipedia. You can select a national to only search the national Wikipedia" when "unpedia" @@ -70,10 +73,11 @@ class SearchPlugin < Plugin 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) @@ -89,16 +93,21 @@ class SearchPlugin < Plugin 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 @@ -230,7 +239,7 @@ class SearchPlugin < Plugin 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) @@ -265,8 +274,8 @@ plugin.map "lucky *words", :action => 'lucky', :threaded => true 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