]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
search plugin: compactify results when only one of them is returned
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Wed, 23 May 2007 18:46:25 +0000 (18:46 +0000)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Wed, 23 May 2007 18:46:25 +0000 (18:46 +0000)
data/rbot/plugins/search.rb

index e94d915baf58759b31a221030e9bce988d76bb11..da6881f4d1de3a4d3114e7d7eb8b461f21e5316e 100644 (file)
@@ -64,6 +64,10 @@ class SearchPlugin < Plugin
 
     hits = params[:hits] || @bot.config['google.hits']
 
+    first_pars = params[:firstpar] || @bot.config['google.first_par']
+
+    single = (hits == 1 and first_pars == 1)
+
     begin
       wml = @bot.httputil.get(url)
       raise unless wml
@@ -82,12 +86,16 @@ class SearchPlugin < Plugin
       t = Utils.decode_html_entities res[2].gsub(filter, '').strip
       u = URI.unescape res[1]
       urls.push(u)
-      "#{n}. #{Bold}#{t}#{Bold}: #{u}"
+      single ? u : "#{n}. #{Bold}#{t}#{Bold}: #{u}"
     }.join(" | ")
 
-    m.reply "Results for #{what}: #{results}", :split_at => /\s+\|\s+/
+    # If we return a single, full result, change the output to a more compact representation
+    if single
+      m.reply "Result for %s: %s -- %s" % [what, results, Utils.get_first_pars(urls, first_pars)]
+      return
+    end
 
-    first_pars = params[:firstpar] || @bot.config['google.first_par']
+    m.reply "Results for #{what}: #{results}", :split_at => /\s+\|\s+/
 
     return unless first_pars > 0