diff options
Diffstat (limited to 'lib/rbot/plugins/wserver.rb')
-rw-r--r-- | lib/rbot/plugins/wserver.rb | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/lib/rbot/plugins/wserver.rb b/lib/rbot/plugins/wserver.rb deleted file mode 100644 index e1fe10bd..00000000 --- a/lib/rbot/plugins/wserver.rb +++ /dev/null @@ -1,75 +0,0 @@ -require 'net/http' -require 'uri' -Net::HTTP.version_1_2 - -class WserverPlugin < Plugin - def help(plugin, topic="") - "wserver <uri> => try and determine what webserver <uri> is using" - end - def privmsg(m) - unless(m.params && m.params =~ /^\S+$/) - m.reply "incorrect usage: " + help(m.plugins) - return - end - - redirect_count = 0 - hostname = m.params.dup - hostname = "http://#{hostname}" unless hostname =~ /:\/\// - begin - if(redirect_count > 3) - m.reply "cowardly refusing to follow more than 3 redirects" - return - end - - begin - uri = URI.parse(hostname) - rescue URI::InvalidURIError => err - m.reply "#{m.params} is not a valid URI" - return - end - - unless(uri) - m.reply "incorrect usage: " + help(m.plugin) - return - end - - http = @bot.httputil.get_proxy(uri) - http.open_timeout = 5 - - http.start {|http| - resp = http.head('/') - server = resp['Server'] - if(server && server.length > 0) - m.reply "#{uri.host} is running #{server}" - else - m.reply "couldn't tell what #{uri.host} is running" - end - - if(resp.code == "302" || resp.code == "301") - newloc = resp['location'] - newuri = URI.parse(newloc) - # detect and ignore incorrect redirects (to relative paths etc) - if (newuri.host != nil) - if(uri.host != newuri.host) - m.reply "#{uri.host} redirects to #{newuri.scheme}://#{newuri.host}" - raise resp['location'] - end - end - end - } - rescue TimeoutError => err - m.reply "timed out connecting to #{uri.host}:#{uri.port} :(" - return - rescue RuntimeError => err - redirect_count += 1 - hostname = err.message - retry - rescue StandardError => err - puts err - m.reply "couldn't connect to #{uri.host}:#{uri.port} :(" - return - end - end -end -plugin = WserverPlugin.new -plugin.register("wserver") |