错误修复

This commit is contained in:
🌌 2023-08-21 11:55:17 +08:00
parent 9c31f1fda9
commit 2a7ac179cd
3 changed files with 108 additions and 105 deletions

View File

@ -71,7 +71,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
} }
logger.info(`${logger.blue(`[${data.self_id}]`)} 上传文件:${this.makeLog(opts)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 上传文件:${this.makeLog(opts)}`)
return data.sendApi("upload_file", opts) return data.bot.sendApi("upload_file", opts)
} }
async makeMsg(data, msg) { async makeMsg(data, msg) {
@ -124,7 +124,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
const message = await this.makeMsg(data, msg) const message = await this.makeMsg(data, msg)
logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友消息:${this.makeLog(message)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友消息:${this.makeLog(message)}`)
return data.sendApi("send_message", { return data.bot.sendApi("send_message", {
detail_type: "private", detail_type: "private",
user_id: data.user_id, user_id: data.user_id,
message, message,
@ -137,7 +137,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
const message = await this.makeMsg(data, msg) const message = await this.makeMsg(data, msg)
logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群消息:${this.makeLog(message)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群消息:${this.makeLog(message)}`)
return data.sendApi("send_message", { return data.bot.sendApi("send_message", {
detail_type: "group", detail_type: "group",
group_id: data.group_id, group_id: data.group_id,
message, message,
@ -146,7 +146,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
async getFriendArray(data) { async getFriendArray(data) {
const array = [] const array = []
for (const i of (await data.sendApi("get_friend_list")).data) for (const i of (await data.bot.sendApi("get_friend_list")).data)
array.push({ array.push({
...i, ...i,
nickname: i.user_remark == "null" ? i.user_displayname || i.user_name : i.user_remark, nickname: i.user_remark == "null" ? i.user_displayname || i.user_name : i.user_remark,
@ -163,18 +163,18 @@ Bot.adapter.push(new class ComWeChatAdapter {
async getFriendMap(data) { async getFriendMap(data) {
for (const i of (await this.getFriendArray(data))) for (const i of (await this.getFriendArray(data)))
Bot[data.self_id].fl.set(i.user_id, i) data.bot.fl.set(i.user_id, i)
return Bot[data.self_id].fl return data.bot.fl
} }
getFriendInfo(data) { getFriendInfo(data) {
return data.sendApi("get_user_info", { return data.bot.sendApi("get_user_info", {
user_id: data.user_id, user_id: data.user_id,
}) })
} }
async getGroupArray(data) { async getGroupArray(data) {
return (await data.sendApi("get_group_list")).data return (await data.bot.sendApi("get_group_list")).data
} }
async getGroupList(data) { async getGroupList(data) {
@ -186,18 +186,18 @@ Bot.adapter.push(new class ComWeChatAdapter {
async getGroupMap(data) { async getGroupMap(data) {
for (const i of (await this.getGroupArray(data))) for (const i of (await this.getGroupArray(data)))
Bot[data.self_id].gl.set(i.group_id, i) data.bot.gl.set(i.group_id, i)
return Bot[data.self_id].gl return data.bot.gl
} }
getGroupInfo(data) { getGroupInfo(data) {
return data.sendApi("get_group_info", { return data.bot.sendApi("get_group_info", {
group_id: data.group_id, group_id: data.group_id,
}) })
} }
async getMemberArray(data) { async getMemberArray(data) {
return (await data.sendApi("get_group_member_list", { return (await data.bot.sendApi("get_group_member_list", {
group_id: data.group_id, group_id: data.group_id,
})).data })).data
} }
@ -217,7 +217,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
} }
getMemberInfo(data) { getMemberInfo(data) {
return data.sendApi("get_group_member_info", { return data.bot.sendApi("get_group_member_info", {
group_id: data.group_id, group_id: data.group_id,
user_id: data.user_id, user_id: data.user_id,
}) })
@ -232,7 +232,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
pickFriend(data, user_id) { pickFriend(data, user_id) {
const i = { const i = {
...Bot[data.self_id].fl.get(user_id), ...data.bot.fl.get(user_id),
...data, ...data,
user_id, user_id,
} }
@ -247,7 +247,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
pickMember(data, group_id, user_id) { pickMember(data, group_id, user_id) {
const i = { const i = {
...Bot[data.self_id].fl.get(user_id), ...data.bot.fl.get(user_id),
...data, ...data,
group_id, group_id,
user_id, user_id,
@ -262,7 +262,7 @@ Bot.adapter.push(new class ComWeChatAdapter {
pickGroup(data, group_id) { pickGroup(data, group_id) {
const i = { const i = {
...Bot[data.self_id].gl.get(group_id), ...data.bot.gl.get(group_id),
...data, ...data,
group_id, group_id,
} }
@ -279,13 +279,14 @@ Bot.adapter.push(new class ComWeChatAdapter {
} }
} }
async connect(data) { async connect(data, ws) {
for (const bot of data.status.bots) for (const bot of data.status.bots)
data.self_id = bot.self.user_id data.self_id = bot.self.user_id
Bot[data.self_id] = { Bot[data.self_id] = {
adapter: this, adapter: this,
sendApi: data.sendApi, ws: ws,
sendApi: (action, params) => this.sendApi(ws, action, params),
stat: { ...data.status, start_time: data.time }, stat: { ...data.status, start_time: data.time },
info: {}, info: {},
@ -308,21 +309,22 @@ Bot.adapter.push(new class ComWeChatAdapter {
gl: new Map, gl: new Map,
gml: new Map, gml: new Map,
} }
data.bot = Bot[data.self_id]
if (!Bot.uin.includes(data.self_id)) if (!Bot.uin.includes(data.self_id))
Bot.uin.push(data.self_id) Bot.uin.push(data.self_id)
Bot[data.self_id].info = (await data.sendApi("get_self_info")).data data.bot.info = (await data.bot.sendApi("get_self_info")).data
Bot[data.self_id].version = { data.bot.version = {
...(await data.sendApi("get_version")).data, ...(await data.bot.sendApi("get_version")).data,
id: this.id, id: this.id,
name: this.name, name: this.name,
} }
Bot[data.self_id].getFriendMap() data.bot.getFriendMap()
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
logger.mark(`${logger.blue(`[${data.self_id}]`)} ${this.name}(${this.id}) ${Bot[data.self_id].version.impl}-${Bot[data.self_id].version.version} 已连接`) logger.mark(`${logger.blue(`[${data.self_id}]`)} ${this.name}(${this.id}) ${data.bot.version.impl}-${data.bot.version.version} 已连接`)
Bot.em(`connect.${data.self_id}`, data) Bot.em(`connect.${data.self_id}`, data)
} }
@ -444,14 +446,14 @@ Bot.adapter.push(new class ComWeChatAdapter {
Bot.em(`${data.post_type}.${data.request_type}.${data.sub_type}`, data) Bot.em(`${data.post_type}.${data.request_type}.${data.sub_type}`, data)
} }
makeMeta(data) { makeMeta(data, ws) {
switch (data.detail_type) { switch (data.detail_type) {
case "heartbeat": case "heartbeat":
break break
case "connect": case "connect":
break break
case "status_update": case "status_update":
this.connect(data) this.connect(data, ws)
break break
default: default:
logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知消息:${logger.magenta(JSON.stringify(data))}`) logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知消息:${logger.magenta(JSON.stringify(data))}`)
@ -476,12 +478,11 @@ Bot.adapter.push(new class ComWeChatAdapter {
logger.warn(`${logger.blue(`[${data.self_id}]`)} 找不到对应Bot忽略消息${logger.magenta(JSON.stringify(data))}`) logger.warn(`${logger.blue(`[${data.self_id}]`)} 找不到对应Bot忽略消息${logger.magenta(JSON.stringify(data))}`)
return false return false
} }
data.sendApi = (action, params) => this.sendApi(ws, action, params)
data.bot = Bot[data.self_id] data.bot = Bot[data.self_id]
switch (data.type) { switch (data.type) {
case "meta": case "meta":
this.makeMeta(data) this.makeMeta(data, ws)
break break
case "message": case "message":
this.makeMessage(data) this.makeMessage(data)

View File

@ -140,10 +140,11 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
} }
} }
makeBot(data) { makeBot(data, ws) {
Bot[data.self_id] = { Bot[data.self_id] = {
adapter: this, adapter: this,
sendApi: data.sendApi, ws: ws,
get sendApi() { return this.ws.sendMsg },
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,
@ -173,12 +174,12 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
} }
data.self_id = data.bot_self_id data.self_id = data.bot_self_id
data.sendApi = data => ws.sendMsg(data) if (Bot[data.self_id]) {
if (Bot[data.self_id]) data.bot = Bot[data.self_id]
Bot[data.self_id].sendApi = data.sendApi data.bot.ws = ws
else } else {
this.makeBot(data) this.makeBot(data, ws)
data.bot = Bot[data.self_id] }
data.post_type = "message" data.post_type = "message"
data.message_id = data.msg_id data.message_id = data.msg_id

View File

@ -39,7 +39,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setProfile(data, profile) { setProfile(data, profile) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 设置资料:${JSON.stringify(profile)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 设置资料:${JSON.stringify(profile)}`)
return data.sendApi("set_qq_profile", profile) return data.bot.sendApi("set_qq_profile", profile)
} }
makeMsg(msg) { makeMsg(msg) {
@ -63,7 +63,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
return this.sendFriendForwardMsg(data, msg.data) return this.sendFriendForwardMsg(data, msg.data)
logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友消息:${this.makeLog(msg)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友消息:${this.makeLog(msg)}`)
return data.sendApi("send_msg", { return data.bot.sendApi("send_msg", {
user_id: data.user_id, user_id: data.user_id,
message: this.makeMsg(msg), message: this.makeMsg(msg),
}) })
@ -74,7 +74,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
return this.sendGroupForwardMsg(data, msg.data) return this.sendGroupForwardMsg(data, msg.data)
logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群消息:${this.makeLog(msg)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群消息:${this.makeLog(msg)}`)
return data.sendApi("send_msg", { return data.bot.sendApi("send_msg", {
group_id: data.group_id, group_id: data.group_id,
message: this.makeMsg(msg), message: this.makeMsg(msg),
}) })
@ -85,7 +85,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
return Bot.sendForwardMsg(msg => this.sendGuildMsg(data, msg), msg) return Bot.sendForwardMsg(msg => this.sendGuildMsg(data, msg), msg)
logger.info(`${logger.blue(`[${data.self_id}] => ${data.guild_id}-${data.channel_id}`)} 发送频道消息:${this.makeLog(msg)}`) logger.info(`${logger.blue(`[${data.self_id}] => ${data.guild_id}-${data.channel_id}`)} 发送频道消息:${this.makeLog(msg)}`)
return data.sendApi("send_guild_channel_msg", { return data.bot.sendApi("send_guild_channel_msg", {
guild_id: data.guild_id, guild_id: data.guild_id,
channel_id: data.channel_id, channel_id: data.channel_id,
message: this.makeMsg(msg), message: this.makeMsg(msg),
@ -93,7 +93,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
async getMsg(data, message_id) { async getMsg(data, message_id) {
const msg = (await data.sendApi("get_msg", { message_id })).data const msg = (await data.bot.sendApi("get_msg", { message_id })).data
if (msg?.message) { if (msg?.message) {
const message = [] const message = []
@ -107,11 +107,11 @@ Bot.adapter.push(new class gocqhttpAdapter {
recallMsg(data, message_id) { recallMsg(data, message_id) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 撤回消息:${message_id}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 撤回消息:${message_id}`)
return data.sendApi("delete_msg", { message_id }) return data.bot.sendApi("delete_msg", { message_id })
} }
getForwardMsg(data, message_id) { getForwardMsg(data, message_id) {
return data.sendApi("get_forward_msg", { message_id }) return data.bot.sendApi("get_forward_msg", { message_id })
} }
makeForwardMsg(msg) { makeForwardMsg(msg) {
@ -131,7 +131,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
async sendFriendForwardMsg(data, msg) { async sendFriendForwardMsg(data, msg) {
logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友转发消息:${this.makeLog(msg)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友转发消息:${this.makeLog(msg)}`)
msg = await data.sendApi("send_private_forward_msg", { msg = await data.bot.sendApi("send_private_forward_msg", {
user_id: data.user_id, user_id: data.user_id,
messages: this.makeForwardMsg(msg), messages: this.makeForwardMsg(msg),
}) })
@ -140,7 +140,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
async sendGroupForwardMsg(data, msg) { async sendGroupForwardMsg(data, msg) {
logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群转发消息:${this.makeLog(msg)}`) logger.info(`${logger.blue(`[${data.self_id} => ${data.group_id}]`)} 发送群转发消息:${this.makeLog(msg)}`)
msg = await data.sendApi("send_group_forward_msg", { msg = await data.bot.sendApi("send_group_forward_msg", {
group_id: data.group_id, group_id: data.group_id,
messages: this.makeForwardMsg(msg), messages: this.makeForwardMsg(msg),
}) })
@ -148,7 +148,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
async getFriendArray(data) { async getFriendArray(data) {
return (await data.sendApi("get_friend_list")).data return (await data.bot.sendApi("get_friend_list")).data
} }
async getFriendList(data) { async getFriendList(data) {
@ -160,18 +160,18 @@ Bot.adapter.push(new class gocqhttpAdapter {
async getFriendMap(data) { async getFriendMap(data) {
for (const i of (await this.getFriendArray(data))) for (const i of (await this.getFriendArray(data)))
Bot[data.self_id].fl.set(i.user_id, i) data.bot.fl.set(i.user_id, i)
return Bot[data.self_id].fl return data.bot.fl
} }
getFriendInfo(data) { getFriendInfo(data) {
return data.sendApi("get_stranger_info", { return data.bot.sendApi("get_stranger_info", {
user_id: data.user_id, user_id: data.user_id,
}) })
} }
async getGroupArray(data) { async getGroupArray(data) {
const array = (await data.sendApi("get_group_list")).data const array = (await data.bot.sendApi("get_group_list")).data
for (const guild of (await this.getGuildArray(data))) for (const guild of (await this.getGuildArray(data)))
for (const channel of (await this.getGuildChannelArray({ for (const channel of (await this.getGuildChannelArray({
...data, ...data,
@ -195,18 +195,18 @@ Bot.adapter.push(new class gocqhttpAdapter {
async getGroupMap(data) { async getGroupMap(data) {
for (const i of (await this.getGroupArray(data))) for (const i of (await this.getGroupArray(data)))
Bot[data.self_id].gl.set(i.group_id, i) data.bot.gl.set(i.group_id, i)
return Bot[data.self_id].gl return data.bot.gl
} }
getGroupInfo(data) { getGroupInfo(data) {
return data.sendApi("get_group_info", { return data.bot.sendApi("get_group_info", {
group_id: data.group_id, group_id: data.group_id,
}) })
} }
async getMemberArray(data) { async getMemberArray(data) {
return (await data.sendApi("get_group_member_list", { return (await data.bot.sendApi("get_group_member_list", {
group_id: data.group_id, group_id: data.group_id,
})).data })).data
} }
@ -226,24 +226,24 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
getMemberInfo(data) { getMemberInfo(data) {
return data.sendApi("get_group_member_info", { return data.bot.sendApi("get_group_member_info", {
group_id: data.group_id, group_id: data.group_id,
user_id: data.user_id, user_id: data.user_id,
}) })
} }
async getGuildArray(data) { async getGuildArray(data) {
return (await data.sendApi("get_guild_list")).data return (await data.bot.sendApi("get_guild_list")).data
} }
getGuildInfo(data) { getGuildInfo(data) {
return data.sendApi("get_guild_meta_by_guest", { return data.bot.sendApi("get_guild_meta_by_guest", {
guild_id: data.guild_id, guild_id: data.guild_id,
}) })
} }
async getGuildChannelArray(data) { async getGuildChannelArray(data) {
return (await data.sendApi("get_guild_channel_list", { return (await data.bot.sendApi("get_guild_channel_list", {
guild_id: data.guild_id, guild_id: data.guild_id,
})).data })).data
} }
@ -259,7 +259,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
const array = [] const array = []
let next_token = "" let next_token = ""
while (true) { while (true) {
const list = (await data.sendApi("get_guild_member_list", { const list = (await data.bot.sendApi("get_guild_member_list", {
guild_id: data.guild_id, guild_id: data.guild_id,
next_token, next_token,
})).data })).data
@ -290,7 +290,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
getGuildMemberInfo(data) { getGuildMemberInfo(data) {
return data.sendApi("get_guild_member_profile", { return data.bot.sendApi("get_guild_member_profile", {
guild_id: data.guild_id, guild_id: data.guild_id,
user_id: data.user_id, user_id: data.user_id,
}) })
@ -298,7 +298,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setGroupName(data, group_name) { setGroupName(data, group_name) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群名:[${data.group_id}] ${group_name}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群名:[${data.group_id}] ${group_name}`)
return data.sendApi("set_group_name", { return data.bot.sendApi("set_group_name", {
group_id: data.group_id, group_id: data.group_id,
group_name, group_name,
}) })
@ -306,7 +306,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setGroupAvatar(data, file) { setGroupAvatar(data, file) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群头像:[${data.group_id}] ${file}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群头像:[${data.group_id}] ${file}`)
return data.sendApi("set_group_portrait", { return data.bot.sendApi("set_group_portrait", {
group_id: data.group_id, group_id: data.group_id,
file: segment.image(file).file, file: segment.image(file).file,
}) })
@ -314,7 +314,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setGroupAdmin(data, user_id, enable) { setGroupAdmin(data, user_id, enable) {
logger.info(`${logger.blue(`[${data.self_id}]`)} ${enable ? "设置" : "取消"}群管理员:[${data.group_id}] ${user_id}`) logger.info(`${logger.blue(`[${data.self_id}]`)} ${enable ? "设置" : "取消"}群管理员:[${data.group_id}] ${user_id}`)
return data.sendApi("set_group_admin", { return data.bot.sendApi("set_group_admin", {
group_id: data.group_id, group_id: data.group_id,
user_id, user_id,
enable, enable,
@ -323,7 +323,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setGroupCard(data, user_id, card) { setGroupCard(data, user_id, card) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群名片:[${data.group_id}] ${user_id} ${card}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群名片:[${data.group_id}] ${user_id} ${card}`)
return data.sendApi("set_group_card", { return data.bot.sendApi("set_group_card", {
group_id: data.group_id, group_id: data.group_id,
user_id, user_id,
card, card,
@ -332,7 +332,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
setGroupTitle(data, user_id, special_title, duration) { setGroupTitle(data, user_id, special_title, duration) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群头衔:[${data.group_id}] ${user_id} ${special_title} ${duration}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 设置群头衔:[${data.group_id}] ${user_id} ${special_title} ${duration}`)
return data.sendApi("set_group_special_title", { return data.bot.sendApi("set_group_special_title", {
group_id: data.group_id, group_id: data.group_id,
user_id, user_id,
special_title, special_title,
@ -341,7 +341,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
downloadFile(data, url, thread_count, headers) { downloadFile(data, url, thread_count, headers) {
return data.sendApi("download_file", { return data.bot.sendApi("download_file", {
url, url,
thread_count, thread_count,
headers, headers,
@ -358,7 +358,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
async sendFriendFile(data, file, name) { async sendFriendFile(data, file, name) {
logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友文件:${name}(${file})`) logger.info(`${logger.blue(`[${data.self_id} => ${data.user_id}]`)} 发送好友文件:${name}(${file})`)
return data.sendApi("upload_private_file", { return data.bot.sendApi("upload_private_file", {
user_id: data.user_id, user_id: data.user_id,
...await this.makeFile(data, file, name), ...await this.makeFile(data, file, name),
}) })
@ -366,7 +366,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
async sendGroupFile(data, file, folder, name) { async sendGroupFile(data, file, folder, name) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 发送群文件:[${data.group_id}] ${folder||""}/${name}(${file})`) logger.info(`${logger.blue(`[${data.self_id}]`)} 发送群文件:[${data.group_id}] ${folder||""}/${name}(${file})`)
return data.sendApi("upload_group_file", { return data.bot.sendApi("upload_group_file", {
group_id: data.group_id, group_id: data.group_id,
folder, folder,
...await this.makeFile(data, file, name), ...await this.makeFile(data, file, name),
@ -375,7 +375,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
deleteGroupFile(data, file_id, busid) { deleteGroupFile(data, file_id, busid) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 删除群文件:[${data.group_id}] ${file_id}(${busid})`) logger.info(`${logger.blue(`[${data.self_id}]`)} 删除群文件:[${data.group_id}] ${file_id}(${busid})`)
return data.sendApi("delete_group_file", { return data.bot.sendApi("delete_group_file", {
group_id: data.group_id, group_id: data.group_id,
file_id, file_id,
busid, busid,
@ -384,31 +384,31 @@ Bot.adapter.push(new class gocqhttpAdapter {
createGroupFileFolder(data, name) { createGroupFileFolder(data, name) {
logger.info(`${logger.blue(`[${data.self_id}]`)} 创建群文件夹:[${data.group_id}] ${name}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 创建群文件夹:[${data.group_id}] ${name}`)
return data.sendApi("create_group_file_folder", { return data.bot.sendApi("create_group_file_folder", {
group_id: data.group_id, group_id: data.group_id,
name, name,
}) })
} }
getGroupFileSystemInfo(data) { getGroupFileSystemInfo(data) {
return data.sendApi("get_group_file_system_info", { return data.bot.sendApi("get_group_file_system_info", {
group_id: data.group_id, group_id: data.group_id,
}) })
} }
getGroupFiles(data, folder_id) { getGroupFiles(data, folder_id) {
if (folder_id) if (folder_id)
return data.sendApi("get_group_files_by_folder", { return data.bot.sendApi("get_group_files_by_folder", {
group_id: data.group_id, group_id: data.group_id,
folder_id, folder_id,
}) })
return data.sendApi("get_group_root_files", { return data.bot.sendApi("get_group_root_files", {
group_id: data.group_id, group_id: data.group_id,
}) })
} }
getGroupFileUrl(data, file_id, busid) { getGroupFileUrl(data, file_id, busid) {
return data.sendApi("get_group_file_url", { return data.bot.sendApi("get_group_file_url", {
group_id: data.group_id, group_id: data.group_id,
file_id, file_id,
busid, busid,
@ -427,7 +427,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
setFriendAddRequest(data, flag, approve, remark) { setFriendAddRequest(data, flag, approve, remark) {
return data.sendApi("set_friend_add_request", { return data.bot.sendApi("set_friend_add_request", {
flag, flag,
approve, approve,
remark, remark,
@ -435,7 +435,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
setGroupAddRequest(data, flag, sub_type, approve, reason) { setGroupAddRequest(data, flag, sub_type, approve, reason) {
return data.sendApi("set_group_add_request", { return data.bot.sendApi("set_group_add_request", {
flag, flag,
sub_type, sub_type,
approve, approve,
@ -445,7 +445,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
pickFriend(data, user_id) { pickFriend(data, user_id) {
const i = { const i = {
...Bot[data.self_id].fl.get(user_id), ...data.bot.fl.get(user_id),
...data, ...data,
user_id, user_id,
} }
@ -480,7 +480,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
const i = { const i = {
...Bot[data.self_id].fl.get(user_id), ...data.bot.fl.get(user_id),
...data, ...data,
group_id, group_id,
user_id, user_id,
@ -497,7 +497,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
if (typeof group_id == "string" && group_id.match("-")) { if (typeof group_id == "string" && group_id.match("-")) {
const guild_id = group_id.split("-") const guild_id = group_id.split("-")
const i = { const i = {
...Bot[data.self_id].gl.get(group_id), ...data.bot.gl.get(group_id),
...data, ...data,
guild_id: guild_id[0], guild_id: guild_id[0],
channel_id: guild_id[1], channel_id: guild_id[1],
@ -520,7 +520,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
const i = { const i = {
...Bot[data.self_id].gl.get(group_id), ...data.bot.gl.get(group_id),
...data, ...data,
group_id, group_id,
} }
@ -548,10 +548,11 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
} }
async connect(data) { async connect(data, ws) {
Bot[data.self_id] = { Bot[data.self_id] = {
adapter: this, adapter: this,
sendApi: data.sendApi, ws: ws,
sendApi: (action, params) => this.sendApi(ws, action, params),
stat: { start_time: data.time }, stat: { start_time: data.time },
model: "TRSS Yunzai ", model: "TRSS Yunzai ",
@ -579,32 +580,33 @@ Bot.adapter.push(new class gocqhttpAdapter {
gml: new Map, gml: new Map,
request_list: [], request_list: [],
getSystemMsg: () => Bot[data.self_id].request_list, getSystemMsg: () => data.bot.request_list,
setFriendAddRequest: (flag, approve, remark) => this.setFriendAddRequest(data, flag, approve, remark), setFriendAddRequest: (flag, approve, remark) => this.setFriendAddRequest(data, flag, approve, remark),
setGroupAddRequest: (flag, sub_type, approve, reason) => this.setGroupAddRequest(data, flag, sub_type, approve, reason), setGroupAddRequest: (flag, sub_type, approve, reason) => this.setGroupAddRequest(data, flag, sub_type, approve, reason),
} }
data.bot = Bot[data.self_id]
if (!Bot.uin.includes(data.self_id)) if (!Bot.uin.includes(data.self_id))
Bot.uin.push(data.self_id) Bot.uin.push(data.self_id)
data.sendApi("_set_model_show", { data.bot.sendApi("_set_model_show", {
model: Bot[data.self_id].model, model: data.bot.model,
model_show: Bot[data.self_id].model, model_show: data.bot.model,
}) })
Bot[data.self_id].info = (await data.sendApi("get_login_info")).data data.bot.info = (await data.bot.sendApi("get_login_info")).data
Bot[data.self_id].guild_info = (await data.sendApi("get_guild_service_profile")).data data.bot.guild_info = (await data.bot.sendApi("get_guild_service_profile")).data
Bot[data.self_id].clients = (await data.sendApi("get_online_clients")).clients data.bot.clients = (await data.bot.sendApi("get_online_clients")).clients
Bot[data.self_id].version = { data.bot.version = {
...(await data.sendApi("get_version_info")).data, ...(await data.bot.sendApi("get_version_info")).data,
id: this.id, id: this.id,
name: this.name, name: this.name,
} }
Bot[data.self_id].getFriendMap() data.bot.getFriendMap()
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
logger.mark(`${logger.blue(`[${data.self_id}]`)} ${this.name}(${this.id}) ${Bot[data.self_id].version.app_full_name} 已连接`) logger.mark(`${logger.blue(`[${data.self_id}]`)} ${this.name}(${this.id}) ${data.bot.version.app_full_name} 已连接`)
Bot.em(`connect.${data.self_id}`, data) Bot.em(`connect.${data.self_id}`, data)
} }
@ -645,12 +647,12 @@ Bot.adapter.push(new class gocqhttpAdapter {
case "group_increase": case "group_increase":
logger.info(`${logger.blue(`[${data.self_id}]`)} 群成员增加:[${data.group_id}, ${data.operator_id}=>${data.user_id}] ${data.sub_type}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群成员增加:[${data.group_id}, ${data.operator_id}=>${data.user_id}] ${data.sub_type}`)
if (data.user_id == data.self_id) if (data.user_id == data.self_id)
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
break break
case "group_decrease": case "group_decrease":
logger.info(`${logger.blue(`[${data.self_id}]`)} 群成员减少:[${data.group_id}, ${data.operator_id}=>${data.user_id}] ${data.sub_type}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群成员减少:[${data.group_id}, ${data.operator_id}=>${data.user_id}] ${data.sub_type}`)
if (data.user_id == data.self_id) if (data.user_id == data.self_id)
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
break break
case "group_admin": case "group_admin":
logger.info(`${logger.blue(`[${data.self_id}]`)} 群管理员变动:[${data.group_id}, ${data.user_id}] ${data.sub_type}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群管理员变动:[${data.group_id}, ${data.user_id}] ${data.sub_type}`)
@ -664,7 +666,7 @@ Bot.adapter.push(new class gocqhttpAdapter {
break break
case "friend_add": case "friend_add":
logger.info(`${logger.blue(`[${data.self_id}]`)} 好友添加:[${data.user_id}]`) logger.info(`${logger.blue(`[${data.self_id}]`)} 好友添加:[${data.user_id}]`)
Bot[data.self_id].getFriendMap() data.bot.getFriendMap()
break break
case "notify": case "notify":
if (data.group_id) if (data.group_id)
@ -697,8 +699,8 @@ Bot.adapter.push(new class gocqhttpAdapter {
break break
case "client_status": case "client_status":
logger.info(`${logger.blue(`[${data.self_id}]`)} 客户端${data.online ? "上线" : "下线"}${JSON.stringify(data.client)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 客户端${data.online ? "上线" : "下线"}${JSON.stringify(data.client)}`)
data.clients = (await data.sendApi("get_online_clients")).clients data.clients = (await data.bot.sendApi("get_online_clients")).clients
Bot[data.self_id].clients = data.clients data.bot.clients = data.clients
break break
case "essence": case "essence":
data.notice_type = "group_essence" data.notice_type = "group_essence"
@ -718,12 +720,12 @@ Bot.adapter.push(new class gocqhttpAdapter {
case "channel_created": case "channel_created":
data.notice_type = "guild_channel_created" data.notice_type = "guild_channel_created"
logger.info(`${logger.blue(`[${data.self_id}]`)} 子频道创建:[${data.guild_id}-${data.channel_id}, ${data.user_id}] ${JSON.stringify(data.channel_info)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 子频道创建:[${data.guild_id}-${data.channel_id}, ${data.user_id}] ${JSON.stringify(data.channel_info)}`)
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
break break
case "channel_destroyed": case "channel_destroyed":
data.notice_type = "guild_channel_destroyed" data.notice_type = "guild_channel_destroyed"
logger.info(`${logger.blue(`[${data.self_id}]`)} 子频道删除:[${data.guild_id}-${data.channel_id}, ${data.user_id}] ${JSON.stringify(data.channel_info)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 子频道删除:[${data.guild_id}-${data.channel_id}, ${data.user_id}] ${JSON.stringify(data.channel_info)}`)
Bot[data.self_id].getGroupMap() data.bot.getGroupMap()
break break
default: default:
logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知通知:${logger.magenta(JSON.stringify(data))}`) logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知通知:${logger.magenta(JSON.stringify(data))}`)
@ -776,13 +778,13 @@ Bot.adapter.push(new class gocqhttpAdapter {
} }
} }
makeMeta(data) { makeMeta(data, ws) {
switch (data.meta_event_type) { switch (data.meta_event_type) {
case "heartbeat": case "heartbeat":
this.heartbeat(data) this.heartbeat(data)
break break
case "lifecycle": case "lifecycle":
this.connect(data) this.connect(data, ws)
break break
default: default:
logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知消息:${logger.magenta(JSON.stringify(data))}`) logger.warn(`${logger.blue(`[${data.self_id}]`)} 未知消息:${logger.magenta(JSON.stringify(data))}`)
@ -801,12 +803,11 @@ Bot.adapter.push(new class gocqhttpAdapter {
logger.warn(`${logger.blue(`[${data.self_id}]`)} 找不到对应Bot忽略消息${logger.magenta(JSON.stringify(data))}`) logger.warn(`${logger.blue(`[${data.self_id}]`)} 找不到对应Bot忽略消息${logger.magenta(JSON.stringify(data))}`)
return false return false
} }
data.sendApi = (action, params) => this.sendApi(ws, action, params)
data.bot = Bot[data.self_id] data.bot = Bot[data.self_id]
switch (data.post_type) { switch (data.post_type) {
case "meta_event": case "meta_event":
this.makeMeta(data) this.makeMeta(data, ws)
break break
case "message": case "message":
this.makeMessage(data) this.makeMessage(data)