obsws 0.0.3 → 0.1.0
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 +14 -1
- data/lib/obsws/base.rb +3 -8
- data/lib/obsws/event.rb +5 -0
- data/lib/obsws/mixin.rb +2 -2
- data/lib/obsws/req.rb +5 -0
- data/lib/obsws/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8812e43e45759a458a445608809725e4a270daa04a3b715997541eed5bc85e5b
|
4
|
+
data.tar.gz: 0500dfc0223ad3f489016791fc0ca51800ec903d0bf7e57305216ff0844ee722
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef31376738aa182535f924e6981dab5eb8b83ec0e8254335d15e6fbab6ce952638c43c9769f21bd50c79b4b4e61750a7d16bdd2dc3910636b7e44957177bfdb2
|
7
|
+
data.tar.gz: fb4f85815ecfce661e4c46ba63bf008b4eb3c3d89d728a646b1a9c3ce40f22dea1ea00ded2b272abf82d4bb53e79ac275f1345ba87de45e2e4beb2d57f611f82
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
[](https://badge.fury.io/rb/obsws)
|
2
|
-
[](https://github.com/onyx-and-iris/
|
2
|
+
[](https://github.com/onyx-and-iris/obsws-ruby/blob/dev/LICENSE)
|
3
3
|
[](https://github.com/prettier/plugin-ruby)
|
4
4
|
|
5
5
|
# A Ruby wrapper around OBS Studio WebSocket v5.0
|
@@ -11,6 +11,19 @@
|
|
11
11
|
- With the release of OBS Studio version 28, Websocket plugin is included by default. But it should be manually installed for earlier versions of OBS.
|
12
12
|
- Ruby 3.0 or greater
|
13
13
|
|
14
|
+
## Installation
|
15
|
+
|
16
|
+
### Bundler
|
17
|
+
|
18
|
+
```
|
19
|
+
bundle add 'obsws'
|
20
|
+
bundle install
|
21
|
+
```
|
22
|
+
|
23
|
+
### Gem
|
24
|
+
|
25
|
+
`gem install 'obsws'`
|
26
|
+
|
14
27
|
## `Use`
|
15
28
|
|
16
29
|
#### Example `main.rb`
|
data/lib/obsws/base.rb
CHANGED
@@ -74,7 +74,8 @@ module OBSWS
|
|
74
74
|
)
|
75
75
|
end
|
76
76
|
|
77
|
-
def
|
77
|
+
def identify(auth)
|
78
|
+
LOGGER.info("initiating authentication") if auth
|
78
79
|
payload = {
|
79
80
|
op: Mixin::OPCodes::IDENTIFY,
|
80
81
|
d: {
|
@@ -89,14 +90,8 @@ module OBSWS
|
|
89
90
|
def msg_handler(data)
|
90
91
|
case data[:op]
|
91
92
|
when Mixin::OPCodes::HELLO
|
92
|
-
|
93
|
-
LOGGER.debug("initiating authentication")
|
94
|
-
else
|
95
|
-
LOGGER.debug("authentication disabled... skipping.")
|
96
|
-
end
|
97
|
-
authenticate(data[:d][:authentication])
|
93
|
+
identify(data[:d][:authentication])
|
98
94
|
when Mixin::OPCodes::IDENTIFIED
|
99
|
-
LOGGER.debug("client succesfully identified with server")
|
100
95
|
@identified = true
|
101
96
|
when Mixin::OPCodes::EVENT, Mixin::OPCodes::REQUESTRESPONSE
|
102
97
|
changed
|
data/lib/obsws/event.rb
CHANGED
@@ -77,9 +77,14 @@ module OBSWS
|
|
77
77
|
def initialize(**kwargs)
|
78
78
|
kwargs[:subs] = SUBS.low_volume
|
79
79
|
@base_client = Base.new(**kwargs)
|
80
|
+
LOGGER.info("#{self} succesfully identified with server")
|
80
81
|
@base_client.add_observer(self)
|
81
82
|
end
|
82
83
|
|
84
|
+
def to_s
|
85
|
+
"#{self.class.name.split("::").last(2).join("::")}"
|
86
|
+
end
|
87
|
+
|
83
88
|
def update(op_code, data)
|
84
89
|
if op_code == Mixin::OPCodes::EVENT
|
85
90
|
event = data[:eventType]
|
data/lib/obsws/mixin.rb
CHANGED
@@ -5,7 +5,7 @@ module OBSWS
|
|
5
5
|
module Meta
|
6
6
|
include Util
|
7
7
|
|
8
|
-
def
|
8
|
+
def make_field_methods(*params)
|
9
9
|
params.each do |param|
|
10
10
|
define_singleton_method(param.to_s.to_snake) { @resp[param] }
|
11
11
|
end
|
@@ -18,7 +18,7 @@ module OBSWS
|
|
18
18
|
def initialize(resp, fields)
|
19
19
|
@resp = resp
|
20
20
|
@fields = fields
|
21
|
-
self.
|
21
|
+
self.make_field_methods *fields
|
22
22
|
end
|
23
23
|
|
24
24
|
def empty? = @fields.empty?
|
data/lib/obsws/req.rb
CHANGED
@@ -14,10 +14,15 @@ module OBSWS
|
|
14
14
|
|
15
15
|
def initialize(**kwargs)
|
16
16
|
@base_client = Base.new(**kwargs)
|
17
|
+
LOGGER.info("#{self} succesfully identified with server")
|
17
18
|
@base_client.add_observer(self)
|
18
19
|
@response = { requestId: 0 }
|
19
20
|
end
|
20
21
|
|
22
|
+
def to_s
|
23
|
+
"#{self.class.name.split("::").last(2).join("::")}"
|
24
|
+
end
|
25
|
+
|
21
26
|
def run
|
22
27
|
yield
|
23
28
|
ensure
|
data/lib/obsws/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: obsws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- onyx_online
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: observer
|