Strawman
A ruby gem which allows you to proxy EventMachine HTTP GET requests through glype proxies on the net.
RDoc: rdoc.info/projects/MattColyer/strawman
Getting started
# make sure you have gemcutter.org repos enabled
gem install strawman
A simple example
require 'rubygems'
require 'eventmachine'
require 'em-http'
require 'strawman'
require 'logger'
log = Logger.new(STDOUT)
log.level = Logger::INFO
EventMachine.run {
proxy_list = Strawman::ProxyList.new("http://whatismyip.org")
proxy_list.load("proxies") if File.exist?("proxies")
sources_set = proxy_list.add_sources([Strawman::TwitterSource.new("proxy_sites")])
sources_set.callback{
proxy_list.save("proxies")
request = Strawman::HttpRequest.new(proxy_list, 'http://goingtorain.com/')
request.callback {
http = request.get
http.callback {
log.info http.response_header.inspect
log.info http.response
EventMachine.stop
}
}
request.errback{
log.error "No available proxies"
}
}
sources_set.errback{
log.error "Something went wrong"
EventMachine.stop
}
}
TODO
Patches happily accepted, please open a github ticket and attach the patch.
-
Undo link encoding if Glype adds it
-
Strip annoying stuff that Glype adds as a footer and header
-
Implement other proxy sources
Limitations
-
Cookies from the proxied page are returned like this: c[PATH]=VALUE; path=/“* Note the letter c is configurable on the Glype proxy so it might not always b this.
-
Cookies are sent like this: :head => => {“c[PATH]” => VALUE} Again note that the letter c is configurable on the Glype proxy.
-
Cookies are currently not reliable as they can be enabled or disabled by each Glype install (the default is to enable though).
-
SSL is not reliable. Some proxies throw up a warning while others let it through. Also it’s not secure, by it’s very nature this library is introducing a MITM. Don’t use it for sensitive things.
-
PUT and DELETE can’t work do to the way Glype is implemented.