qbt_client 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +5 -5
- data/lib/qbt_client.rb +2 -0
- data/lib/qbt_client/version.rb +1 -1
- data/lib/qbt_client/web_ui.rb +37 -3
- data/qbt_client.gemspec +1 -0
- data/spec/lib/qbt_client/web_ui_spec.rb +44 -2
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19603f9f387f46f6042de088397e2f79a0fd458c
|
4
|
+
data.tar.gz: f5080d278e403119bdccac72968f006da73831b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3366cbdb34f1f6ee4a635a025cfa8d0cc6ec7394c278ad37569645a7296ed06491bdbea3124f7b3d579066d444b25522a3df0aec56e07094e2a6b383b9485b7
|
7
|
+
data.tar.gz: f54b45c0fa6e33f3e3b237d4137473931da3925e2c52920e213af0318f710ac7ac35c4b15cfbfec0157f6ddbe8cae517a98d3d00b28b106f6639f9db8b4e5bbb
|
data/CHANGES.md
CHANGED
@@ -9,15 +9,15 @@ Update client to work with qBitTorrent 3.3.4 WebUI changes
|
|
9
9
|
- `/json/` url paths have changed to `/query/`
|
10
10
|
- `/command/pauseall` has changed to `/command/pauseAll` (all paths are case sensitive)
|
11
11
|
- `/command/resumeall` has changed to `/command/resumeAll`
|
12
|
-
- `/command/getTorrentDlLimit
|
12
|
+
- `/command/getTorrentDlLimit` changed to `/command/getTorrentsDlLimit`
|
13
13
|
- `hash` option changed to `hashes` option
|
14
|
-
- `/command/setTorrentDlLimit
|
14
|
+
- `/command/setTorrentDlLimit` changed to `/command/setTorrentsDlLimit`
|
15
15
|
- `hash` option changed to `hashes` option
|
16
|
-
- `/command/getTorrentUpLimit
|
16
|
+
- `/command/getTorrentUpLimit` changed to `/command/getTorrentsUpLimit`
|
17
17
|
- `hash` option changed to `hashes` option
|
18
|
-
- `/command/setTorrentUpLimit
|
18
|
+
- `/command/setTorrentUpLimit` changed to `/command/setTorrentsUpLimit`
|
19
19
|
- `hash` option changed to `hashes` option
|
20
|
-
- Turn on network debug output when DEBUG env var is set
|
20
|
+
- Turn on network debug output when `DEBUG` env var is set
|
21
21
|
|
22
22
|
|
23
23
|
## v0.1.0
|
data/lib/qbt_client.rb
CHANGED
data/lib/qbt_client/version.rb
CHANGED
data/lib/qbt_client/web_ui.rb
CHANGED
@@ -32,7 +32,9 @@ module QbtClient
|
|
32
32
|
@sid = nil
|
33
33
|
|
34
34
|
#self.class.digest_auth(user, pass)
|
35
|
-
|
35
|
+
host = "#{ip}:#{port}"
|
36
|
+
self.class.base_uri host
|
37
|
+
self.class.headers "Referer" => host
|
36
38
|
authenticate
|
37
39
|
self.class.cookies.add_cookies(@sid)
|
38
40
|
end
|
@@ -56,14 +58,46 @@ module QbtClient
|
|
56
58
|
res = self.class.post('/login', options)
|
57
59
|
if res.success?
|
58
60
|
token = res.headers["Set-Cookie"]
|
59
|
-
raise "Login failed" if token.nil?
|
61
|
+
raise QbtClientError.new("Login failed: no SID (cookie) returned") if token.nil?
|
60
62
|
|
61
63
|
token = token.split(";")[0]
|
62
|
-
#token = token.split("SID=")[1]
|
63
64
|
@sid = token
|
65
|
+
else
|
66
|
+
raise QbtClientError.new(res)
|
64
67
|
end
|
65
68
|
end
|
66
69
|
|
70
|
+
###
|
71
|
+
# Get the application's API version
|
72
|
+
#
|
73
|
+
# Returns an integer
|
74
|
+
#
|
75
|
+
def api_version
|
76
|
+
self.class.format :json
|
77
|
+
self.class.get('/version/api').parsed_response
|
78
|
+
end
|
79
|
+
|
80
|
+
###
|
81
|
+
# Get the application's minimum API version
|
82
|
+
#
|
83
|
+
# Returns an integer
|
84
|
+
#
|
85
|
+
def api_min_version
|
86
|
+
self.class.format :json
|
87
|
+
self.class.get('/version/api_min').parsed_response
|
88
|
+
end
|
89
|
+
|
90
|
+
###
|
91
|
+
# Get the application's version
|
92
|
+
#
|
93
|
+
# Returns an integer
|
94
|
+
#
|
95
|
+
def qbittorrent_version
|
96
|
+
self.class.format :plain
|
97
|
+
self.class.get('/version/qbittorrent').parsed_response
|
98
|
+
#self.class.get('/version/qbittorrent')
|
99
|
+
end
|
100
|
+
|
67
101
|
###
|
68
102
|
# Get array of all torrents
|
69
103
|
#
|
data/qbt_client.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "httparty", "~> 0.7"
|
22
|
+
spec.add_runtime_dependency "json"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -8,6 +8,42 @@ describe WebUI do
|
|
8
8
|
sleep 1
|
9
9
|
end
|
10
10
|
|
11
|
+
context "#api_version" do
|
12
|
+
|
13
|
+
it "return the current API version" do
|
14
|
+
hash, name = given_a_paused_downloading_torrent
|
15
|
+
client = WebUI.new(test_ip, test_port, test_user, test_pass)
|
16
|
+
api_ver = client.api_version
|
17
|
+
|
18
|
+
puts " api version: #{api_ver}"
|
19
|
+
expect(api_ver.integer?).to eq true
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "#api_min_version" do
|
24
|
+
|
25
|
+
it "return the minimum API version" do
|
26
|
+
hash, name = given_a_paused_downloading_torrent
|
27
|
+
client = WebUI.new(test_ip, test_port, test_user, test_pass)
|
28
|
+
api_ver = client.api_min_version
|
29
|
+
|
30
|
+
puts " minimum api version: #{api_ver}"
|
31
|
+
expect(api_ver.integer?).to eq true
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "#qbittorrent_version" do
|
36
|
+
|
37
|
+
it "return the application version" do
|
38
|
+
hash, name = given_a_paused_downloading_torrent
|
39
|
+
client = WebUI.new(test_ip, test_port, test_user, test_pass)
|
40
|
+
app_ver = client.qbittorrent_version
|
41
|
+
|
42
|
+
puts " qbittorrent version: #{app_ver}"
|
43
|
+
expect(app_ver.start_with?('v')).to eq true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
11
47
|
context "#torrent_list" do
|
12
48
|
|
13
49
|
it "returns array of torrents" do
|
@@ -185,7 +221,9 @@ describe WebUI do
|
|
185
221
|
|
186
222
|
# Read preferences back and verify update
|
187
223
|
res = client.preferences
|
188
|
-
|
224
|
+
# NOTE: qBitTorrent now tacks on a trailing file separator to its
|
225
|
+
# save path if it doesn't already exist.
|
226
|
+
expect(res["save_path"]).to eq (save_path + "/")
|
189
227
|
|
190
228
|
# Set the save_path back to original value
|
191
229
|
res = client.set_preferences({ "save_path"=>orig_save_path })
|
@@ -221,7 +259,7 @@ describe WebUI do
|
|
221
259
|
client = WebUI.new(test_ip, test_port, test_user, test_pass)
|
222
260
|
res = client.pause_all
|
223
261
|
# Give app a chance to update
|
224
|
-
sleep
|
262
|
+
sleep 4
|
225
263
|
|
226
264
|
data = client.torrent_data hash
|
227
265
|
#print_response data
|
@@ -531,6 +569,10 @@ describe WebUI do
|
|
531
569
|
|
532
570
|
actual_limit = client.global_download_limit
|
533
571
|
|
572
|
+
puts " old limit: #{old_limit}"
|
573
|
+
puts " expected limit: #{expected_limit}"
|
574
|
+
puts " actual limit: #{actual_limit}"
|
575
|
+
|
534
576
|
expect(expected_limit == actual_limit).to eq true
|
535
577
|
|
536
578
|
# Clean up
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qbt_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff McAffee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
150
|
version: '0'
|
137
151
|
requirements: []
|
138
152
|
rubyforge_project:
|
139
|
-
rubygems_version: 2.
|
153
|
+
rubygems_version: 2.5.1
|
140
154
|
signing_key:
|
141
155
|
specification_version: 4
|
142
156
|
summary: qBittorent client
|