From bcacf025a0d2cbba181ad3e55fba30926286f9c8 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Tue, 6 Feb 2007 16:46:54 +0000 Subject: Move code to get first par from a series of urls from search plugin to Utils, and use it in dict plugin too --- data/rbot/plugins/dict.rb | 10 +++++++++- data/rbot/plugins/search.rb | 28 ++++++---------------------- 2 files changed, 15 insertions(+), 23 deletions(-) (limited to 'data/rbot/plugins') diff --git a/data/rbot/plugins/dict.rb b/data/rbot/plugins/dict.rb index d9fafa5c..a948fd06 100644 --- a/data/rbot/plugins/dict.rb +++ b/data/rbot/plugins/dict.rb @@ -22,6 +22,7 @@ class DictPlugin < Plugin super @dmurl = "http://www.demauroparavia.it/" @dmwapurl = "http://wap.demauroparavia.it/index.php?lemma=%s" + @dmwaplemma = "http://wap.demauroparavia.it/lemma.php?ID=%s" @oxurl = "http://www.askoxford.com/concise_oed/%s" @chambersurl = "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st" end @@ -59,16 +60,23 @@ class DictPlugin < Plugin end entries = xml.scan(DEMAURO_LEMMA) text = word + urls = [] if !entries.assoc(word) and !entries.assoc(word.upcase) return false if justcheck text += " not found. Similar words" end return true if justcheck text += ": " + n = 0 text += entries[0...5].map { |ar| - "#{ar[0]} - #{ar[1].gsub(/<\/?em>/,'')}: #{@dmurl}#{ar[2]}" + n += 1 + urls << @dmwaplemma % ar[2] + "#{n}. #{Bold}#{ar[0]}#{Bold} - #{ar[1].gsub(/<\/?em>/,'')}: #{@dmurl}#{ar[2]}" }.join(" | ") m.reply text + + Utils.get_first_pars urls, 5, :http_util => @bot.httputil, :message => m + end def is_italian?(word) diff --git a/data/rbot/plugins/search.rb b/data/rbot/plugins/search.rb index e94661b0..a10853bf 100644 --- a/data/rbot/plugins/search.rb +++ b/data/rbot/plugins/search.rb @@ -1,3 +1,7 @@ +# vim: set sw=2 et: +# +# TODO: use lr=lang_ or whatever is most appropriate to let google know +# it shouldn't use the bot's location to find the preferred language require 'uri' Net::HTTP.version_1_2 @@ -70,28 +74,8 @@ class SearchPlugin < Plugin first_pars = params[:firstpar] || @bot.config['google.first_par'] - idx = 0 - while first_pars > 0 and urls.length > 0 - url.replace(urls.shift) - idx += 1 - - # FIXME what happens if some big file is returned? We should share - # code with the url plugin to only retrieve partial file content! - xml = @bot.httputil.get_cached(url) - if xml.nil? - debug "Unable to retrieve #{url}" - next - end - par = Utils.ircify_first_html_par(xml) - if par.empty? - debug "No first par found\n#{xml}" - # FIXME only do this if the 'url' plugin is loaded - par = @bot.plugins['url'].get_title_from_html(xml) - next if par.empty? - end - m.reply "[#{idx}] #{par}", :overlong => :truncate - first_pars -=1 - end + Utils.get_first_pars urls, first_pars, :http_util => @bot.httputil, :message => m + end def wikipedia(m, params) -- cgit v1.2.3