Class: Onebot::Http::API

Inherits:
Object
  • Object
show all
Defined in:
lib/Core/Http/API.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host: '127.0.0.1', port: 5700) ⇒ URI

(初始化) 设置API地址

Parameters:

  • host (String) (defaults to: '127.0.0.1')
  • port (Number) (defaults to: 5700)


17
18
19
20
# File 'lib/Core/Http/API.rb', line 17

def initialize(host: '127.0.0.1', port: 5700)
  @url = URI::HTTP.build(host: host, port: port)
  @logger = Logging::EventLogger.new
end

Instance Attribute Details

#urlURI

Returns HTTP API链接.

Returns:

  • (URI)

    HTTP API链接



10
11
12
# File 'lib/Core/Http/API.rb', line 10

def url
  @url
end

Instance Method Details

#acceptFriendRequest(flag, reason = nil) ⇒ Boolean

接受好友邀请

Parameters:

  • flag (String)
  • reason (String) (defaults to: nil)

Returns:

  • (Boolean)


107
108
109
110
111
112
113
114
115
116
# File 'lib/Core/Http/API.rb', line 107

def acceptFriendRequest(flag, reason = nil)
  data = sendReq('set_friend_add_request', { flag:, approve: true, remark: reason })
  if data['status'] == 'ok'
    @logger.log '已通过好友请求'
    true
  else
    @logger.log '请求通过失败', Logger::WARN
    false
  end
end

#acceptGroupRequest(flag, sub_type) ⇒ Boolean

接受加群请求

Parameters:

  • flag (String)
  • sub_type (String)

Returns:

  • (Boolean)


138
139
140
141
142
143
144
145
146
147
# File 'lib/Core/Http/API.rb', line 138

def acceptGroupRequest(flag, sub_type)
  data = sendReq('set_group_add_request', { flag:, sub_type:, approve: true })
  if data['status'] == 'ok'
    @logger.log '已通过加群请求'
    true
  else
    @logger.log '请求通过失败', Logger::WARN
    false
  end
end

#get_msg(message_id) ⇒ Hash

获取消息

Parameters:

  • message_id (Number)

Returns:



60
61
62
63
64
65
66
67
68
# File 'lib/Core/Http/API.rb', line 60

def get_msg(message_id)
  data = sendReq('get_msg', { message_id: })
  if data['status'] == 'ok'
    @logger.log '消息获取成功'
  else
    @logger.log '消息获取失败', Logger::WARN
  end
  data['data']
end

#getImage(file) ⇒ Hash

获取图片信息

Parameters:

  • file (String)

Returns:



46
47
48
49
50
51
52
53
54
# File 'lib/Core/Http/API.rb', line 46

def getImage(file)
  data = sendReq('get_image', { file: })
  if data['status'] == 'ok'
    @logger.log '下载图片成功'
  else
    @logger.log '下载图片失败', Logger::WARN
  end
  data['data']
end

#refuseFriendRequest(flag) ⇒ Boolean

拒绝好友邀请

Parameters:

  • flag (String)

Returns:

  • (Boolean)


122
123
124
125
126
127
128
129
130
131
# File 'lib/Core/Http/API.rb', line 122

def refuseFriendRequest(flag)
  data = sendReq('set_friend_add_request', { flag:, approve: false })
  if data['status'] == 'ok'
    @logger.log '已拒绝好友请求'
    true
  else
    @logger.log '请求拒绝失败', Logger::WARN
    false
  end
end

#refuseGroupRequest(flag, sub_type, reason = nil) ⇒ Boolean

拒绝加群请求

Parameters:

  • flag (String)
  • sub_type (String)
  • reason (String) (defaults to: nil)

Returns:

  • (Boolean)


155
156
157
158
159
160
161
162
163
164
# File 'lib/Core/Http/API.rb', line 155

def refuseGroupRequest(flag, sub_type, reason = nil)
  data = sendReq('set_group_add_request', { flag:, sub_type:, approve: false, reason: })
  if data['status'] == 'ok'
    @logger.log '已拒绝加群请求'
    true
  else
    @logger.log '请求拒绝失败', Logger::WARN
    false
  end
end

#sendGroupMessage(msg, group_id) ⇒ Hash

发送群聊消息

Parameters:

  • msg (String)
  • group_id (Number)

Returns:



91
92
93
94
95
96
97
98
99
100
# File 'lib/Core/Http/API.rb', line 91

def sendGroupMessage(msg, group_id)
  data = sendReq('send_group_msg', { group_id:, message: msg })
  if data['status'] == 'ok'
    message_id = data['data']['message_id']
    @logger.log "发送至群 #{group_id} 的消息: #{msg} (#{message_id})"
  else
    @logger.log '发送消息失败', Logger::WARN
  end
  data['data']
end

#sendPrivateMessage(msg, user_id) ⇒ Hash

发送私聊消息

Parameters:

  • msg (String)
  • user_id (Number)

Returns:



75
76
77
78
79
80
81
82
83
84
# File 'lib/Core/Http/API.rb', line 75

def sendPrivateMessage(msg, user_id)
  data = sendReq('send_private_msg', { user_id:, message: msg })
  if data['status'] == 'ok'
    message_id = data['data']['message_id']
    @logger.log "发送至私聊 #{user_id} 的消息: #{msg} (#{message_id})"
  else
    @logger.log '发送消息失败', Logger::WARN
  end
  data['data']
end

#setGroupName(group_id, group_name) ⇒ Hash

设置群名

Parameters:

  • group_id (Number)
  • group_name (String)

Returns:



32
33
34
35
36
37
38
39
40
# File 'lib/Core/Http/API.rb', line 32

def setGroupName(group_id, group_name)
  data = sendReq('set_group_name', { group_id: group_id.to_i, group_name: })
  if data['status'] == 'ok'
    @logger.log '设置群头像成功'
  else
    @logger.log '设置群头像失败', Logger::WARN
  end
  data['data']
end

#setLogger(logger) ⇒ Object



22
23
24
25
# File 'lib/Core/Http/API.rb', line 22

def setLogger(logger)
  @logger = Logging::EventLogger.new(logger)
  self
end