matrix_sdk 2.6.0 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +15 -2
- data/lib/matrix_sdk/api.rb +8 -0
- data/lib/matrix_sdk/bot/base.rb +843 -0
- data/lib/matrix_sdk/bot/main.rb +79 -0
- data/lib/matrix_sdk/bot.rb +4 -0
- data/lib/matrix_sdk/client.rb +35 -7
- data/lib/matrix_sdk/mxid.rb +2 -0
- data/lib/matrix_sdk/response.rb +2 -0
- data/lib/matrix_sdk/room.rb +98 -4
- data/lib/matrix_sdk/user.rb +22 -0
- data/lib/matrix_sdk/util/account_data_cache.rb +91 -0
- data/lib/matrix_sdk/util/extensions.rb +3 -2
- data/lib/matrix_sdk/util/tinycache_adapter.rb +5 -1
- data/lib/matrix_sdk/version.rb +1 -1
- data/lib/matrix_sdk.rb +6 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7db96470aa545490e2dc289243a1c133a708548e334748fee72cfa1bdba68543
|
4
|
+
data.tar.gz: 863bf01f82c86e9a6329bb505c727a872bf2f2b7b5dd8f51fbc633d74675d8b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f529e7679bd36fcad10184795d78f5dd0a72b0a496fe5f3a10d976d3a33e033cf2367ffb01b68bca3e0844ed91f496921a28e2ef7b20a5bd9589c21bb28a321e
|
7
|
+
data.tar.gz: e32d7dcbff2eac544e25f5c7598ac5f743e60dab8eac6394d1054a118882b0efdb3a69dca8ac93d1fae6ed6cf5912d6576156c3dcc9541c0b8b37bc6f9507600
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 2.7.0 - 2022-08-12
|
2
|
+
|
3
|
+
- Adds a bot subsystem + DSL
|
4
|
+
- [An example](examples/bot_api.rb) can be found in the examples folder
|
5
|
+
- Adds additional useful helpers for Room and User
|
6
|
+
- Fixes Client.new_for_domain
|
7
|
+
- Improves the handling of MXIDs as strings
|
8
|
+
- Improves handling of caches for rooms
|
9
|
+
- Improves Client shutdown when using Client#start_listener_thread
|
10
|
+
- Improves account data handling, with caches on both Client and Room level
|
11
|
+
|
1
12
|
## 2.6.0 - 2022-07-15
|
2
13
|
|
3
14
|
- Adds some multi-thread usage support to the API (create your API/client with `threadsafe: :multithread/true/false`)
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ api.request :get, :federation_v1, '/version'
|
|
26
26
|
```
|
27
27
|
|
28
28
|
```ruby
|
29
|
-
# Client wrapper
|
29
|
+
# Client wrapper with login
|
30
30
|
require 'matrix_sdk'
|
31
31
|
|
32
32
|
client = MatrixSdk::Client.new 'https://example.com'
|
@@ -43,7 +43,7 @@ hq.send_text "This is an example message - don't actually do this ;)"
|
|
43
43
|
```
|
44
44
|
|
45
45
|
```ruby
|
46
|
-
# Client wrapper
|
46
|
+
# Client wrapper with token
|
47
47
|
require 'matrix_sdk'
|
48
48
|
|
49
49
|
client = MatrixSdk::Client.new 'https://example.com'
|
@@ -58,6 +58,19 @@ client.rooms.count
|
|
58
58
|
# => 5
|
59
59
|
```
|
60
60
|
|
61
|
+
```ruby
|
62
|
+
#!/bin/env ruby
|
63
|
+
# Bot DSL
|
64
|
+
require 'matrix_sdk/bot'
|
65
|
+
|
66
|
+
command :plug do
|
67
|
+
room.send_text <<~PLUG
|
68
|
+
The Ruby SDK is a fine method for writing applications communicating over the Matrix protocol.
|
69
|
+
It can easily be integrated with Rails, and it supports most client/bot use-cases.
|
70
|
+
PLUG
|
71
|
+
end
|
72
|
+
```
|
73
|
+
|
61
74
|
## Contributing
|
62
75
|
|
63
76
|
Bug reports and pull requests are welcome on GitHub at https://github.com/ananace/ruby-matrix-sdk
|
data/lib/matrix_sdk/api.rb
CHANGED
@@ -67,6 +67,7 @@ module MatrixSdk
|
|
67
67
|
@global_headers.merge!(params.fetch(:global_headers)) if params.key? :global_headers
|
68
68
|
@synapse = params.fetch(:synapse, true)
|
69
69
|
@http = nil
|
70
|
+
@inflight = []
|
70
71
|
|
71
72
|
self.threadsafe = params.fetch(:threadsafe, :multithread)
|
72
73
|
|
@@ -301,6 +302,7 @@ module MatrixSdk
|
|
301
302
|
|
302
303
|
loc_http = http
|
303
304
|
perform_request = proc do
|
305
|
+
@inflight << loc_http
|
304
306
|
dur_start = Time.now
|
305
307
|
response = loc_http.request req_obj
|
306
308
|
dur_end = Time.now
|
@@ -308,6 +310,8 @@ module MatrixSdk
|
|
308
310
|
rescue EOFError
|
309
311
|
logger.error 'Socket closed unexpectedly'
|
310
312
|
raise
|
313
|
+
ensure
|
314
|
+
@inflight.delete loc_http
|
311
315
|
end
|
312
316
|
|
313
317
|
if @threadsafe == true
|
@@ -356,6 +360,10 @@ module MatrixSdk
|
|
356
360
|
ret
|
357
361
|
end
|
358
362
|
|
363
|
+
def stop_inflight
|
364
|
+
@inflight.each(&:finish)
|
365
|
+
end
|
366
|
+
|
359
367
|
private
|
360
368
|
|
361
369
|
def construct_request(method:, url:, **options)
|