summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2006-07-24 12:32:53 +0000
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2006-07-24 12:32:53 +0000
commit2a87bed49614f7cc16d92eecb8ddb63f60ab15ce (patch)
tree53659f957f946428b68e753018fdd3c14fe1ef3e
parentbca160cbbf64aeb56fb6729f2ea4d77e5821a31c (diff)
httputil get/head/get_cached now also accept strings and not just URIs
-rw-r--r--lib/rbot/httputil.rb28
1 files changed, 23 insertions, 5 deletions
diff --git a/lib/rbot/httputil.rb b/lib/rbot/httputil.rb
index 19e2a31a..1a43c185 100644
--- a/lib/rbot/httputil.rb
+++ b/lib/rbot/httputil.rb
@@ -133,7 +133,13 @@ class HttpUtil
# simple get request, returns (if possible) response body following redirs
# and caching if requested
# if a block is given, it yields the urls it gets redirected to
- def get(uri, readtimeout=10, opentimeout=5, max_redir=@bot.config["http.max_redir"], cache=false)
+ def get(uri_or_str, readtimeout=10, opentimeout=5, max_redir=@bot.config["http.max_redir"], cache=false)
+ if uri_or_str.class <= URI
+ uri = uri_or_str
+ else
+ uri = URI.parse(uri_or_str.to_s)
+ end
+
proxy = get_proxy(uri)
proxy.open_timeout = opentimeout
proxy.read_timeout = readtimeout
@@ -181,7 +187,13 @@ class HttpUtil
end
# just like the above, but only gets the head
- def head(uri, readtimeout=10, opentimeout=5, max_redir=@bot.config["http.max_redir"])
+ def head(uri_or_str, readtimeout=10, opentimeout=5, max_redir=@bot.config["http.max_redir"])
+ if uri_or_str.class <= URI
+ uri = uri_or_str
+ else
+ uri = URI.parse(uri_or_str.to_s)
+ end
+
proxy = get_proxy(uri)
proxy.open_timeout = opentimeout
proxy.read_timeout = readtimeout
@@ -215,9 +227,15 @@ class HttpUtil
# gets a page from the cache if it's still (assumed to be) valid
# TODO remove stale cached pages, except when called with noexpire=true
- def get_cached(uri, readtimeout=10, opentimeout=5,
+ def get_cached(uri_or_str, readtimeout=10, opentimeout=5,
max_redir=@bot.config['http.max_redir'],
noexpire=@bot.config['http.no_expire_cache'])
+ if uri_or_str.class <= URI
+ uri = uri_or_str
+ else
+ uri = URI.parse(uri_or_str.to_s)
+ end
+
k = uri.to_s
if !@cache.key?(k)
remove_stale_cache unless noexpire
@@ -239,8 +257,8 @@ class HttpUtil
h = head(uri, readtimeout, opentimeout, max_redir)
if h.key?('last-modified')
if Time.httpdate(h['last-modified']) == @cache[k][:last_mod]
- if resp.key?('date')
- @cache[k][:last_use] = Time.httpdate(resp['date'])
+ if h.key?('date')
+ @cache[k][:last_use] = Time.httpdate(h['date'])
else
@cache[k][:last_use] = now
end