chatrix 1.2.0 → 1.3.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/lib/chatrix/client.rb +23 -1
- data/lib/chatrix/components/admin.rb +6 -9
- data/lib/chatrix/rooms.rb +10 -1
- data/lib/chatrix/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: 5fdbaf53540d109264fd47203f5bf8371b7a0e0d
|
4
|
+
data.tar.gz: e618549b57e588e22fe091b3f7538053088a97e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ea913a13a9257f27fdccdf36a4a013360bbc2d0c7c0756978f633152351c33aaa7e9e574ae177e050d438f7d3997db41f5d64f2a726dc43e460c5db60188261
|
7
|
+
data.tar.gz: ccf53b6718e921aa22fc1a6354997155de119baa19a75bb594b8c380e159bfbc7b2a57673e61c48e50645be2badb2d35a26b53cbd1ae1636b6909b3587b09bd2
|
data/lib/chatrix/client.rb
CHANGED
@@ -34,6 +34,7 @@ module Chatrix
|
|
34
34
|
|
35
35
|
@rooms.on(:added) do |room|
|
36
36
|
broadcast(:room_added, room)
|
37
|
+
room.on(:invited) { |s, i| broadcast(:invited, room, s, i) }
|
37
38
|
room.timeline.on(:message) { |r, m| broadcast(:room_message, r, m) }
|
38
39
|
end
|
39
40
|
end
|
@@ -46,14 +47,28 @@ module Chatrix
|
|
46
47
|
# @see #sync! See the documentation for {#sync!} for more information
|
47
48
|
# and what happens in case of an error during sync.
|
48
49
|
def start_syncing
|
49
|
-
@sync_thread ||= Thread.new
|
50
|
+
@sync_thread ||= Thread.new do
|
51
|
+
begin
|
52
|
+
loop { sync! }
|
53
|
+
rescue => e
|
54
|
+
broadcast(:connection_error, e)
|
55
|
+
ensure
|
56
|
+
stop_syncing
|
57
|
+
broadcast(:disconnected)
|
58
|
+
end
|
59
|
+
end
|
50
60
|
end
|
51
61
|
|
52
62
|
# Stops syncing against the homeserver.
|
53
63
|
def stop_syncing
|
54
64
|
return unless @sync_thread.is_a? Thread
|
65
|
+
|
55
66
|
@sync_thread.exit
|
56
67
|
@sync_thread.join
|
68
|
+
|
69
|
+
rescue => e
|
70
|
+
broadcast(:stop_error, e)
|
71
|
+
ensure
|
57
72
|
@sync_thread = nil
|
58
73
|
end
|
59
74
|
|
@@ -73,6 +88,13 @@ module Chatrix
|
|
73
88
|
@rooms[id]
|
74
89
|
end
|
75
90
|
|
91
|
+
# Joins the room with the specified ID.
|
92
|
+
# @param id [String] The room ID to join.
|
93
|
+
# @return [Room] The Room instance for the joined room.
|
94
|
+
def join_room(id)
|
95
|
+
@rooms.join id
|
96
|
+
end
|
97
|
+
|
76
98
|
private
|
77
99
|
|
78
100
|
# Syncs against the server.
|
@@ -30,31 +30,28 @@ module Chatrix
|
|
30
30
|
|
31
31
|
# Kicks a user from the room.
|
32
32
|
#
|
33
|
-
# @param user [User
|
34
|
-
# object or a String (user ID).
|
33
|
+
# @param user [User] The user to kick.
|
35
34
|
# @param reason [String] The reason for the kick.
|
36
35
|
# @return [Boolean] `true` if the user was kicked, otherwise `false`.
|
37
36
|
def kick(user, reason)
|
38
|
-
@matrix.rooms.actions.kick @room.id, user, reason
|
37
|
+
@matrix.rooms.actions.kick @room.id, user.id, reason
|
39
38
|
end
|
40
39
|
|
41
40
|
# Bans a user from the room.
|
42
41
|
#
|
43
|
-
# @param user [User
|
44
|
-
# object or a String (user ID).
|
42
|
+
# @param user [User] The user to kick.
|
45
43
|
# @param reason [String] The reason for the ban.
|
46
44
|
# @return [Boolean] `true` if the user was kicked, otherwise `false`.
|
47
45
|
def ban(user, reason)
|
48
|
-
@matrix.rooms.actions.ban @room.id, user, reason
|
46
|
+
@matrix.rooms.actions.ban @room.id, user.id, reason
|
49
47
|
end
|
50
48
|
|
51
49
|
# Unbans a user from the room.
|
52
50
|
#
|
53
|
-
# @param user [User
|
54
|
-
# objec or a String (user ID).
|
51
|
+
# @param user [User] The user to unban.
|
55
52
|
# @return [Boolean] `true` if the user was unbanned, otherwise `false`.
|
56
53
|
def unban(user)
|
57
|
-
@matrix.rooms.actions.unban @room.id, user
|
54
|
+
@matrix.rooms.actions.unban @room.id, user.id
|
58
55
|
end
|
59
56
|
end
|
60
57
|
end
|
data/lib/chatrix/rooms.rb
CHANGED
@@ -31,7 +31,7 @@ module Chatrix
|
|
31
31
|
return @rooms[id] if id.start_with? '!'
|
32
32
|
|
33
33
|
if id.start_with? '#'
|
34
|
-
res = @rooms.find { |_, r| r.
|
34
|
+
res = @rooms.find { |_, r| r.canonical_alias == id }
|
35
35
|
return res.last if res.respond_to? :last
|
36
36
|
end
|
37
37
|
|
@@ -39,6 +39,15 @@ module Chatrix
|
|
39
39
|
res.last if res.respond_to? :last
|
40
40
|
end
|
41
41
|
|
42
|
+
# Attempts to join the specified room.
|
43
|
+
# @param id [String] The room ID to join.
|
44
|
+
# @return [Room] The Room instance for the joined room.
|
45
|
+
# @raise [ForbiddenError] Raised if the user does not have sufficient
|
46
|
+
# permissions to join the room.
|
47
|
+
def join(id)
|
48
|
+
get_room(id).tap(&:join)
|
49
|
+
end
|
50
|
+
|
42
51
|
# Processes a list of room events from syncs.
|
43
52
|
#
|
44
53
|
# @param events [Hash] A hash of room events as returned from the server.
|
data/lib/chatrix/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chatrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Hellberg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|