teamspeak3 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/CHANGELOG.md +9 -1
- data/lib/exceptions.rb +2 -0
- data/lib/exceptions/virtual_server_already_running.rb +12 -0
- data/lib/exceptions/virtual_server_not_running.rb +12 -0
- data/lib/server.rb +4 -1
- data/lib/teamspeak3.rb +1 -1
- data/lib/virtual_server.rb +32 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a9a666fc2ac36dd2eeacd0a9df82c5d5d5c6f72489626f5b8a8ddd62fc704b0
|
4
|
+
data.tar.gz: 1227b17b8a5017667b0030a558293f13325a5c76b4dd8a53874ee607bfcf25f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0303bd9c01a7e318521dc57a7332a9757db6f41e53ceafba0f17591812938e0ad0db43d996e8887e5f45356ce89cb36a881490cca626ab13dbba30a9c212bcf
|
7
|
+
data.tar.gz: 2ad74c0fa4349a7b5f37e17eb28e7fd472768afb289469876388bf04d7f60737c5c366f0b764fbdcab2624168da39636ce088b38bf26063ef8ddb7c3a7a93f41
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
## Release 0.0.
|
1
|
+
## Release 0.0.6 (2018-06-24)
|
2
|
+
|
3
|
+
### Virtual Servers
|
4
|
+
|
5
|
+
* Add method to start virtual servers (#start)
|
6
|
+
* Add method to stop virtual servers (#stop)
|
7
|
+
* Add method to delete/destroy virtual servers (#destroy!)
|
8
|
+
|
9
|
+
## Release 0.0.5 (2018-06-21)
|
2
10
|
|
3
11
|
* Add `TeamSpeak3::QueryAccount` to modify the logged in query account. (Accessible via `TeamSpeak3::Server#query_account`)
|
4
12
|
* Add `TeamSpeak3::Server#create` to create virtual servers
|
data/lib/exceptions.rb
CHANGED
@@ -10,3 +10,5 @@ require_relative 'exceptions/max_slot_limit_reached.rb'
|
|
10
10
|
require_relative 'exceptions/not_connected.rb'
|
11
11
|
require_relative 'exceptions/query_login_failed.rb'
|
12
12
|
require_relative 'exceptions/server_connection_failed.rb'
|
13
|
+
require_relative 'exceptions/virtual_server_not_running.rb'
|
14
|
+
require_relative 'exceptions/virtual_server_already_running.rb'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module TeamSpeak3
|
2
|
+
module Exceptions
|
3
|
+
class VirtualServerAlreadyRunning < TeamSpeak3::Exceptions::StandardException
|
4
|
+
attr_reader :server_id
|
5
|
+
|
6
|
+
def initialize(server_id)
|
7
|
+
@server_id = server_id
|
8
|
+
@message = 'The virtual server is already running'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module TeamSpeak3
|
2
|
+
module Exceptions
|
3
|
+
class VirtualServerNotRunning < TeamSpeak3::Exceptions::StandardException
|
4
|
+
attr_reader :server_id
|
5
|
+
|
6
|
+
def initialize(server_id)
|
7
|
+
@server_id = server_id
|
8
|
+
@message = 'The virtual server is not running'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/server.rb
CHANGED
@@ -158,6 +158,9 @@ module TeamSpeak3
|
|
158
158
|
end
|
159
159
|
|
160
160
|
def execute(command, params = {})
|
161
|
+
allow_to_fail = params[:allow_to_fail]
|
162
|
+
params.delete(:allow_to_fail)
|
163
|
+
|
161
164
|
prepared_command = prepare_command(command, params)
|
162
165
|
@socket.puts(prepared_command)
|
163
166
|
|
@@ -165,7 +168,7 @@ module TeamSpeak3
|
|
165
168
|
response = @socket.waitfor(/error id=.*/)
|
166
169
|
|
167
170
|
response = TeamSpeak3::ServerResponse.parse(response)
|
168
|
-
if response[:errors][:msg] != 'ok'
|
171
|
+
if response[:errors][:msg] != 'ok' && !allow_to_fail
|
169
172
|
raise TeamSpeak3::Exceptions::CommandExecutionFailed.new(
|
170
173
|
response[:errors][:id],
|
171
174
|
response[:errors][:msg],
|
data/lib/teamspeak3.rb
CHANGED
data/lib/virtual_server.rb
CHANGED
@@ -28,6 +28,35 @@ module TeamSpeak3
|
|
28
28
|
@uid = params[:virtualserver_unique_identifier]
|
29
29
|
end
|
30
30
|
|
31
|
+
def destroy!
|
32
|
+
execute :serverstop, sid: @id, allow_to_fail: true, ignore_active_server: true
|
33
|
+
execute :serverdelete, sid: @id, ignore_active_server: true
|
34
|
+
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
def start
|
39
|
+
begin
|
40
|
+
execute :serverstart, sid: @id, ignore_active_server: true
|
41
|
+
rescue Exceptions::CommandExecutionFailed => err
|
42
|
+
raise Exceptions::VirtualServerAlreadyRunning.new(@id) if err.message =~ /server got an invalid status/ && status == :online
|
43
|
+
raise
|
44
|
+
end
|
45
|
+
|
46
|
+
true
|
47
|
+
end
|
48
|
+
|
49
|
+
def stop
|
50
|
+
begin
|
51
|
+
execute :serverstop, sid: @id, ignore_active_server: true
|
52
|
+
rescue Exceptions::CommandExecutionFailed => err
|
53
|
+
raise Exceptions::VirtualServerNotRunning.new(@id) if err.message =~ /server is not running/
|
54
|
+
raise
|
55
|
+
end
|
56
|
+
|
57
|
+
true
|
58
|
+
end
|
59
|
+
|
31
60
|
def channels
|
32
61
|
channels_list = ChannelCollection.new(self)
|
33
62
|
channels = execute :channellist, options: [:topic, :flags, :voice, :limits, :icon]
|
@@ -55,7 +84,9 @@ module TeamSpeak3
|
|
55
84
|
end
|
56
85
|
|
57
86
|
def execute(command, params = {})
|
58
|
-
check_active_server
|
87
|
+
check_active_server unless params[:ignore_active_server]
|
88
|
+
params.delete(:ignore_active_server)
|
89
|
+
|
59
90
|
@server.execute(command, params)
|
60
91
|
end
|
61
92
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teamspeak3
|
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
|
- Manuel Schnitzer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-telnet
|
@@ -93,6 +93,8 @@ files:
|
|
93
93
|
- lib/exceptions/query_login_failed.rb
|
94
94
|
- lib/exceptions/server_connection_failed.rb
|
95
95
|
- lib/exceptions/standard_exception.rb
|
96
|
+
- lib/exceptions/virtual_server_already_running.rb
|
97
|
+
- lib/exceptions/virtual_server_not_running.rb
|
96
98
|
- lib/query_account.rb
|
97
99
|
- lib/server.rb
|
98
100
|
- lib/server_response.rb
|