细节优化

This commit is contained in:
🌌 2023-08-14 14:04:35 +08:00
parent 0b2e683850
commit fcd674a781
7 changed files with 30 additions and 78 deletions

View File

@ -1,33 +1,12 @@
const os = require("os"); const os = require("os")
const { existsSync } = require("fs"); const { existsSync } = require("fs")
const arch = os.arch(); let skipDownload = false
let skipDownload = false; let executablePath
let executablePath; if (process.platform == "win32" && existsSync("C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe")) {
//win32 存在 Edge 优先选择 skipDownload = true
if (process.platform == "win32") { executablePath = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"
if ( } else if (process.platform == "linux" && existsSync("/usr/bin/chromium")) {
existsSync("C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe") skipDownload = true
) { executablePath = "/usr/bin/chromium"
skipDownload = true;
executablePath =
"C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe";
}
} else if (process.platform == "linux") {
//如果arm64架构跳过下载
if (arch == "arm64" || arch == "aarch64") {
skipDownload = true;
}
//不管什么架构,如果存在配置则跳过下载,且配置路径
if (existsSync("/usr/bin/chromium")) {
skipDownload = true;
executablePath = "/usr/bin/chromium";
}
} }
module.exports = { skipDownload, executablePath }
/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
skipDownload,
executablePath,
};

View File

@ -169,6 +169,8 @@ class PluginsLoader {
if (!this.checkBlack(e)) return if (!this.checkBlack(e)) return
/** 冷却 */ /** 冷却 */
if (!this.checkLimit(e)) return if (!this.checkLimit(e)) return
/** 处理事件 */
this.dealEvent(e)
/** 处理消息 */ /** 处理消息 */
this.dealMsg(e) this.dealMsg(e)
/** 处理回复 */ /** 处理回复 */
@ -338,6 +340,18 @@ class PluginsLoader {
return true return true
} }
dealEvent(e) {
if (!e.friend && e.user_id) e.friend = e.bot.pickFriend(e.user_id)
if (!e.group && e.group_id) e.group = e.bot.pickGroup(e.group_id)
if (!e.member && e.group && e.user_id) e.member = e.group.pickMember(e.user_id)
for (const i of [e.friend, e.group, e.member]) {
if (typeof i != "object") continue
if (!i.makeForwardMsg) i.makeForwardMsg = Bot.makeForwardMsg
if (!i.sendForwardMsg) i.sendForwardMsg = msg => Bot.sendForwardMsg(msg => i.sendMsg(msg), msg)
if (!i.getInfo) i.getInfo = () => i
}
}
/** /**
* 处理消息加入自定义字段 * 处理消息加入自定义字段
* @param e.msg 文本消息多行会自动拼接 * @param e.msg 文本消息多行会自动拼接

View File

@ -107,8 +107,6 @@ Bot.adapter.push(new class stdinAdapter {
group_name: this.name, group_name: this.name,
sendMsg: msg => this.sendMsg(msg), sendMsg: msg => this.sendMsg(msg),
recallMsg: message_id => this.recallMsg(message_id), recallMsg: message_id => this.recallMsg(message_id),
makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendMsg(msg), msg),
sendFile: (file, name) => this.sendFile(file, name), sendFile: (file, name) => this.sendFile(file, name),
} }
} }

View File

@ -32,7 +32,7 @@
"node-xlsx": "^0.23.0", "node-xlsx": "^0.23.0",
"oicq": "link:lib/modules/oicq", "oicq": "link:lib/modules/oicq",
"pm2": "^5.3.0", "pm2": "^5.3.0",
"puppeteer": "^21.0.1", "puppeteer": "^21.0.3",
"redis": "^4.6.7", "redis": "^4.6.7",
"sequelize": "^6.32.1", "sequelize": "^6.32.1",
"sqlite3": "^5.1.6", "sqlite3": "^5.1.6",
@ -40,7 +40,7 @@
"yaml": "^2.3.1" "yaml": "^2.3.1"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^8.46.0", "eslint": "^8.47.0",
"eslint-config-standard": "^17.1.0", "eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.0", "eslint-plugin-import": "^2.28.0",
"eslint-plugin-n": "^16.0.1", "eslint-plugin-n": "^16.0.1",

View File

@ -241,9 +241,6 @@ Bot.adapter.push(new class ComWeChatAdapter {
return { return {
...i, ...i,
sendMsg: msg => this.sendFriendMsg(i, msg), sendMsg: msg => this.sendFriendMsg(i, msg),
recallMsg: () => false,
makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendFriendMsg(i, msg), msg),
sendFile: (file, name) => this.sendFile(i, msg => this.sendFriendMsg(i, msg), file, name), sendFile: (file, name) => this.sendFile(i, msg => this.sendFriendMsg(i, msg), file, name),
getInfo: () => this.getFriendInfo(i), getInfo: () => this.getFriendInfo(i),
getAvatarUrl: async () => (await this.getFriendInfo(i))["wx.avatar"], getAvatarUrl: async () => (await this.getFriendInfo(i))["wx.avatar"],
@ -274,9 +271,6 @@ Bot.adapter.push(new class ComWeChatAdapter {
return { return {
...i, ...i,
sendMsg: msg => this.sendGroupMsg(i, msg), sendMsg: msg => this.sendGroupMsg(i, msg),
recallMsg: () => false,
makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendGroupMsg(i, msg), msg),
sendFile: (file, name) => this.sendFile(i, msg => this.sendGroupMsg(i, msg), file, name), sendFile: (file, name) => this.sendFile(i, msg => this.sendGroupMsg(i, msg), file, name),
getInfo: () => this.getGroupInfo(i), getInfo: () => this.getGroupInfo(i),
getAvatarUrl: async () => (await this.getGroupInfo(i))["wx.avatar"], getAvatarUrl: async () => (await this.getGroupInfo(i))["wx.avatar"],
@ -367,13 +361,9 @@ Bot.adapter.push(new class ComWeChatAdapter {
switch (data.message_type) { switch (data.message_type) {
case "private": case "private":
logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.user_id}] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.user_id}] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
break break
case "group": case "group":
logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.user_id}] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.user_id}] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
data.group = data.bot.pickGroup(data.group_id)
data.member = data.group.pickMember(data.user_id)
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))}`)

View File

@ -116,10 +116,6 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
return { return {
...i, ...i,
sendMsg: msg => this.sendFriendMsg(i, msg), sendMsg: msg => this.sendFriendMsg(i, msg),
recallMsg: () => false,
makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendFriendMsg(i, msg), msg),
getInfo: () => i,
} }
} }
@ -147,10 +143,6 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
return { return {
...i, ...i,
sendMsg: msg => this.sendGroupMsg(i, msg), sendMsg: msg => this.sendGroupMsg(i, msg),
recallMsg: () => false,
makeForwardMsg: Bot.makeForwardMsg,
sendForwardMsg: msg => Bot.sendForwardMsg(msg => this.sendGroupMsg(i, msg), msg),
getInfo: () => i,
pickMember: user_id => this.pickMember(id, group_id, user_id), pickMember: user_id => this.pickMember(id, group_id, user_id),
} }
} }
@ -245,16 +237,12 @@ Bot.adapter.push(new class GSUIDCoreAdapter {
if (data.user_type == "direct") { if (data.user_type == "direct") {
data.message_type = "private" data.message_type = "private"
logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.user_id}] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.user_id}] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
} else { } else {
data.message_type = "group" data.message_type = "group"
data.group_id = `${data.user_type}-${data.group_id}` data.group_id = `${data.user_type}-${data.group_id}`
if (!data.bot.gl.has(data.group_id)) if (!data.bot.gl.has(data.group_id))
data.bot.gl.set(data.group_id, { group_id: data.group_id }) data.bot.gl.set(data.group_id, { group_id: data.group_id })
logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.user_id}] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.user_id}] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
data.group = data.bot.pickGroup(data.group_id)
data.member = data.group.pickMember(data.user_id)
} }
Bot.emit(`${data.post_type}.${data.message_type}`, data) Bot.emit(`${data.post_type}.${data.message_type}`, data)

View File

@ -630,21 +630,15 @@ Bot.adapter.push(new class gocqhttpAdapter {
switch (data.message_type) { switch (data.message_type) {
case "private": case "private":
logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.sender.nickname}(${data.user_id})] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 好友消息:[${data.sender.nickname}(${data.user_id})] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
break break
case "group": case "group":
logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.sender.card||data.sender.nickname}(${data.user_id})] ${data.raw_message}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 群消息:[${data.group_id}, ${data.sender.card||data.sender.nickname}(${data.user_id})] ${data.raw_message}`)
data.friend = data.bot.pickFriend(data.user_id)
data.group = data.bot.pickGroup(data.group_id)
data.member = data.group.pickMember(data.user_id)
break break
case "guild": case "guild":
data.message_type = "group" data.message_type = "group"
data.group_id = `${data.guild_id}-${data.channel_id}` data.group_id = `${data.guild_id}-${data.channel_id}`
logger.info(`${logger.blue(`[${data.self_id}]`)} 频道消息:[${data.group_id}, ${data.sender.nickname}(${data.user_id})] ${JSON.stringify(data.message)}`) logger.info(`${logger.blue(`[${data.self_id}]`)} 频道消息:[${data.group_id}, ${data.sender.nickname}(${data.user_id})] ${JSON.stringify(data.message)}`)
data.group = data.bot.pickGroup(data.group_id) Object.defineProperty(data, "friend", { get() { return this.member }})
data.member = data.group.pickMember(data.user_id)
data.friend = data.member
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))}`)
@ -757,16 +751,9 @@ Bot.adapter.push(new class gocqhttpAdapter {
if (notice) if (notice)
data.sub_type = notice data.sub_type = notice
if (data.user_id) if (data.guild_id && data.channel_id) {
data.friend = data.bot.pickFriend(data.user_id)
if (data.group_id) {
data.group = data.bot.pickGroup(data.group_id)
data.member = data.group.pickMember(data.user_id)
} else if (data.guild_id && data.channel_id) {
data.group_id = `${data.guild_id}-${data.channel_id}` data.group_id = `${data.guild_id}-${data.channel_id}`
data.group = data.bot.pickGroup(data.group_id) Object.defineProperty(data, "friend", { get() { return this.member }})
data.member = data.group.pickMember(data.user_id)
data.friend = data.member
} }
if (data.sub_type) if (data.sub_type)
@ -780,14 +767,10 @@ Bot.adapter.push(new class gocqhttpAdapter {
case "friend": case "friend":
logger.info(`${logger.blue(`[${data.self_id}]`)} 加好友请求:[${data.user_id}] ${data.comment}(${data.flag})`) logger.info(`${logger.blue(`[${data.self_id}]`)} 加好友请求:[${data.user_id}] ${data.comment}(${data.flag})`)
data.sub_type = "add" data.sub_type = "add"
data.friend = data.bot.pickFriend(data.user_id)
data.approve = approve => data.bot.setFriendAddRequest(data.flag, approve) data.approve = approve => data.bot.setFriendAddRequest(data.flag, approve)
break break
case "group": case "group":
logger.info(`${logger.blue(`[${data.self_id}]`)} 加群请求:[${data.group_id}, ${data.user_id}] ${data.sub_type} ${data.comment}(${data.flag})`) logger.info(`${logger.blue(`[${data.self_id}]`)} 加群请求:[${data.group_id}, ${data.user_id}] ${data.sub_type} ${data.comment}(${data.flag})`)
data.friend = data.bot.pickFriend(data.user_id)
data.group = data.bot.pickGroup(data.group_id)
data.member = data.group.pickMember(data.user_id)
data.approve = approve => data.bot.setGroupAddRequest(data.flag, data.sub_type, approve) data.approve = approve => data.bot.setGroupAddRequest(data.flag, data.sub_type, approve)
break break
default: default: