teamspeak3 0.0.5 → 0.0.6

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
  SHA256:
3
- metadata.gz: 4bebe083b0e4cee5773974e0be78e77f6680fbb9b6cb55bbdc94b63025e1ef3e
4
- data.tar.gz: f0cc6ed512db322c8f62068a47c6309d1a7204790a6427a5028ee7f3d24cf20c
3
+ metadata.gz: 7a9a666fc2ac36dd2eeacd0a9df82c5d5d5c6f72489626f5b8a8ddd62fc704b0
4
+ data.tar.gz: 1227b17b8a5017667b0030a558293f13325a5c76b4dd8a53874ee607bfcf25f9
5
5
  SHA512:
6
- metadata.gz: 69048c150b84329a98dc2c7070b093c01e667a8afa9353aea8faee8ca769c72be44b0421e5d51f80fb627c52c39461d068ff1b933aa5252be9f9b2881ea036c6
7
- data.tar.gz: a73175a6013b5dd7a3fe3a9057b2141fedf744c2b7593dd3e8c808ad5847c4bb22a624b0ba0ddb1700b0a42da7b3291f5fc68fa3c767493188c84537edce4b05
6
+ metadata.gz: c0303bd9c01a7e318521dc57a7332a9757db6f41e53ceafba0f17591812938e0ad0db43d996e8887e5f45356ce89cb36a881490cca626ab13dbba30a9c212bcf
7
+ data.tar.gz: 2ad74c0fa4349a7b5f37e17eb28e7fd472768afb289469876388bf04d7f60737c5c366f0b764fbdcab2624168da39636ce088b38bf26063ef8ddb7c3a7a93f41
@@ -1,4 +1,12 @@
1
- ## Release 0.0.5 (unknown)
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
@@ -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
@@ -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],
@@ -1,7 +1,7 @@
1
1
  require 'net/telnet'
2
2
 
3
3
  module TeamSpeak3
4
- VERSION = "0.0.5"
4
+ VERSION = "0.0.6"
5
5
  end
6
6
 
7
7
  # exceptions shall be required first
@@ -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.5
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-21 00:00:00.000000000 Z
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