mumble-ruby2 1.1.4
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 +7 -0
- data/.gitignore +17 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.rdoc +119 -0
- data/Rakefile +2 -0
- data/lib/mumble-ruby2.rb +39 -0
- data/lib/mumble-ruby2/audio_player.rb +107 -0
- data/lib/mumble-ruby2/audio_recorder.rb +79 -0
- data/lib/mumble-ruby2/cert_manager.rb +67 -0
- data/lib/mumble-ruby2/channel.rb +48 -0
- data/lib/mumble-ruby2/client.rb +218 -0
- data/lib/mumble-ruby2/connection.rb +85 -0
- data/lib/mumble-ruby2/img_reader.rb +37 -0
- data/lib/mumble-ruby2/messages.rb +361 -0
- data/lib/mumble-ruby2/model.rb +43 -0
- data/lib/mumble-ruby2/mumble.proto +291 -0
- data/lib/mumble-ruby2/packet_data_stream.rb +157 -0
- data/lib/mumble-ruby2/thread_tools.rb +24 -0
- data/lib/mumble-ruby2/user.rb +51 -0
- data/lib/mumble-ruby2/version.rb +3 -0
- data/mumble-ruby2.gemspec +24 -0
- metadata +137 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
module Mumble
|
2
|
+
module ThreadTools
|
3
|
+
class DuplicateThread < StandardError; end
|
4
|
+
|
5
|
+
protected
|
6
|
+
def spawn_thread(sym)
|
7
|
+
raise DuplicateThread if threads.has_key? sym
|
8
|
+
threads[sym] = Thread.new { loop { send sym } }
|
9
|
+
end
|
10
|
+
|
11
|
+
def spawn_threads(*symbols)
|
12
|
+
symbols.map { |sym| spawn_thread sym }
|
13
|
+
end
|
14
|
+
|
15
|
+
def kill_threads
|
16
|
+
threads.values.map(&:kill)
|
17
|
+
threads.clear
|
18
|
+
end
|
19
|
+
|
20
|
+
def threads
|
21
|
+
@threads ||= {}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Mumble
|
2
|
+
class User < Model
|
3
|
+
attribute :session
|
4
|
+
attribute :user_id
|
5
|
+
attribute :actor
|
6
|
+
attribute :name
|
7
|
+
attribute :channel_id
|
8
|
+
attribute :hash
|
9
|
+
attribute :comment
|
10
|
+
attribute :mute
|
11
|
+
attribute :deaf
|
12
|
+
attribute :self_mute
|
13
|
+
attribute :self_deaf
|
14
|
+
|
15
|
+
def current_channel
|
16
|
+
client.channels[channel_id]
|
17
|
+
end
|
18
|
+
|
19
|
+
def send_text(string)
|
20
|
+
client.text_user(self, string)
|
21
|
+
end
|
22
|
+
|
23
|
+
def send_image(file)
|
24
|
+
client.text_user_img(self, file)
|
25
|
+
end
|
26
|
+
|
27
|
+
def mute(bool=true)
|
28
|
+
client.send_user_state self_mute: bool
|
29
|
+
end
|
30
|
+
|
31
|
+
def deafen(bool=true)
|
32
|
+
client.send_user_state self_deaf: bool
|
33
|
+
end
|
34
|
+
|
35
|
+
def muted?
|
36
|
+
!!data['suppress'] || !!data['mute'] || !!self_mute
|
37
|
+
end
|
38
|
+
|
39
|
+
def deafened?
|
40
|
+
!!data['deaf'] || !!self_deaf
|
41
|
+
end
|
42
|
+
|
43
|
+
def register
|
44
|
+
client.send_user_state(session: session, user_id: 0)
|
45
|
+
end
|
46
|
+
|
47
|
+
def stats
|
48
|
+
client.send_user_stats session: session
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/mumble-ruby2/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Matthew Perry", "Philip Mayer"]
|
6
|
+
gem.email = ["philip.mayer@shadowsith.de"]
|
7
|
+
gem.description = %q{Ruby API for interacting with a mumble server}
|
8
|
+
gem.summary = %q{Implements the mumble VOIP protocol in ruby for more easily writing clients.}
|
9
|
+
gem.homepage = "https://github.com/Shadowsith/mumble-ruby2"
|
10
|
+
|
11
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
gem.name = "mumble-ruby2"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = Mumble::VERSION
|
17
|
+
gem.license = "MIT"
|
18
|
+
|
19
|
+
gem.add_dependency "activesupport", "~> 4.2.6"
|
20
|
+
gem.add_dependency "ruby_protobuf", "~> 0.4.11"
|
21
|
+
gem.add_dependency "hashie", "~> 4.1.0"
|
22
|
+
gem.add_dependency "opus-ruby", "~> 1.0.1"
|
23
|
+
gem.add_dependency "wavefile", "~> 1.1.1"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mumble-ruby2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matthew Perry
|
8
|
+
- Philip Mayer
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2021-07-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 4.2.6
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 4.2.6
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: ruby_protobuf
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.4.11
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.4.11
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: hashie
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 4.1.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 4.1.0
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: opus-ruby
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.0.1
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.1
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: wavefile
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.1.1
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.1.1
|
84
|
+
description: Ruby API for interacting with a mumble server
|
85
|
+
email:
|
86
|
+
- philip.mayer@shadowsith.de
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- ".ruby-gemset"
|
93
|
+
- ".ruby-version"
|
94
|
+
- Gemfile
|
95
|
+
- LICENSE.txt
|
96
|
+
- README.rdoc
|
97
|
+
- Rakefile
|
98
|
+
- lib/mumble-ruby2.rb
|
99
|
+
- lib/mumble-ruby2/audio_player.rb
|
100
|
+
- lib/mumble-ruby2/audio_recorder.rb
|
101
|
+
- lib/mumble-ruby2/cert_manager.rb
|
102
|
+
- lib/mumble-ruby2/channel.rb
|
103
|
+
- lib/mumble-ruby2/client.rb
|
104
|
+
- lib/mumble-ruby2/connection.rb
|
105
|
+
- lib/mumble-ruby2/img_reader.rb
|
106
|
+
- lib/mumble-ruby2/messages.rb
|
107
|
+
- lib/mumble-ruby2/model.rb
|
108
|
+
- lib/mumble-ruby2/mumble.proto
|
109
|
+
- lib/mumble-ruby2/packet_data_stream.rb
|
110
|
+
- lib/mumble-ruby2/thread_tools.rb
|
111
|
+
- lib/mumble-ruby2/user.rb
|
112
|
+
- lib/mumble-ruby2/version.rb
|
113
|
+
- mumble-ruby2.gemspec
|
114
|
+
homepage: https://github.com/Shadowsith/mumble-ruby2
|
115
|
+
licenses:
|
116
|
+
- MIT
|
117
|
+
metadata: {}
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options: []
|
120
|
+
require_paths:
|
121
|
+
- lib
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
requirements: []
|
133
|
+
rubygems_version: 3.2.21
|
134
|
+
signing_key:
|
135
|
+
specification_version: 4
|
136
|
+
summary: Implements the mumble VOIP protocol in ruby for more easily writing clients.
|
137
|
+
test_files: []
|