matrix_qq 0.5.4 → 0.5.5
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/CHANGELOG.yaml +4 -0
- data/lib/matrix_qq/matrix/forward/group.rb +2 -23
- data/lib/matrix_qq/matrix/hack.rb +49 -0
- data/lib/matrix_qq/matrix/log.rb +3 -29
- data/lib/matrix_qq/matrix/matrix.rb +6 -1
- data/lib/matrix_qq/matrix/require.rb +1 -0
- data/lib/matrix_qq/qq/hack.rb +12 -0
- data/lib/matrix_qq/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5b0224c44fe8e0830e5104fef1cdd402f2c258a
|
4
|
+
data.tar.gz: 4f8bb6c7e97bc23e1618949f0f8199381d04ea0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 583a69bcbc243bd8b5521aa0627298de9b4487185f87ff8a846ef3241d4aaf6220e6088148fac466aad5cb90a94a8745d09ff58ce00bd177333ed6d563920493
|
7
|
+
data.tar.gz: 34bbb59d6a0824b4dca1440897dd99751d7aabecfd80e35b4dbca906b494d4697e6aa7a908c30a612a8c4b82ebb882fd1697df3fc44dd0fc5bc92031a16749d9
|
data/CHANGELOG.yaml
CHANGED
@@ -14,8 +14,7 @@ module MatrixQQ
|
|
14
14
|
msg = @info['content']
|
15
15
|
body = msg['body']
|
16
16
|
type = msg['msgtype']
|
17
|
-
sender =
|
18
|
-
sender, body = user_bot body if user_bot? body
|
17
|
+
sender = @info['sender_name']
|
19
18
|
message = format_matrix_message(body, sender, type)
|
20
19
|
MatrixQQ::QQ::SendGroup.text @matrix, @room, message
|
21
20
|
end
|
@@ -38,29 +37,9 @@ module MatrixQQ
|
|
38
37
|
m ? m.post_match : "#{room}[#{name}] #{msg}"
|
39
38
|
when 'notice' then "#{room}[#{name}] notice #{msg}"
|
40
39
|
when 'emote' then "#{room}#{name} #{msg}"
|
41
|
-
else "#{room}#{name} send a #{
|
40
|
+
else "#{room}#{name} send a #{type}"
|
42
41
|
end
|
43
42
|
end
|
44
|
-
|
45
|
-
def user(user)
|
46
|
-
@dbus.get("/profile/#{user}/displayname")['displayname']
|
47
|
-
end
|
48
|
-
|
49
|
-
def match_bot(message)
|
50
|
-
message.match(/^(\(.*?\))?\[(.*?)\]\s*/)
|
51
|
-
end
|
52
|
-
|
53
|
-
def user_bot?(message)
|
54
|
-
m = match_bot message
|
55
|
-
return true if m
|
56
|
-
false
|
57
|
-
end
|
58
|
-
|
59
|
-
def user_bot(message)
|
60
|
-
m = match_bot message
|
61
|
-
return unless m
|
62
|
-
[m[2], m.post_match]
|
63
|
-
end
|
64
43
|
end # Matrix
|
65
44
|
|
66
45
|
Forward.send_to['group'] << Group
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module MatrixQQ
|
2
|
+
class Matrix
|
3
|
+
module Hack
|
4
|
+
class << self
|
5
|
+
attr_accessor :list
|
6
|
+
|
7
|
+
Hack.list = []
|
8
|
+
|
9
|
+
def user(dbus, user)
|
10
|
+
dbus.get("/profile/#{user}/displayname")['displayname']
|
11
|
+
end
|
12
|
+
|
13
|
+
def match_bot(message)
|
14
|
+
message.match(/^(\(.*?\))?\[(.*?)\]\s*/)
|
15
|
+
end
|
16
|
+
|
17
|
+
def user_bot?(message)
|
18
|
+
m = match_bot message
|
19
|
+
return true if m
|
20
|
+
false
|
21
|
+
end
|
22
|
+
|
23
|
+
def user_bot(message)
|
24
|
+
m = match_bot message
|
25
|
+
return unless m
|
26
|
+
[m[2], m.post_match]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Hack.list << lambda do |dbus, info, i|
|
31
|
+
return unless info.is_a? Hash
|
32
|
+
return unless i == :join
|
33
|
+
info.each_value.map do |events|
|
34
|
+
events['timeline']['events'].map do |e|
|
35
|
+
body = e['content']['body']
|
36
|
+
next if body.nil?
|
37
|
+
sender = Hack.user dbus, e['sender']
|
38
|
+
sender, body = Hack.user_bot body if Hack.user_bot? body
|
39
|
+
e['sender_name'] = sender
|
40
|
+
e['content']['body'] = body
|
41
|
+
e
|
42
|
+
end
|
43
|
+
events
|
44
|
+
end
|
45
|
+
info
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/matrix_qq/matrix/log.rb
CHANGED
@@ -13,20 +13,14 @@ module MatrixQQ
|
|
13
13
|
log_room room
|
14
14
|
events['timeline']['events'].each do |event|
|
15
15
|
next unless event['type'] == 'm.room.message'
|
16
|
-
log_message event['
|
16
|
+
log_message event['sender_name'], event['content']
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
def log_message(sender, content)
|
22
|
-
|
23
|
-
|
24
|
-
message = content['body']
|
25
|
-
name, message = user_bot message if user_bot? message
|
26
|
-
else
|
27
|
-
message = content
|
28
|
-
end
|
29
|
-
puts "#{name}: #{message}"
|
22
|
+
message = content['msgtype'] == 'm.text' ? content['body'] : content
|
23
|
+
puts "#{sender}: #{message}"
|
30
24
|
end
|
31
25
|
|
32
26
|
def log_room(room)
|
@@ -36,26 +30,6 @@ module MatrixQQ
|
|
36
30
|
def room(room)
|
37
31
|
@dbus.get "/rooms/#{room}/state/m.room.name"
|
38
32
|
end
|
39
|
-
|
40
|
-
def user(user)
|
41
|
-
@dbus.get("/profile/#{user}/displayname")['displayname']
|
42
|
-
end
|
43
|
-
|
44
|
-
def match_bot(message)
|
45
|
-
message.match(/^(\(.*?\))?\[(.*?)\]\s*/)
|
46
|
-
end
|
47
|
-
|
48
|
-
def user_bot?(message)
|
49
|
-
m = match_bot message
|
50
|
-
return true if m
|
51
|
-
false
|
52
|
-
end
|
53
|
-
|
54
|
-
def user_bot(message)
|
55
|
-
m = match_bot message
|
56
|
-
return unless m
|
57
|
-
[m[2], m.post_match]
|
58
|
-
end
|
59
33
|
end # Log
|
60
34
|
|
61
35
|
Matrix.join << Log
|
@@ -30,7 +30,7 @@ module MatrixQQ
|
|
30
30
|
def reg
|
31
31
|
SIGN.each do |i|
|
32
32
|
@dbus.obj.on_signal i.to_s do |json|
|
33
|
-
info = JSON.parse
|
33
|
+
info = hack i, JSON.parse(json)
|
34
34
|
Matrix.send(i).each do |func|
|
35
35
|
MatrixQQ.log(func.name) do
|
36
36
|
func.new(@dbus, @qq_dbus, info.dup).run
|
@@ -39,5 +39,10 @@ module MatrixQQ
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
|
+
|
43
|
+
def hack(i, info)
|
44
|
+
Hack.list.each { |h| info = h.call(@dbus, info, i) }
|
45
|
+
info
|
46
|
+
end
|
42
47
|
end
|
43
48
|
end
|
data/lib/matrix_qq/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matrix_qq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 71e6fd52
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/matrix_qq/matrix/dbus.rb
|
133
133
|
- lib/matrix_qq/matrix/forward/group.rb
|
134
134
|
- lib/matrix_qq/matrix/forward/main.rb
|
135
|
+
- lib/matrix_qq/matrix/hack.rb
|
135
136
|
- lib/matrix_qq/matrix/log.rb
|
136
137
|
- lib/matrix_qq/matrix/matrix.rb
|
137
138
|
- lib/matrix_qq/matrix/require.rb
|
@@ -142,6 +143,7 @@ files:
|
|
142
143
|
- lib/matrix_qq/qq/forward_friend/matrix.rb
|
143
144
|
- lib/matrix_qq/qq/forward_group/main.rb
|
144
145
|
- lib/matrix_qq/qq/forward_group/matrix.rb
|
146
|
+
- lib/matrix_qq/qq/hack.rb
|
145
147
|
- lib/matrix_qq/qq/log.rb
|
146
148
|
- lib/matrix_qq/qq/qq.rb
|
147
149
|
- lib/matrix_qq/qq/require.rb
|