Class: MatrixQQ::QQ::Log

Inherits:
Object
  • Object
show all
Defined in:
lib/matrix_qq/qq/log.rb

Overview

Log message to stdout

Instance Method Summary collapse

Constructor Details

#initialize(dbus, _, info) ⇒ Log

Returns a new instance of Log.



5
6
7
8
# File 'lib/matrix_qq/qq/log.rb', line 5

def initialize(dbus, _, info)
  @dbus = dbus
  @info = info
end

Instance Method Details

#log_message(name, message) ⇒ Object



27
28
29
# File 'lib/matrix_qq/qq/log.rb', line 27

def log_message(name, message)
  puts "#{name}: #{message}"
end

#log_room(groupid) ⇒ Object



31
32
33
# File 'lib/matrix_qq/qq/log.rb', line 31

def log_room(groupid)
  puts "#{room(groupid)}:"
end

#message(messages) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/matrix_qq/qq/log.rb', line 18

def message(messages)
  messages.inject('') do |obj, msg|
    obj + case msg['type']
          when 'at' then "@#{user msg['data']['qq'], @info['group_id']} "
          else QQ.cq_call msg
          end
  end
end

#room(groupid) ⇒ Object



35
36
37
# File 'lib/matrix_qq/qq/log.rb', line 35

def room(groupid)
  groupid
end

#runObject



10
11
12
13
14
15
16
# File 'lib/matrix_qq/qq/log.rb', line 10

def run
  return unless @info.is_a? Hash
  log_room @info['group_id'] if @info.key? 'group_id'
  msg = message @info['message']
  sender = user @info['user_id'], @info['group_id']
  log_message sender, msg
end

#user(user, group_id = nil) ⇒ Object



39
40
41
42
43
44
45
46
47
# File 'lib/matrix_qq/qq/log.rb', line 39

def user(user, group_id = nil)
  if group_id.nil?
    return @dbus.get_stranger_info(user_id: user)['nickname']
  end
  info = @dbus.get_group_member_info(user_id: user, group_id: group_id)
  info = info['data']
  name = info['card']
  name == '' ? info['nickname'] : name
end