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 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