matrix_qq 0.5.3 → 0.5.4
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 +8 -0
- data/exe/matrix_qq +10 -0
- data/lib/matrix_qq/matrix/forward/group.rb +1 -42
- data/lib/matrix_qq/qq/agree.rb +30 -0
- data/lib/matrix_qq/qq/qq.rb +0 -1
- data/lib/matrix_qq/qq/require.rb +1 -0
- data/lib/matrix_qq/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c29f625d98e417ccbcb15f76dc231e1cdbbc7543
|
4
|
+
data.tar.gz: e42689a5edb2b7d5fa9244a595c40c8273d5e9cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53eedc6eaf07ed958e3665c567e1cbcf44a4225011a718b74048e3168533d022e6014fdf5542d84b5a3db277a99615b1f1464b0ebd9f9d3975f9ae8819b6d5ef
|
7
|
+
data.tar.gz: 17a29886324a8071383bf8ffc15190c20e1a3e1927619b421d4ccd9f165ef6bef18055118c009e4c83878b304be82aeb728afb280bdce73774a2502661dd1284
|
data/CHANGELOG.yaml
CHANGED
data/exe/matrix_qq
CHANGED
@@ -32,13 +32,23 @@ end)
|
|
32
32
|
end
|
33
33
|
load config
|
34
34
|
|
35
|
+
LOG =
|
36
|
+
if ARGV.include? '-q'
|
37
|
+
open '/dev/null', 'w'
|
38
|
+
else
|
39
|
+
STDOUT
|
40
|
+
end
|
41
|
+
|
35
42
|
session_bus = DBus::SessionBus.instance
|
36
43
|
|
37
44
|
matrix = MatrixQQ::Matrix.new session_bus
|
45
|
+
LOG.puts 'Matrix inited'
|
38
46
|
qq = MatrixQQ::QQ.new session_bus
|
47
|
+
LOG.puts 'QQ inited'
|
39
48
|
matrix.qq_dbus = qq.dbus
|
40
49
|
qq.matrix_dbus = matrix.dbus
|
41
50
|
|
42
51
|
main = DBus::Main.new
|
43
52
|
main << session_bus
|
53
|
+
LOG.puts 'Started'
|
44
54
|
main.run
|
@@ -3,35 +3,6 @@ module MatrixQQ
|
|
3
3
|
class Forward
|
4
4
|
# send to qq group
|
5
5
|
class Group
|
6
|
-
Emoji = [
|
7
|
-
*(0x0080..0x02AF),
|
8
|
-
*(0x0300..0x03FF),
|
9
|
-
*(0x0600..0x06FF),
|
10
|
-
*(0x0C00..0x0C7F),
|
11
|
-
*(0x1DC0..0x1DFF),
|
12
|
-
*(0x1E00..0x1EFF),
|
13
|
-
*(0x2000..0x209F),
|
14
|
-
*(0x20D0..0x214F),
|
15
|
-
*(0x2190..0x23FF),
|
16
|
-
*(0x2460..0x25FF),
|
17
|
-
*(0x2600..0x27EF),
|
18
|
-
*(0x2900..0x29FF),
|
19
|
-
*(0x2B00..0x2BFF),
|
20
|
-
*(0x2C60..0x2C7F),
|
21
|
-
*(0x2E00..0x2E7F),
|
22
|
-
*(0x3000..0x303F),
|
23
|
-
*(0xA490..0xA4CF),
|
24
|
-
*(0xE000..0xF8FF),
|
25
|
-
*(0xFE00..0xFE0F),
|
26
|
-
*(0xFE30..0xFE4F),
|
27
|
-
*(0x1F000..0x1F02F),
|
28
|
-
*(0x1F0A0..0x1F0FF),
|
29
|
-
*(0x1F100..0x1F64F),
|
30
|
-
*(0x1F680..0x1F6FF),
|
31
|
-
*(0x1F910..0x1F96B),
|
32
|
-
*(0x1F980..0x1F9E0)
|
33
|
-
].freeze
|
34
|
-
|
35
6
|
def initialize(dbus, matrix, info, room)
|
36
7
|
@dbus = dbus
|
37
8
|
@info = info
|
@@ -46,19 +17,7 @@ module MatrixQQ
|
|
46
17
|
sender = user @info['sender']
|
47
18
|
sender, body = user_bot body if user_bot? body
|
48
19
|
message = format_matrix_message(body, sender, type)
|
49
|
-
MatrixQQ::QQ::SendGroup.
|
50
|
-
end
|
51
|
-
|
52
|
-
def emoji(msg)
|
53
|
-
return { type: 'text', data: { text: msg } } if (msg & Emoji).empty?
|
54
|
-
msg.each_codepoint.inject([]) do |obj, code|
|
55
|
-
obj <<
|
56
|
-
if Emoji.include? code
|
57
|
-
{ type: 'emoji', data: { id: code.to_s } }
|
58
|
-
else
|
59
|
-
{ type: 'text', data: { text: [code].pack('U') } }
|
60
|
-
end
|
61
|
-
end
|
20
|
+
MatrixQQ::QQ::SendGroup.text @matrix, @room, message
|
62
21
|
end
|
63
22
|
|
64
23
|
def format_matrix_message(msg, name, type = 'm.text')
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module MatrixQQ
|
2
|
+
class QQ
|
3
|
+
class AgreeFriend
|
4
|
+
def initialize(dbus, _, info)
|
5
|
+
@dbus = dbus
|
6
|
+
@info = info
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
return unless @info.is_a? Hash
|
11
|
+
@dbus.set_friend_add_request flag: @info['flag']
|
12
|
+
end
|
13
|
+
end # AgreeFriend
|
14
|
+
|
15
|
+
class AgreeGroup
|
16
|
+
def initialize(dbus, _, info)
|
17
|
+
@dbus = dbus
|
18
|
+
@info = info
|
19
|
+
end
|
20
|
+
|
21
|
+
def run
|
22
|
+
return unless @info.is_a? Hash
|
23
|
+
@dbus.set_group_add_request flag: @info['flag'], type: 'invite'
|
24
|
+
end
|
25
|
+
end # AgreeGroup
|
26
|
+
|
27
|
+
QQ.friend_request << AgreeFriend
|
28
|
+
QQ.invite_request << AgreeGroup
|
29
|
+
end
|
30
|
+
end
|
data/lib/matrix_qq/qq/qq.rb
CHANGED
@@ -28,7 +28,6 @@ module MatrixQQ
|
|
28
28
|
'face' => ->(msg) { "[QQ 表情:#{msg['data']['id']}]" },
|
29
29
|
'bface' => ->(msg) { "[QQ 原创表情:#{msg['data']['id']}]" },
|
30
30
|
'sface' => ->(msg) { "[QQ 小表情:#{msg['data']['id']}]" },
|
31
|
-
'emoji' => ->(msg) { [msg['data']['id'].to_i].pack 'U' },
|
32
31
|
'record' => ->(___) { '[语音]' },
|
33
32
|
'image' => ->(msg) { msg['data']['url'] },
|
34
33
|
'at' => ->(msg) { "@#{msg['data']['qq']} " },
|
data/lib/matrix_qq/qq/require.rb
CHANGED
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.4
|
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-
|
11
|
+
date: 2017-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- lib/matrix_qq/matrix/matrix.rb
|
137
137
|
- lib/matrix_qq/matrix/require.rb
|
138
138
|
- lib/matrix_qq/matrix/send.rb
|
139
|
+
- lib/matrix_qq/qq/agree.rb
|
139
140
|
- lib/matrix_qq/qq/dbus.rb
|
140
141
|
- lib/matrix_qq/qq/forward_friend/main.rb
|
141
142
|
- lib/matrix_qq/qq/forward_friend/matrix.rb
|