proxy_rotator 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c68a50b88de448215236373db36d712d488503e6
4
- data.tar.gz: '0775295c43ab495f8fb3428dca36bc049be24050'
3
+ metadata.gz: 407f7b7ae00be49b2f73d019a696a208db168cf0
4
+ data.tar.gz: c23be0f0fd5937edbe6d4cf2f9c3c3d5fb72e8af
5
5
  SHA512:
6
- metadata.gz: 4976bbbf73c8326b376bcb1ba7c8b9f37b9fabab5fd4d1d119727089df2e0a015e512453720f359b63890317e722957cd18a7abb9a6c7695810653f5a4a69140
7
- data.tar.gz: 204617b3ebb8a20510fc929bd03a7f65f69201c99777c065f34cc3c988aaab791d958bb389e9f6dbc41f5e502db87e06bce5f439e9231227f3a5477bc70e2d73
6
+ metadata.gz: f2f24dce1666c1fbb436c348a2082f5a0c5ae0c03d9ae50a65b99c336a65aa5626b71c3dcd487c1e6eda73b21b814fbf33878e42a29f8e3c8acbf1106289551f
7
+ data.tar.gz: c8ce3213d0e542c23854d5f6c06acf99ffe2a90f7acad80175acf5207c3b92b871a5d8c2859c5c30e2450a8497847bb8bf27eb10a3f58728411bc1c01889618e
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- proxy_rotator (0.1.0)
4
+ proxy_rotator (0.1.2)
5
5
  json
6
6
  rest-client
7
7
 
@@ -13,7 +13,7 @@ GEM
13
13
  unf (>= 0.0.5, < 1.0.0)
14
14
  http-cookie (1.0.3)
15
15
  domain_name (~> 0.5)
16
- json (1.8.3)
16
+ json (2.1.0)
17
17
  mime-types (3.1)
18
18
  mime-types-data (~> 3.2015)
19
19
  mime-types-data (3.2016.0521)
data/README.md CHANGED
@@ -42,8 +42,48 @@ end
42
42
  my_proxy = ProxyRotator.rotate_remote
43
43
  ```
44
44
 
45
+ Passing API parameters
46
+ ```ruby
47
+ get: true/false Proxy supports GET requests
48
+ post true/false Proxy supports POST requests
49
+ cookies true/false Proxy supports cookies
50
+ referer true/false Proxy supports referer header
51
+ userAgent true/false Proxy supports user-agent header
52
+ port integer Return only proxies with specified port
53
+ city string Return only proxies with specified city
54
+ state string Return only proxies with specified state
55
+ country string Return only proxies with specified country
56
+ xml true/false Response will be in XML instead of jSON
57
+ ```
58
+
59
+ Example
60
+ ```ruby
61
+ config = {
62
+ :get => true,
63
+ :port => 8080,
64
+ :city => 'New York',
65
+ :state => 'NY',
66
+ :country => 'US'
67
+ }
68
+
69
+ my_proxy = ProxyRotator.rotate_remote(config)
70
+ ```
71
+
72
+ Get proxy information
73
+
74
+ ```ruby
75
+ proxy_info = ProxyRotator.describe_remote(config)
76
+ ```
77
+
45
78
  ### Load proxy list from a file
46
79
 
80
+ Example :
81
+
82
+ ```ruby
83
+ http://username:password@1.2.3.4:5678
84
+ http://1.2.3.4:5678
85
+ ```
86
+
47
87
  ```ruby
48
88
  ProxyRotator.load_file('/your/proxy-list.txt')
49
89
  my_proxy = ProxyRotator.rotate
@@ -48,25 +48,42 @@ module ProxyRotator
48
48
  end
49
49
  end
50
50
 
51
- def self.rotate_remote
51
+ def self.base_url(config={})
52
52
  url = ProxyRotator.configuration.base_url + "?apiKey=" + ProxyRotator.configuration.api_key
53
- response = RestClient.get(url)
54
- json = JSON.parse(response.body)
53
+ url = url + "&" + config.to_a.map { |x| "#{x[0]}=#{x[1]}" }.join("&") unless config.empty?
54
+
55
+ return url
56
+ end
57
+
58
+ def self.rotate_remote(config={})
59
+ url = self.base_url(config)
60
+
61
+ json = self.get_proxyrotator_proxy(url)
55
62
  proxy = json["proxy"]
56
63
  return "http://#{proxy}" unless proxy.nil?
57
64
 
58
65
  return nil
59
66
  end
60
67
 
61
- def self.rotate_first_then_remote(check_first=false)
68
+ def self.describe_remote(config={})
69
+ url = self.base_url(config)
70
+ self.get_proxyrotator_proxy(url)
71
+ end
72
+
73
+ def self.get_proxyrotator_proxy(url)
74
+ response = RestClient.get(url)
75
+ JSON.parse(response.body)
76
+ end
77
+
78
+ def self.rotate_first_then_remote(check_first=false, config={})
62
79
  result = self.rotate(check_first)
63
- result = self.rotate_remote unless !result.nil?
80
+ result = self.rotate_remote(config) unless !result.nil?
64
81
 
65
82
  result
66
83
  end
67
84
 
68
- def self.remote_first_then_rotate(check_first=false)
69
- result = self.rotate_remote
85
+ def self.remote_first_then_rotate(check_first=false, config={})
86
+ result = self.rotate_remote(config)
70
87
  result = self.rotate(check_first) unless !result.nil?
71
88
 
72
89
  result
@@ -1,3 +1,3 @@
1
1
  module ProxyRotator
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proxy_rotator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bherly Novrandy