matrix_qq 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c29f625d98e417ccbcb15f76dc231e1cdbbc7543
4
- data.tar.gz: e42689a5edb2b7d5fa9244a595c40c8273d5e9cf
3
+ metadata.gz: a5b0224c44fe8e0830e5104fef1cdd402f2c258a
4
+ data.tar.gz: 4f8bb6c7e97bc23e1618949f0f8199381d04ea0d
5
5
  SHA512:
6
- metadata.gz: 53eedc6eaf07ed958e3665c567e1cbcf44a4225011a718b74048e3168533d022e6014fdf5542d84b5a3db277a99615b1f1464b0ebd9f9d3975f9ae8819b6d5ef
7
- data.tar.gz: 17a29886324a8071383bf8ffc15190c20e1a3e1927619b421d4ccd9f165ef6bef18055118c009e4c83878b304be82aeb728afb280bdce73774a2502661dd1284
6
+ metadata.gz: 583a69bcbc243bd8b5521aa0627298de9b4487185f87ff8a846ef3241d4aaf6220e6088148fac466aad5cb90a94a8745d09ff58ce00bd177333ed6d563920493
7
+ data.tar.gz: 34bbb59d6a0824b4dca1440897dd99751d7aabecfd80e35b4dbca906b494d4697e6aa7a908c30a612a8c4b82ebb882fd1697df3fc44dd0fc5bc92031a16749d9
data/CHANGELOG.yaml CHANGED
@@ -1,6 +1,10 @@
1
1
  # Notice: Incompatible items start with `!`
2
2
 
3
3
  master:
4
+ Feature:
5
+ - hack
6
+ Change:
7
+ - user name by hack
4
8
  0.5.4:
5
9
  Feature:
6
10
  - agree friend add request
@@ -14,8 +14,7 @@ module MatrixQQ
14
14
  msg = @info['content']
15
15
  body = msg['body']
16
16
  type = msg['msgtype']
17
- sender = user @info['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 #{info}"
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
@@ -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['sender'], event['content']
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
- name = user sender
23
- if content['msgtype'] == 'm.text'
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 json
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
@@ -1,5 +1,6 @@
1
1
  require 'matrix_qq/matrix/dbus'
2
2
  require 'matrix_qq/matrix/matrix'
3
+ require 'matrix_qq/matrix/hack'
3
4
 
4
5
  require 'matrix_qq/matrix/log'
5
6
 
@@ -0,0 +1,12 @@
1
+ module MatrixQQ
2
+ class QQ
3
+ module Hack
4
+ class << self
5
+ attr_accessor :list
6
+ end
7
+
8
+ Hack.list = []
9
+
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module MatrixQQ
2
- VERSION = '0.5.4'.freeze
2
+ VERSION = '0.5.5'.freeze
3
3
  end
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
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-15 00:00:00.000000000 Z
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