summaryrefslogtreecommitdiff
path: root/data/rbot/plugins
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-02-06 16:46:54 +0000
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2007-02-06 16:46:54 +0000
commitbcacf025a0d2cbba181ad3e55fba30926286f9c8 (patch)
tree587e32335e8c2e1ddfc3393ebceb136653bf0638 /data/rbot/plugins
parentd845911e2e16734f1dffb9f5747bd87233824204 (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/plugins')
-rw-r--r--data/rbot/plugins/dict.rb10
-rw-r--r--data/rbot/plugins/search.rb28
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)