细节优化

This commit is contained in:
🌌 2023-07-05 21:46:13 +08:00
parent 69090be9d4
commit 5e42da7f88
1 changed files with 29 additions and 25 deletions

View File

@ -29,6 +29,12 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
return this.toStr(msg).replace(/("type":"(image|file)","data":").*?(")/g, "$1...$3") return this.toStr(msg).replace(/("type":"(image|file)","data":").*?(")/g, "$1...$3")
} }
sendApi(ws, data) {
const msg = JSON.stringify(data)
logger.debug(`发送 API 请求:${logger.cyan(this.makeLog(msg))}`)
return ws.send(msg)
}
makeMsg(msg) { makeMsg(msg) {
if (!Array.isArray(msg)) if (!Array.isArray(msg))
msg = [msg] msg = [msg]
@ -75,33 +81,32 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
sendFriendMsg(data, msg) { sendFriendMsg(data, msg) {
const content = this.makeMsg(msg) const content = this.makeMsg(msg)
logger.info(`${logger.blue(`[${data.self_id}]`)} 发送好友消息:[${data.user_id}] ${this.makeLog(content)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 发送好友消息:[${data.user_id}] ${this.makeLog(content)}`)
return data.bot.ws.send(JSON.stringify({ return data.sendApi({
bot_id: data.bot.bot_id, bot_id: data.bot.bot_id,
bot_self_id: data.bot.bot_self_id, bot_self_id: data.bot.bot_self_id,
target_type: "direct", target_type: "direct",
target_id: data.user_id, target_id: data.user_id,
content, content,
})) })
} }
sendGroupMsg(data, msg) { sendGroupMsg(data, msg) {
const target = data.group_id.split("-") const target = data.group_id.split("-")
const content = this.makeMsg(msg) const content = this.makeMsg(msg)
logger.info(`${logger.blue(`[${data.self_id}]`)} 发送群消息:[${data.group_id}] ${this.makeLog(content)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 发送群消息:[${data.group_id}] ${this.makeLog(content)}`)
return data.bot.ws.send(JSON.stringify({ return data.sendApi({
bot_id: data.bot.bot_id, bot_id: data.bot.bot_id,
bot_self_id: data.bot.bot_self_id, bot_self_id: data.bot.bot_self_id,
target_type: target[0], target_type: target[0],
target_id: target[1], target_id: target[1],
content, content,
})) })
} }
pickFriend(id, user_id) { pickFriend(data, user_id) {
const i = { const i = {
...Bot[id].fl.get(user_id), ...Bot[data.self_id].fl.get(user_id),
self_id: id, ...data,
bot: Bot[id],
user_id: user_id.replace(/^gc_/, ""), user_id: user_id.replace(/^gc_/, ""),
} }
return { return {
@ -113,25 +118,23 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
} }
} }
pickMember(id, group_id, user_id) { pickMember(data, group_id, user_id) {
const i = { const i = {
...Bot[id].fl.get(user_id), ...Bot[data.self_id].fl.get(user_id),
self_id: id, ...data,
bot: Bot[id],
group_id: group_id.replace(/^gc_/, ""), group_id: group_id.replace(/^gc_/, ""),
user_id: user_id.replace(/^gc_/, ""), user_id: user_id.replace(/^gc_/, ""),
} }
return { return {
...this.pickFriend(id, user_id), ...this.pickFriend(i, user_id),
...i, ...i,
} }
} }
pickGroup(id, group_id) { pickGroup(data, group_id) {
const i = { const i = {
...Bot[id].gl.get(group_id), ...Bot[data.self_id].gl.get(group_id),
self_id: id, ...data,
bot: Bot[id],
group_id: group_id.replace(/^gc_/, ""), group_id: group_id.replace(/^gc_/, ""),
} }
return { return {
@ -140,14 +143,14 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
recallMsg: message_id => this.recallMsg(i, message_id => i.bot.API.message.delete(message_id), message_id), recallMsg: message_id => this.recallMsg(i, message_id => i.bot.API.message.delete(message_id), message_id),
makeForwardMsg: Bot.makeForwardMsg, makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendGroupMsg(i, msg), msg), sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendGroupMsg(i, msg), msg),
pickMember: user_id => this.pickMember(id, group_id, user_id), pickMember: user_id => this.pickMember(i, group_id, user_id),
} }
} }
makeBot(data, ws) { makeBot(data) {
Bot[data.self_id] = { Bot[data.self_id] = {
adapter: this, adapter: this,
ws, sendApi: data.sendApi,
uin: data.self_id, uin: data.self_id,
bot_id: data.bot_id, bot_id: data.bot_id,
bot_self_id: data.bot_self_id, bot_self_id: data.bot_self_id,
@ -156,9 +159,9 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
id: this.id, id: this.id,
name: this.name, name: this.name,
}, },
pickFriend: user_id => this.pickFriend(data.self_id, user_id), pickFriend: user_id => this.pickFriend(data, user_id),
pickMember: (group_id, user_id) => this.pickMember(data.self_id, group_id, user_id), pickMember: (group_id, user_id) => this.pickMember(data, group_id, user_id),
pickGroup: group_id => this.pickGroup(data.self_id, group_id), pickGroup: group_id => this.pickGroup(data, group_id),
fl: new Map(), fl: new Map(),
gl: new Map(), gl: new Map(),
} }
@ -177,10 +180,11 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
} }
data.self_id = `gc_${data.bot_self_id}` data.self_id = `gc_${data.bot_self_id}`
data.sendApi = data => this.sendApi(ws, data)
if (Bot[data.self_id]) if (Bot[data.self_id])
Bot[data.self_id].ws = ws Bot[data.self_id].sendApi = data.sendApi
else else
this.makeBot(data, ws) this.makeBot(data)
data.bot = Bot[data.self_id] data.bot = Bot[data.self_id]
data.post_type = "message" data.post_type = "message"