tor_requests 0.3.2 → 0.4.0
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/Gemfile +1 -1
- data/README.rdoc +14 -4
- data/VERSION +1 -1
- data/lib/tor/configuration.rb +7 -0
- data/lib/tor/http.rb +31 -2
- data/spec/configuration_spec.rb +13 -0
- data/spec/http_spec.rb +25 -0
- data/spec/integration_spec.rb +1 -0
- data/spec/spec_helper.rb +1 -0
- data/tor_requests.gemspec +11 -11
- metadata +18 -18
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -11,14 +11,15 @@
|
|
11
11
|
res = Tor::HTTP.get("google.com", "/", 80)
|
12
12
|
p res.code
|
13
13
|
p res.body
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
res
|
14
|
+
|
15
|
+
res = Tor::HTTP.post('posttestserver.com', {"var" => "variable"}, '/post.php?dir=example', 80)
|
16
|
+
p res.code
|
17
|
+
p res.body
|
18
18
|
|
19
19
|
OR
|
20
20
|
|
21
21
|
res = Tor::HTTP.get(URI('http://google.com/'))
|
22
|
+
res = Tor::HTTP.post(URI('http://posttestserver.com/post.php?dir=example'), {"var" => "variable"})
|
22
23
|
|
23
24
|
The default port configuration is 9050 and ip configuration is 127.0.0.1. If you need to change configuration, you can use:
|
24
25
|
|
@@ -27,6 +28,14 @@ The default port configuration is 9050 and ip configuration is 127.0.0.1. If you
|
|
27
28
|
config.port = 9050
|
28
29
|
end
|
29
30
|
|
31
|
+
You can also set additional custom header fields, e.g. User-Agent:
|
32
|
+
|
33
|
+
Tor.configure do |config|
|
34
|
+
config.add_header('User-Agent', 'Netscape 2.0')
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
|
30
39
|
== Contributing to tor_requests
|
31
40
|
|
32
41
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
@@ -42,3 +51,4 @@ The default port configuration is 9050 and ip configuration is 127.0.0.1. If you
|
|
42
51
|
Copyright (c) 2012 Bruno Ghisi. See LICENSE.txt for
|
43
52
|
further details.
|
44
53
|
|
54
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/tor/configuration.rb
CHANGED
data/lib/tor/http.rb
CHANGED
@@ -15,12 +15,41 @@ module Tor
|
|
15
15
|
port = uri_or_host.port
|
16
16
|
end
|
17
17
|
Net::HTTP.SOCKSProxy(Tor.configuration.ip, Tor.configuration.port).start(host, port) do |http|
|
18
|
-
|
18
|
+
request = Net::HTTP::Get.new(path || uri_or_host.path)
|
19
|
+
Tor.configuration.headers.each do |header, value|
|
20
|
+
request.delete(header)
|
21
|
+
request.add_field(header, value)
|
22
|
+
end
|
23
|
+
|
24
|
+
res = http.request(request);
|
19
25
|
end
|
20
26
|
res
|
21
27
|
end
|
22
28
|
|
29
|
+
def self.post(uri_or_host, post_options = {}, path = nil, port = nil)
|
30
|
+
res = ""
|
31
|
+
host = nil
|
32
|
+
if path
|
33
|
+
host = uri_or_host
|
34
|
+
else
|
35
|
+
host = uri_or_host.host
|
36
|
+
port = uri_or_host.port
|
37
|
+
path = uri_or_host.request_uri
|
38
|
+
end
|
39
|
+
|
40
|
+
Net::HTTP.SOCKSProxy(Tor.configuration.ip, Tor.configuration.port).start(host, port) do |http|
|
41
|
+
request = Net::HTTP::Post.new(path)
|
42
|
+
request.set_form_data(post_options)
|
43
|
+
Tor.configuration.headers.each do |header, value|
|
44
|
+
request.delete(header)
|
45
|
+
request.add_field(header, value)
|
46
|
+
end
|
47
|
+
res = http.request(request)
|
48
|
+
end
|
49
|
+
res
|
50
|
+
end
|
51
|
+
|
23
52
|
end
|
24
53
|
|
25
54
|
end
|
26
|
-
|
55
|
+
|
data/spec/configuration_spec.rb
CHANGED
@@ -7,11 +7,24 @@ describe "Configure" do
|
|
7
7
|
Tor::Configuration.new.port.should eq(9050)
|
8
8
|
end
|
9
9
|
|
10
|
+
it "default headers" do
|
11
|
+
Tor::Configuration.new.headers.should eq(Hash.new)
|
12
|
+
end
|
13
|
+
|
14
|
+
|
10
15
|
it "default ip" do
|
11
16
|
Tor::Configuration.new.ip.should eq('127.0.0.1')
|
12
17
|
end
|
13
18
|
|
14
19
|
context "initialize" do
|
20
|
+
|
21
|
+
it "default headers" do
|
22
|
+
config = Tor::Configuration.new
|
23
|
+
config.add_header('User-Agent', 'Netscape 2.0')
|
24
|
+
config.headers.should eq({'User-Agent' => 'Netscape 2.0'})
|
25
|
+
end
|
26
|
+
|
27
|
+
|
15
28
|
it "default port" do
|
16
29
|
config = Tor::Configuration.new
|
17
30
|
config.port = 99
|
data/spec/http_spec.rb
CHANGED
@@ -28,4 +28,29 @@ describe "Http" do
|
|
28
28
|
|
29
29
|
end
|
30
30
|
|
31
|
+
describe "post" do
|
32
|
+
|
33
|
+
context "with invalid parameters" do
|
34
|
+
it "does not work" do
|
35
|
+
expect { Tor::HTTP.post("google.com") }.to raise_error
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "with URI parameter" do
|
40
|
+
it "works" do
|
41
|
+
res = Tor::HTTP.post(URI('http://posttestserver.com/post.php?dir=example'), {"q" => "query", "var" => "variable"})
|
42
|
+
res.code.should eq("200")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "with host, path and port parameters" do
|
47
|
+
it "works" do
|
48
|
+
res = Tor::HTTP.post('posttestserver.com', {"q" => "query", "var" => "variable"}, '/post.php?dir=example', 80)
|
49
|
+
res.code.should eq("200")
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
31
56
|
end
|
data/spec/integration_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/tor_requests.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "tor_requests"
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
11
|
+
s.authors = ["Bruno Ghisi"]
|
12
|
+
s.date = "2013-07-20"
|
13
|
+
s.description = "Create anonymously requests through Tor network"
|
14
|
+
s.email = "brunogh@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -36,11 +36,11 @@ Gem::Specification.new do |s|
|
|
36
36
|
"spec/spec_helper.rb",
|
37
37
|
"tor_requests.gemspec"
|
38
38
|
]
|
39
|
-
s.homepage =
|
40
|
-
s.licenses = [
|
41
|
-
s.require_paths = [
|
42
|
-
s.rubygems_version =
|
43
|
-
s.summary =
|
39
|
+
s.homepage = "http://github.com/brunogh/tor_requests"
|
40
|
+
s.licenses = ["MIT"]
|
41
|
+
s.require_paths = ["lib"]
|
42
|
+
s.rubygems_version = "1.8.15"
|
43
|
+
s.summary = "Create anonymously requests through Tor network"
|
44
44
|
|
45
45
|
if s.respond_to? :specification_version then
|
46
46
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tor_requests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-07-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70124356799160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70124356799160
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rdoc
|
27
|
-
requirement: &
|
27
|
+
requirement: &70124356798520 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '3.12'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70124356798520
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70124356797860 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70124356797860
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70124356797300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.8.3
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70124356797300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &70124356796760 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70124356796760
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: socksify
|
71
|
-
requirement: &
|
71
|
+
requirement: &70124356796120 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70124356796120
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: socksify
|
82
|
-
requirement: &
|
82
|
+
requirement: &70124356795540 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70124356795540
|
91
91
|
description: Create anonymously requests through Tor network
|
92
92
|
email: brunogh@gmail.com
|
93
93
|
executables: []
|
@@ -129,7 +129,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
129
|
version: '0'
|
130
130
|
segments:
|
131
131
|
- 0
|
132
|
-
hash: -
|
132
|
+
hash: -1434211554258270422
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
134
|
none: false
|
135
135
|
requirements:
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
|
-
rubygems_version: 1.8.
|
141
|
+
rubygems_version: 1.8.15
|
142
142
|
signing_key:
|
143
143
|
specification_version: 3
|
144
144
|
summary: Create anonymously requests through Tor network
|