diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2007-02-06 16:46:54 +0000 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2007-02-06 16:46:54 +0000 |
commit | bcacf025a0d2cbba181ad3e55fba30926286f9c8 (patch) | |
tree | 587e32335e8c2e1ddfc3393ebceb136653bf0638 /data/rbot | |
parent | d845911e2e16734f1dffb9f5747bd87233824204 (diff) |
Move code to get first par from a series of urls from search plugin to Utils, and use it in dict plugin too
Diffstat (limited to 'data/rbot')
-rw-r--r-- | data/rbot/plugins/dict.rb | 10 | ||||
-rw-r--r-- | data/rbot/plugins/search.rb | 28 |
2 files changed, 15 insertions, 23 deletions
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_<code> 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) |