+ # return zeroclick search results
+ links, texts = [], []
+ xml.elements.each("//Results/Result/FirstURL") { |element|
+ links << element.text
+ break if links.size == hits
+ }
+ return if links.empty?
+
+ xml.elements.each("//Results/Result/Text") { |element|
+ texts << " #{element.text}"
+ break if links.size == hits
+ }
+ # TODO see treatment of `single` in google search
+
+ single ||= (links.length == 1)
+ pretty = []
+ links.each_with_index do |u, i|
+ t = texts[i]
+ pretty.push("%{n}%{b}%{t}%{b}%{sep}%{u}" % {
+ :n => (single ? "" : "#{i}. "),
+ :sep => (single ? " -- " : ": "),
+ :b => Bold, :t => t, :u => u
+ })
+ end
+
+ result_string = pretty.join(" | ")
+
+ # If we return a single, full result, change the output to a more compact representation
+ if single
+ fp = first_pars > 0 ? " -- #{Utils.get_first_pars(links, first_pars)}" : ""
+ m.reply("Result for %{what}: %{string}%{fp}" % {
+ :what => what, :string => result_string, :fp => fp
+ }, :overlong => :truncate)
+ return
+ end
+
+ m.reply "Results for #{what}: #{result_string}", :split_at => /\s+\|\s+/
+
+ return unless first_pars > 0
+
+ Utils.get_first_pars urls, first_pars, :message => m