tunnelblick 0.0.5 → 0.0.6
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.
- checksums.yaml +4 -4
- data/lib/tunnel_blick.rb +29 -20
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc3e6167cf01210b6feaec5ffebc749501876b83
|
4
|
+
data.tar.gz: 38d9e73b2c1a9e3a2afa1f46d6650353a6d10710
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c7f62780f49ba8cb5da03718e77b898366f79c2154d9c3c8dec4934a4abd3b562bcd6672973f3d1e97fd20b95a9fbf97e1b530fdeda802d11549c6861096d19
|
7
|
+
data.tar.gz: 2f8b9fd8f188da55978d7a1de510ed592041bdd89660698d278b4904022dba5bb702128ed7103815e5f53ba17e47db7446be827e5556882902f062cc6de9f44d
|
data/lib/tunnel_blick.rb
CHANGED
@@ -3,14 +3,13 @@ require 'flex_console'
|
|
3
3
|
require 'flex_pg'
|
4
4
|
require 'open-uri'
|
5
5
|
require 'rb-scpt'
|
6
|
-
|
6
|
+
require_relative 'tunnel_blick/express_vpn'
|
7
7
|
|
8
8
|
include Appscript
|
9
9
|
|
10
10
|
class TunnelBlick
|
11
11
|
|
12
|
-
attr_accessor :tunnel, :module, :d_id, :
|
13
|
-
:doms, :allowance
|
12
|
+
attr_accessor :tunnel, :module, :d_id, :max_requests, :arguments, :doms, :allowance
|
14
13
|
attr_reader :database
|
15
14
|
|
16
15
|
def initialize (database = Dummy.new('dummy database'))
|
@@ -30,7 +29,7 @@ class TunnelBlick
|
|
30
29
|
def add_websites (*websites)
|
31
30
|
websites.each { |w|
|
32
31
|
w.tunnel = self
|
33
|
-
w.allowance = allowance
|
32
|
+
w.allowance = @allowance
|
34
33
|
}
|
35
34
|
end
|
36
35
|
|
@@ -62,33 +61,43 @@ class TunnelBlick
|
|
62
61
|
def reallocate
|
63
62
|
disconnect
|
64
63
|
@allowance = 0
|
65
|
-
connect_smart(max_requests, arguments,
|
64
|
+
connect_smart(@max_requests, @arguments, *@doms)
|
66
65
|
end
|
67
66
|
|
68
|
-
def connect_smart (limit, args = {}, *
|
67
|
+
def connect_smart (limit, args = {}, *websites)
|
69
68
|
@allowance = 0
|
70
|
-
blocked =
|
69
|
+
blocked = false
|
70
|
+
domains = websites.map {|ws|
|
71
|
+
extract = ws.home_url.scan(/[^\/]+/)
|
72
|
+
dom = extract.size == 1 ? extract[0] : extract[1]
|
73
|
+
database[:websites][domain_url: dom][:id]
|
74
|
+
}
|
71
75
|
|
72
|
-
|
73
|
-
database.disconnect
|
74
|
-
puts @my_ip = open('http://icanhazip.com').read.strip if my_ip.nil?
|
76
|
+
puts @my_ip = open('http://icanhazip.com').read.strip if @my_ip.nil?
|
75
77
|
|
78
|
+
while @allowance < 1 || blocked
|
76
79
|
blocked = false
|
80
|
+
database.disconnect
|
77
81
|
connect_rand(3, args) unless connected?
|
78
82
|
|
79
|
-
allowances = domains.map { |dom|
|
80
|
-
limit - database[:browser_requests].where(ip_address: my_ip, domain: dom).count
|
81
|
-
}
|
82
|
-
|
83
83
|
domains.each { |dom|
|
84
|
-
result = database[:website_ip_status].where(public_ip: my_ip, website: dom, status: 'blocked').count
|
84
|
+
result = database[:website_ip_status].where(public_ip: @my_ip, website: dom, status: 'blocked').count
|
85
|
+
|
85
86
|
if result != 0
|
86
87
|
puts 'This ip is blocked'
|
87
88
|
blocked = true
|
88
89
|
end
|
89
90
|
}
|
90
|
-
puts
|
91
|
-
|
91
|
+
puts blocked
|
92
|
+
|
93
|
+
unless blocked
|
94
|
+
allowances = domains.map { |dom|
|
95
|
+
limit - database[:browser_requests].where(ip_address: @my_ip, domain: dom).count
|
96
|
+
}
|
97
|
+
puts @allowance = allowances.min
|
98
|
+
end
|
99
|
+
|
100
|
+
disconnect if blocked || @allowance < 0
|
92
101
|
end
|
93
102
|
|
94
103
|
@max_requests = limit
|
@@ -107,10 +116,10 @@ class TunnelBlick
|
|
107
116
|
unless connected?
|
108
117
|
puts 'connect_rand'
|
109
118
|
if args[:filter].nil?
|
110
|
-
tunnel.connect(vpn_configs.sample)
|
119
|
+
@tunnel.connect(vpn_configs.sample)
|
111
120
|
else
|
112
121
|
puts shortlist = config_filter(args[:filter])
|
113
|
-
tunnel.connect(shortlist.sample)
|
122
|
+
@tunnel.connect(shortlist.sample)
|
114
123
|
end
|
115
124
|
|
116
125
|
count = 0
|
@@ -136,7 +145,7 @@ class TunnelBlick
|
|
136
145
|
sleep(3)
|
137
146
|
puts @my_ip = open('http://icanhazip.com').read.strip
|
138
147
|
|
139
|
-
details.store(:public_ip, my_ip)
|
148
|
+
details.store(:public_ip, @my_ip)
|
140
149
|
|
141
150
|
sleep(6)
|
142
151
|
database[:ip_addresses].upsert(details)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tunnelblick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugene Lai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facets
|
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
81
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.
|
82
|
+
rubygems_version: 2.6.1
|
83
83
|
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: A controller for Tunnelblick
|