phantom_client 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/phantom_client CHANGED
@@ -26,4 +26,4 @@ if url == nil
26
26
  end
27
27
 
28
28
  client = PhantomJSProxy::PhantomJSClient.new(proxy_list, hmac_key, nil, PhantomJSProxy::PhantomJSClientConnection.new)
29
- puts client.get_body(url, {:imageOnly => false, :withIframes => true})
29
+ puts client.get_body(url, {"imageOnly" => false, "withIframes" => true})
@@ -1,6 +1,7 @@
1
1
  require 'net/http'
2
2
  require 'uri'
3
3
  require 'hmac-md5'
4
+ require "base64"
4
5
 
5
6
  module PhantomJSProxy
6
7
  class DummyResponse
@@ -47,13 +48,8 @@ module PhantomJSProxy
47
48
  get(addr, options).body
48
49
  end
49
50
 
50
- def get(addr, options=nil)
51
- url = URI.parse(addr)
52
- req = Net::HTTP::Get.new(url.path)
53
- req['User-Agent'] = "PhantomJSClient"
54
- if /\?/.match(addr)
55
- req.body = addr.split('?')[1]
56
- end
51
+ def get(addr_in, options=nil)
52
+ addr,url, req = generate_request(addr_in)
57
53
 
58
54
  if options && options['imageOnly']
59
55
  req['Get-Page-As-Image'] = options['imageOnly']
@@ -86,7 +82,25 @@ module PhantomJSProxy
86
82
  req['Hmac-Time'] = t
87
83
  logger.info "Encode: #{addr} to #{req['Hmac-Key']}"
88
84
  end
89
-
85
+
86
+ def generate_request(addr)
87
+ begin
88
+ url = URI.parse(addr)
89
+ req = Net::HTTP::Get.new(url.path)
90
+ req['User-Agent'] = "PhantomJSClient"
91
+ req.body = url.query
92
+ return addr, url, req
93
+ rescue URI::InvalidURIError
94
+ #this now means we got a bad url
95
+ addr_out = "http://phantomProxy.get/"
96
+ url = URI.parse(addr_out)
97
+ req = Net::HTTP::Get.new(url.path)
98
+ req['User-Agent'] = "PhantomJSClient"
99
+ req.body = "address="+Base64.encode64(addr)
100
+ return addr_out, url, req
101
+ end
102
+ end
103
+
90
104
  def do_get(url, req, count)
91
105
  element = get_proxy()
92
106
  if element[:addr] && element[:port]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phantom_client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- - 3
10
- version: 1.2.3
9
+ - 5
10
+ version: 1.2.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Sudmann
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-28 00:00:00 +02:00
18
+ date: 2013-04-23 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency