/
index.js
83 lines (70 loc) · 2.25 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
logger.info(logger.yellow("- 正在加载 TRSS 插件"))
if (process.version < "v18")
throw Error(`Node.js ${process.version} < v18`)
import fs from "node:fs"
if (!global.segment)
global.segment = (await import("oicq")).segment
if (!Bot.makeForwardArray) {
const { makeForwardMsg } = (await import("../../lib/common/common.js")).default
Bot.makeForwardArray = msg => makeForwardMsg({}, msg)
}
if (!Bot.sleep)
Bot.sleep = time => new Promise(resolve => setTimeout(resolve, time))
if (!Bot.download)
Bot.download = (await import("../../lib/common/common.js")).default.downFile
if (!Bot.String)
Bot.String = data => {
switch (typeof data) {
case "string":
return data
case "function":
return String(data)
case "object":
if (data instanceof Error)
return data.stack
if (Buffer.isBuffer(data))
return String(data)
}
try {
return JSON.stringify(data)
} catch (err) {
if (typeof data.toString == "function")
return String(data)
else
return "[object null]"
}
}
if (!Bot.Loging)
Bot.Loging = Bot.String
if (!Bot.exec) {
const { exec } = await import("node:child_process")
Bot.exec = (cmd, opts = {}) => new Promise(resolve => {
if (!opts.quiet)
logger.mark(`[执行命令] ${logger.blue(cmd)}`)
exec(cmd, opts, (error, stdout, stderr) => {
resolve({ error, stdout, stderr })
if (opts.quiet) return
logger.mark(`[执行命令完成] ${logger.blue(cmd)}${stdout?`\n${String(stdout).trim()}`:""}${stderr?logger.red(`\n${String(stderr).trim()}`):""}`)
if (error) logger.error(`[执行命令错误] ${logger.blue(cmd)}\n${logger.red(Bot.String(error).trim())}`)
})
})
}
const files = fs
.readdirSync("plugins/TRSS-Plugin/Apps")
.filter(file => file.endsWith(".js"))
let ret = []
for (const i of files)
ret.push(import(`./Apps/${i}`))
ret = await Promise.allSettled(ret)
const apps = {}
for (const i in files) {
const name = files[i].replace(".js", "")
if (ret[i].status != "fulfilled") {
logger.error(`载入插件错误:${logger.red(name)}`)
logger.error(ret[i].reason)
continue
}
apps[name] = ret[i].value[name]
}
export { apps }
logger.info(logger.green("- TRSS 插件 加载完成"))