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 +4 -4
- data/README.md +5 -0
- data/lib/murmur/channel.rb +4 -0
- data/lib/murmur/ice_interface.rb +1 -1
- data/lib/murmur/server.rb +21 -0
- data/lib/murmur/user.rb +105 -2
- data/lib/murmur/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34fd0e204dab5c258464d3c24cfe83f12600a387
|
4
|
+
data.tar.gz: 874a501df0f9b1936c7b57c21084a878a036e4e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
data/lib/murmur/channel.rb
CHANGED
data/lib/murmur/ice_interface.rb
CHANGED
data/lib/murmur/server.rb
CHANGED
@@ -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
|
data/lib/murmur/user.rb
CHANGED
@@ -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
|
data/lib/murmur/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2015-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeroc-ice
|