patch bump

add full request payload to logger.

raise OBSWSError if auth enabled but no password provided

add example tasks to rake file

add logging section to README
This commit is contained in:
onyx-and-iris 2022-11-25 17:57:56 +00:00
parent 43ecfb37f5
commit aafcd185d0
6 changed files with 47 additions and 15 deletions

View File

@ -1,7 +1,7 @@
PATH
remote: .
specs:
obsws (0.1.1)
obsws (0.1.2)
observer (~> 0.1.1)
waitutil (~> 0.2.1)
websocket-driver (~> 0.7.5)

View File

@ -115,6 +115,19 @@ If a request fails an `OBSWSError` will be raised with a status code.
For a full list of status codes refer to [Codes](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requeststatus)
### Logging
To see the raw messages set log level to debug
example:
```ruby
require "obsws"
OBSWS::LOGGER.debug!
...
```
### Tests
To run all tests:

View File

@ -1,5 +1,7 @@
require "minitest/test_task"
HERE = File.expand_path File.dirname(__FILE__)
Minitest::TestTask.create(:test) do |t|
t.libs << "test"
t.warning = false
@ -7,3 +9,15 @@ Minitest::TestTask.create(:test) do |t|
end
task default: :test
task :events do
filepath = File.join(HERE, "examples", "events", "main.rb")
ruby filepath
end
task :levels do
filepath = File.join(HERE, "examples", "levels", "main.rb")
ruby filepath
end
task :scene_rotate do
filepath = File.join(HERE, "examples", "scene_rotate", "main.rb")
ruby filepath
end

View File

@ -45,12 +45,12 @@ module OBSWS
@closed = true
end
@driver.on :message do |msg|
LOGGER.debug("received [#{msg}] passing to handler")
LOGGER.debug("received: #{msg.data}")
msg_handler(JSON.parse(msg.data, symbolize_names: true))
end
start_driver
WaitUtil.wait_for_condition(
"waiting successful identification",
"successful identification",
delay_sec: 0.01,
timeout_sec: 3
) { @identified }
@ -75,15 +75,20 @@ module OBSWS
end
def identify(auth)
LOGGER.info("initiating authentication") if auth
payload = {
op: Mixin::OPCodes::IDENTIFY,
d: {
rpcVersion: 1,
eventSubscriptions: @subs
if auth
if @password.empty?
raise OBSWSError("auth enabled but no password provided")
end
LOGGER.info("initiating authentication")
payload = {
op: Mixin::OPCodes::IDENTIFY,
d: {
rpcVersion: 1,
eventSubscriptions: @subs
}
}
}
payload[:d][:authentication] = auth_token(**auth) if auth
payload[:d][:authentication] = auth_token(**auth)
end
@driver.text(JSON.generate(payload))
end
@ -108,8 +113,8 @@ module OBSWS
}
}
payload[:d][:requestData] = data if data
LOGGER.debug("sending request: #{payload}")
queued = @driver.text(JSON.generate(payload))
LOGGER.debug("request with id #{id} queued? #{queued}")
end
end
end

View File

@ -28,7 +28,7 @@ module OBSWS
ensure
close
WaitUtil.wait_for_condition(
"driver has closed",
"driver to close",
delay_sec: 0.01,
timeout_sec: 1
) { @base_client.closed }
@ -42,7 +42,7 @@ module OBSWS
id = rand(1..1000)
@base_client.req(id, req, data)
WaitUtil.wait_for_condition(
"reponse id matches request id",
"reponse id to match request id",
delay_sec: 0.001,
timeout_sec: 3
) { @response[:requestId] == id }

View File

@ -11,7 +11,7 @@ module OBSWS
end
def patch
1
2
end
def to_a