super\r
@dmurl = "http://www.demauroparavia.it/"\r
@dmwapurl = "http://wap.demauroparavia.it/index.php?lemma=%s"\r
+ @dmwaplemma = "http://wap.demauroparavia.it/lemma.php?ID=%s"\r
@oxurl = "http://www.askoxford.com/concise_oed/%s"\r
@chambersurl = "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st"\r
end\r
end\r
entries = xml.scan(DEMAURO_LEMMA)\r
text = word\r
+ urls = []\r
if !entries.assoc(word) and !entries.assoc(word.upcase)\r
return false if justcheck\r
text += " not found. Similar words"\r
end\r
return true if justcheck\r
text += ": "\r
+ n = 0\r
text += entries[0...5].map { |ar|\r
- "#{ar[0]} - #{ar[1].gsub(/<\/?em>/,'')}: #{@dmurl}#{ar[2]}"\r
+ n += 1\r
+ urls << @dmwaplemma % ar[2]\r
+ "#{n}. #{Bold}#{ar[0]}#{Bold} - #{ar[1].gsub(/<\/?em>/,'')}: #{@dmurl}#{ar[2]}"\r
}.join(" | ")\r
m.reply text\r
+\r
+ Utils.get_first_pars urls, 5, :http_util => @bot.httputil, :message => m\r
+\r
end\r
\r
def is_italian?(word)\r
+# 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
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)
end
return txt
end
+
+ # Get the first pars of the first _count_ _urls_.
+ # The pages are downloaded using an HttpUtil service passed as _opts_ :http_util,
+ # and echoed as replies to the IRC message passed as _opts_ :message.
+ #
+ def Utils.get_first_pars(urls, count, opts={})
+ idx = 0
+ msg = opts[:message]
+ while count > 0 and urls.length > 0
+ url = 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 = opts[:http_util].get_cached(url)
+ if xml.nil?
+ debug "Unable to retrieve #{url}"
+ next
+ end
+ debug "Retrieved #{url}"
+ debug "\t#{xml}"
+ 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
+ # TODO even better, put the code here
+ # par = @bot.plugins['url'].get_title_from_html(xml)
+ next if par.empty?
+ end
+ msg.reply "[#{idx}] #{par}", :overlong => :truncate if msg
+ count -=1
+ end
+ end
+
+
end
end