murmur 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1259617317e6bbc9ad7e46549c60ff602ee94e67
4
- data.tar.gz: edd4ddca53daa47f9a060aecfe8f7e0f65dfdfbd
3
+ metadata.gz: 34fd0e204dab5c258464d3c24cfe83f12600a387
4
+ data.tar.gz: 874a501df0f9b1936c7b57c21084a878a036e4e2
5
5
  SHA512:
6
- metadata.gz: 9334506b594d43ba1a56a99e245a7515cc58c7671d3e84263b4eb462f292fcb1b61e9cff48b5c329f52756f770924aeb2755a8a91b5083e4fe0c6161bf7e7d7e
7
- data.tar.gz: e51ff1b751142f76384754cb48051d30e0ddc29b810e69175f4558d891bedef3d16728902f4c9a4ac6b1234ff987f84908daf688c5fb4221a147d38a0b9e6974
6
+ metadata.gz: 33380e6ebbcd1110c4c43f1d656c93cf37c00fe2c63aaa2014cf892fcb697d6dcfdc2a63832a32add195423f5466749d3b36d0356c945b8e21460bb016094db3
7
+ data.tar.gz: 2e34515d392f30a97a5d4579c6c505732931387b68a9fe2a5fae413c4d62bec566969e11bf7342967de9a27c25de006f98705b4abe073801d19077aa75bc88fc
data/README.md CHANGED
@@ -56,6 +56,11 @@ channel.name = "New name!"
56
56
  # Get the clients of a server
57
57
  server = Murmur.server 1
58
58
  users = server.users
59
+
60
+ # Change a user's name
61
+ server = Murmur.server 1
62
+ user = server.users.first
63
+ user.name = "New name!"
59
64
  ```
60
65
 
61
66
  The #raw function on Murmur::API objects will return the raw Murmur object, allowing calling of unimplemented functions.
@@ -67,6 +67,10 @@ module Murmur
67
67
  update
68
68
  end
69
69
 
70
+ def raw
71
+ @channel
72
+ end
73
+
70
74
  private
71
75
 
72
76
  def update
@@ -85,7 +85,7 @@ module Murmur
85
85
  true
86
86
  end
87
87
 
88
- def meta
88
+ def raw
89
89
  @meta
90
90
  end
91
91
 
@@ -30,6 +30,7 @@ module Murmur
30
30
 
31
31
  @channels = {}
32
32
  @users = {}
33
+ @registered_users = {}
33
34
  end
34
35
 
35
36
  def id
@@ -62,6 +63,14 @@ module Murmur
62
63
  @users
63
64
  end
64
65
 
66
+ def registered_users
67
+ @registered_users = {}
68
+ @interface.getRegisteredUsers.each do |_, user|
69
+ @registered_users[user.session] = User.new(@host, @meta, self, user)
70
+ end
71
+ @registered_users
72
+ end
73
+
65
74
  def user(session)
66
75
  users
67
76
 
@@ -79,6 +88,14 @@ module Murmur
79
88
  end
80
89
  alias :delete :destroy!
81
90
 
91
+ def start!
92
+ @interface.start unless running?
93
+ end
94
+
95
+ def stop!
96
+ @interface.stop if running?
97
+ end
98
+
82
99
  def restart!
83
100
  @interface.stop if running?
84
101
  @interface.start
@@ -99,6 +116,10 @@ module Murmur
99
116
  key = key.to_s
100
117
  self[key] = val
101
118
  end
119
+
120
+ def raw
121
+ @interface
122
+ end
102
123
 
103
124
  def method_missing(method, *args)
104
125
  method = method.to_s
@@ -1,7 +1,7 @@
1
1
  module Murmur
2
2
  module API
3
3
  class User
4
-
4
+
5
5
  def initialize(host, meta, server, user)
6
6
  @host = host
7
7
  @meta = meta
@@ -18,38 +18,82 @@ module Murmur
18
18
  @user.userid
19
19
  end
20
20
 
21
+ def registered?
22
+ @user.userid != -1
23
+ end
24
+
21
25
  def muted?
22
26
  @user.mute
23
27
  end
24
28
 
29
+ def muted=(muted)
30
+ @user.mute = muted
31
+ update
32
+ end
33
+
25
34
  def deafened?
26
35
  @user.deaf
27
36
  end
28
37
 
38
+ def deafened=(deafened)
39
+ @user.deaf = deafened
40
+ update
41
+ end
42
+
29
43
  def suppressed?
30
44
  @user.suppress
31
45
  end
32
46
 
47
+ def suppressed=(suppressed)
48
+ @user.suppress = suppressed
49
+ update
50
+ end
51
+
33
52
  def priorityspeaker?
34
53
  @user.prioritySpeaker
35
54
  end
36
55
 
56
+ def priorityspeaker=(priorityspeaker)
57
+ @user.prioritySpeaker = priorityspeaker
58
+ update
59
+ end
60
+
37
61
  def clientmuted?
38
62
  @user.selfMute
39
63
  end
40
64
 
65
+ def clientmuted=(clientmuted)
66
+ @user.selfMute = clientmuted
67
+ update
68
+ end
69
+
41
70
  def clientdeafened?
42
71
  @user.selfDeaf
43
72
  end
44
73
 
74
+ def clientdeafened=(clientdeafened)
75
+ @user.selfDeaf = clientdeafened
76
+ update
77
+ end
78
+
45
79
  def recording?
46
80
  @user.recording
47
81
  end
48
82
 
83
+ def recording=(recording)
84
+ @user.recording
85
+ update
86
+ end
87
+
49
88
  def channel
50
89
  @server.channel @user.channel
51
90
  end
52
91
 
92
+ def channel=(channel)
93
+ @user.channel = channel
94
+ update
95
+ end
96
+
53
97
  def server
54
98
  @server
55
99
  end
@@ -58,10 +102,15 @@ module Murmur
58
102
  @user.name
59
103
  end
60
104
 
105
+ def name=(name)
106
+ @user.name = name
107
+ update
108
+ end
109
+
61
110
  def seconds_connected
62
111
  @user.onlinesecs
63
112
  end
64
-
113
+
65
114
  def seconds_idle
66
115
  @user.idlesecs
67
116
  end
@@ -98,10 +147,20 @@ module Murmur
98
147
  @user.comment
99
148
  end
100
149
 
150
+ def comment=(comment)
151
+ @user.comment = comment
152
+ update
153
+ end
154
+
101
155
  def tcponly?
102
156
  @user.tcponly
103
157
  end
104
158
 
159
+ def tcponly=(tcponly)
160
+ @user.tcponly = tcponly
161
+ update
162
+ end
163
+
105
164
  def ping
106
165
  {:udp => @user.udpPing, :tcp => @user.tcpPing}
107
166
  end
@@ -114,6 +173,50 @@ module Murmur
114
173
  ping[:tcp]
115
174
  end
116
175
 
176
+ def kick!(reason="Kicked by server")
177
+ @server.kickUser(@user.session, reason)
178
+ end
179
+
180
+ def raw
181
+ @user
182
+ end
183
+
184
+ private
185
+
186
+ def update
187
+ user_state = @server.getState(id)
188
+
189
+ {
190
+ :muted? => :mute,
191
+ :deafened? => :deaf,
192
+ :suppressed? => :suppress,
193
+ :priorityspeaker? => :prioritySpeaker,
194
+ :clientmuted? => :selfMute,
195
+ :clientdeafened? => :selfDeaf,
196
+ :recording? => :recording,
197
+ :tcponly? => :tcponly,
198
+ :name => :name
199
+ }.each do |local, state|
200
+ user_state.send("#{state}=", send(local))
201
+ end
202
+
203
+ # Set 'channel' normally.
204
+ user_state.channel = channel.id
205
+
206
+ @server.setState(user_state)
207
+ end
208
+
209
+ # Aliases for update function to work properly.
210
+ # Maybe one day I'll fix this.
211
+ # alias :mute :muted?
212
+ # alias :deaf :deafened?
213
+ # alias :suppress :suppressed?
214
+ # alias :prioritySpeaker :priorityspeaker?
215
+ # alias :selfMute :clientmuted?
216
+ # alias :selfDeaf :clientdeafened?
217
+ # alias :recording :recording?
218
+ # alias :tcponly :tcponly?
219
+
117
220
  end
118
221
  end
119
222
  end
@@ -1,3 +1,3 @@
1
1
  module Murmur
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: murmur
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ranndom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeroc-ice